amazon-web-services - CloudFormation:对 SecretManager 值的动态引用不适用于资源的标记属性
问题描述
我想在 AWS 密钥管理器中存储一个密钥并在 CloudFormation 模板中检索它。为了测试它,我只是把它放在标签的值中 -
MainRouteTable:
Properties:
Tags:
- Key: Environment
Value: LIVE
- Key: Name
Value: '{{resolve:secretsmanager:tvs:SecretString:testname}}'
VpcId: !Ref 'VPC'
Type: AWS::EC2::RouteTable
在我使用模板运行 CloudFormation 并且环境启动后,标签“Name”的值是“{{resolve:secretsmanager:tvs:SecretString:testname}}”,而不是存储在 testname 中的实际秘密。
我环顾四周,无法弄清楚出了什么问题。根据 AWS 文档,我做得很好。
我可以从 CLI 检索秘密罚款 -
aws secretsmanager --region us-east-1 get-secret-value --secret-id arn:aws:secretsmanager:us-east-1:xxxxxx:secret:tvs-ZVTiDO --query SecretString --output text | jq -r .testname
有什么建议么?
我按照这里的说明进行操作 - https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager
解决方案
SecretString
只能在少数资源和选定的属性中使用。不支持标签。支持的列表是:
AWS::DirectoryService::MicrosoftAD Password
AWS::DirectoryService::SimpleAD Password
AWS::ElastiCache::ReplicationGroup AuthToken
AWS::IAM::User LoginProfile Password
AWS::KinesisFirehose::DeliveryStream
RedshiftDestinationConfiguration Password
AWS::OpsWorks::App Source Password
AWS::OpsWorks::Stack CustomCookbooksSource Password
AWS::OpsWorks::Stack RdsDbInstances DbPassword
AWS::RDS::DBCluster MasterUserPassword
AWS::RDS::DBInstance MasterUserPassword
AWS::Redshift::Cluster MasterUserPassword
推荐阅读
- azure-devops - Azure DevOps 阶段到阶段依赖项在条件不工作的情况下使用输出变量
- python - NetCDF get_dims 太多值无法解包
- jmeter - Is there a way to run only one test from the testplan using Taurus/JMeter?
- c# - 有条件地遍历 XML 文件,仅当元素等于值时才读取数据
- php - 在 PHPUnit 测试中模拟 env()
- javascript - HTML\CSS\JavaScript:如何动态构建菜单?
- python - 在 txt 文件中查找每个句子中的最后一个单词
- javascript - 每个文件的输出路径/文件名
- java - JAVA JPA:使用注释在属性上连接两个实体
- linux - 为什么yum包可以列出但不能删除?