1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 随着 主要 附带条件,正如@JohnPreston 指出的那样,它不会获取对原始 secret 值的更改,因此可以从现有 secret 生成新的 secret,如下所示:
DatabaseInstance dbInstance = makeDbInstance();
ISecret dbCredentials = dbInstance.getSecret();
Secret.Builder.create(stack, "name")
.secretName("db-url")
.secretStringValue(
SecretValue.unsafePlainText(
"{\"url\": \"postgres://" + dbCredentials.secretValueFromJson("username") + ":" + dbCredentials.secretValueFromJson("password") + "@" + dbCredentials.secretValueFromJson("host") + ":" + dbCredentials.secretValueFromJson("port") + "/mydbname\"}"
)
)
.build();
这似乎是安全的 - 生成的 CloudFormation yaml 是这样的:
dburl5B3B78EC:
Type: AWS::SecretsManager::Secret
Properties:
Name: db-url
SecretString:
Fn::Join:
- ""
- - |-
{
"url": "postgres://{{resolve:secretsmanager:
- Ref: dbSecretAttachmentCCB3B2FC
- ":SecretString:username::}}:{{resolve:secretsmanager:"
- Ref: dbSecretAttachmentCCB3B2FC
- ":SecretString:password::}}@{{resolve:secretsmanager:"
- Ref: dbSecretAttachmentCCB3B2FC
- ":SecretString:host::}}:{{resolve:secretsmanager:"
- Ref: dbSecretAttachmentCCB3B2FC
- |-
:SecretString:port::}}/mydbname"
}
所以那里没有暴露的 secret,他们似乎在新的 secret 中正确地解决了。
相关内容
- AWS 官方已更新 3 个月前
- AWS 官方已更新 6 个月前
- AWS 官方已更新 3 年前