mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-31 18:48:08 +00:00
secrets/aws: add sts_region parameter to root config (#22726)
* Set region parameter to be used for STS only on AWS secrets engine * Add changelog * Fix formatting * region fix when not setting iam_endpoint or sts_endpoint * Add 'sts_region' parameter for AWS secrets engine. * Update TestBackend_PathConfigRoot for aws secrets * Update changelog entry --------- Co-authored-by: Robert <17119716+robmonte@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
7307c56f59
commit
aeca0cdee6
@@ -48,6 +48,9 @@ func (b *backend) getRootConfig(ctx context.Context, s logical.Storage, clientTy
|
|||||||
endpoint = *aws.String(config.IAMEndpoint)
|
endpoint = *aws.String(config.IAMEndpoint)
|
||||||
case clientType == "sts" && config.STSEndpoint != "":
|
case clientType == "sts" && config.STSEndpoint != "":
|
||||||
endpoint = *aws.String(config.STSEndpoint)
|
endpoint = *aws.String(config.STSEndpoint)
|
||||||
|
if config.STSRegion != "" {
|
||||||
|
credsConfig.Region = config.STSRegion
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.IdentityTokenAudience != "" {
|
if config.IdentityTokenAudience != "" {
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ func pathConfigRoot(b *backend) *framework.Path {
|
|||||||
Type: framework.TypeString,
|
Type: framework.TypeString,
|
||||||
Description: "Endpoint to custom STS server URL",
|
Description: "Endpoint to custom STS server URL",
|
||||||
},
|
},
|
||||||
|
"sts_region": {
|
||||||
|
Type: framework.TypeString,
|
||||||
|
Description: "Specific region for STS API calls.",
|
||||||
|
},
|
||||||
"max_retries": {
|
"max_retries": {
|
||||||
Type: framework.TypeInt,
|
Type: framework.TypeInt,
|
||||||
Default: aws.UseServiceDefaultRetries,
|
Default: aws.UseServiceDefaultRetries,
|
||||||
@@ -110,6 +114,7 @@ func (b *backend) pathConfigRootRead(ctx context.Context, req *logical.Request,
|
|||||||
"region": config.Region,
|
"region": config.Region,
|
||||||
"iam_endpoint": config.IAMEndpoint,
|
"iam_endpoint": config.IAMEndpoint,
|
||||||
"sts_endpoint": config.STSEndpoint,
|
"sts_endpoint": config.STSEndpoint,
|
||||||
|
"sts_region": config.STSRegion,
|
||||||
"max_retries": config.MaxRetries,
|
"max_retries": config.MaxRetries,
|
||||||
"username_template": config.UsernameTemplate,
|
"username_template": config.UsernameTemplate,
|
||||||
"role_arn": config.RoleARN,
|
"role_arn": config.RoleARN,
|
||||||
@@ -125,6 +130,7 @@ func (b *backend) pathConfigRootWrite(ctx context.Context, req *logical.Request,
|
|||||||
region := data.Get("region").(string)
|
region := data.Get("region").(string)
|
||||||
iamendpoint := data.Get("iam_endpoint").(string)
|
iamendpoint := data.Get("iam_endpoint").(string)
|
||||||
stsendpoint := data.Get("sts_endpoint").(string)
|
stsendpoint := data.Get("sts_endpoint").(string)
|
||||||
|
stsregion := data.Get("sts_region").(string)
|
||||||
maxretries := data.Get("max_retries").(int)
|
maxretries := data.Get("max_retries").(int)
|
||||||
roleARN := data.Get("role_arn").(string)
|
roleARN := data.Get("role_arn").(string)
|
||||||
usernameTemplate := data.Get("username_template").(string)
|
usernameTemplate := data.Get("username_template").(string)
|
||||||
@@ -140,6 +146,7 @@ func (b *backend) pathConfigRootWrite(ctx context.Context, req *logical.Request,
|
|||||||
SecretKey: data.Get("secret_key").(string),
|
SecretKey: data.Get("secret_key").(string),
|
||||||
IAMEndpoint: iamendpoint,
|
IAMEndpoint: iamendpoint,
|
||||||
STSEndpoint: stsendpoint,
|
STSEndpoint: stsendpoint,
|
||||||
|
STSRegion: stsregion,
|
||||||
Region: region,
|
Region: region,
|
||||||
MaxRetries: maxretries,
|
MaxRetries: maxretries,
|
||||||
UsernameTemplate: usernameTemplate,
|
UsernameTemplate: usernameTemplate,
|
||||||
@@ -193,6 +200,7 @@ type rootConfig struct {
|
|||||||
SecretKey string `json:"secret_key"`
|
SecretKey string `json:"secret_key"`
|
||||||
IAMEndpoint string `json:"iam_endpoint"`
|
IAMEndpoint string `json:"iam_endpoint"`
|
||||||
STSEndpoint string `json:"sts_endpoint"`
|
STSEndpoint string `json:"sts_endpoint"`
|
||||||
|
STSRegion string `json:"sts_region"`
|
||||||
Region string `json:"region"`
|
Region string `json:"region"`
|
||||||
MaxRetries int `json:"max_retries"`
|
MaxRetries int `json:"max_retries"`
|
||||||
UsernameTemplate string `json:"username_template"`
|
UsernameTemplate string `json:"username_template"`
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ func TestBackend_PathConfigRoot(t *testing.T) {
|
|||||||
"region": "us-west-2",
|
"region": "us-west-2",
|
||||||
"iam_endpoint": "https://iam.amazonaws.com",
|
"iam_endpoint": "https://iam.amazonaws.com",
|
||||||
"sts_endpoint": "https://sts.us-west-2.amazonaws.com",
|
"sts_endpoint": "https://sts.us-west-2.amazonaws.com",
|
||||||
|
"sts_region": "",
|
||||||
"max_retries": 10,
|
"max_retries": 10,
|
||||||
"username_template": defaultUserNameTemplate,
|
"username_template": defaultUserNameTemplate,
|
||||||
"role_arn": "",
|
"role_arn": "",
|
||||||
|
|||||||
3
changelog/22726.txt
Normal file
3
changelog/22726.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
```release-note:bug
|
||||||
|
secrets/aws: Add sts_region parameter to root config for STS API calls.
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user