Skip to content

Commit 1843fba

Browse files
committed
awsSigV4 signature (Issue: MUR-11346)
1 parent 6f61dea commit 1843fba

File tree

2 files changed

+83
-1
lines changed

2 files changed

+83
-1
lines changed

README.md

+80-1
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,85 @@ createServer({key, cert}, (req, res) => {
619619
}).listen(8000);
620620
```
621621
622+
###### AWS V4 Signature
623+
624+
Murano support native AWS signature header construction, enable easy integration with any AWS services.
625+
See more info at https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html.
626+
627+
To use it add the signature definition flag: `x-exosite-from: awsSigV4`
628+
629+
To use it the request **MUST** provide `aws_key_id` & `aws_secret` along with the `aws_region` or `Region` as request parameters.
630+
Those parameters should be defined in the service [Config Parameters](#config-parameters-object) with the flag `x-exosite-restricted: true` for user input.
631+
632+
*Example (can be added as is in your service swagger)*
633+
634+
```
635+
host: "awsservicename.{aws_region}.amazonaws.com"
636+
x-exosite-config-parameters:
637+
- name: aws_key_id
638+
title: AWS Key ID
639+
description: Your AWS Access KEY ID
640+
type: string
641+
required: true
642+
- name: aws_secret
643+
title: AWS Secret
644+
description: Your AWS Access KEY Secret
645+
type: string
646+
format: password
647+
required: true
648+
- name: Region
649+
title: AWS Region
650+
description: Your AWS Region
651+
type: string
652+
default: us-west-1
653+
enum:
654+
- us-east-2
655+
- us-east-1
656+
- us-west-1
657+
- us-west-2
658+
- af-south-1
659+
- ap-east-1
660+
- ap-south-1
661+
- ap-northeast-3
662+
- ap-northeast-2
663+
- ap-southeast-1
664+
- ap-southeast-2
665+
- ap-northeast-1
666+
- ca-central-1
667+
- cn-north-1
668+
- cn-northwest-1
669+
- eu-central-1
670+
- eu-west-1
671+
- eu-west-2
672+
- eu-south-1
673+
- eu-west-3
674+
- eu-north-1
675+
- me-south-1
676+
- sa-east-1
677+
- us-gov-east-1
678+
- us-gov-west-1
679+
securityDefinitions:
680+
awsSigV4:
681+
type: signature
682+
x-exosite-from: awsSigV4
683+
security:
684+
- awsSigV4: []
685+
parameters:
686+
Region:
687+
in: host
688+
description: AWS region
689+
name: Region
690+
required: true
691+
type: string
692+
paths:
693+
"/#AwsOp":
694+
parameters:
695+
- "$ref": "#/parameters/Region"
696+
get:
697+
operationId: AwsOp
698+
...
699+
```
700+
622701
##### ClientCA
623702

624703
Validating request from murano using client certificate.
@@ -763,7 +842,7 @@ x-exosite-token: "myprivatetoken"
763842
# ...
764843
```
765844

766-
Once the service swagger has been published and processed, the token will be removed and will not be accessible from Murano anymore.
845+
Once the service swagger has been published and processed, the token will be removed and will not be accessible from Murano anymore.
767846
So you MUST keep it securely saved. If you forget it you can overload the current token by updating the service swagger definition.
768847

769848
##### Step 2: call dispatcher

examples/muranoauth.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ securityDefinitions:
2828
# See doc at https://github.com/exosite/open_api_integration/blob/master/README.md#signature
2929
type: signature
3030
# name: signature # optional by default goint in signature header
31+
# To use AWS V4 signature (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)
32+
# add following option
33+
# x-exosite-from: awsSigV4
3134
clientCA:
3235
# Client CA authentication, using Murano Services CA
3336
# See doc at https://github.com/exosite/open_api_integration/blob/master/README.md#clientca

0 commit comments

Comments
 (0)