TGH*_*TGH 6 amazon-web-services amazon-ecs aws-secrets-manager
AWS Secrets Manager 会自动向任何生成的密钥名称添加 6 个字符的后缀。由于后缀是生成的,因此在不同环境(即 prod、dev 等)中它会有所不同。
后缀的存在是有充分理由的,但是当密钥略有不同时,通过 arn 跨环境查找秘密的最佳实践是什么。
示例:作为 ECS taskDef.json 的一部分,您可以指定一个 arn 引用,如下所示:
{
"containerDefinitions": [{
"secrets": [{
"name": "environment_variable_name",
"valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf"
}]
}]
}
Run Code Online (Sandbox Code Playgroud)
知道环境之间的后缀AbCdEf有所不同,那么在 taskDef.json 中为每个环境动态指定后缀的最佳方法是什么?
到目前为止,我正在考虑一个自定义环境变量,可以与字符串插值一起使用来构建它,如下所示:"arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-${code}"。
但是,AWS 是否提供了更优雅的方式?
我相信,为了获得秘密值,您必须传递完整的 arn。对于任务定义来说也是如此,因为它在调度任务并将秘密传递给容器时使用相同的 API 。因此,您必须使用list-secrets api 来获取该值。这可以使用任何 sdk 来完成,并且取决于您如何构建此任务定义。如果使用cloudformation,则可以在创建secret后输出该值。如果您使用 terraform,则可以使用aws_secretsmanager_secret数据源,这使得按名称获取此值变得很简单。
| 归档时间: |
|
| 查看次数: |
2854 次 |
| 最近记录: |