在 cloudformation 模板中导出秘密名称
Export secret name in cloudformation template
我正在使用 Cloudformation 模板创建机密,我遇到的问题是唯一可以导出的值是使用 Ref 的 ARN
有没有办法得到秘密的名字?我尝试使用 !GetAtt LogicalIdOfSecret 但这不起作用
该文档仅引用了 ARN 部分
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html
AWS::SecretsManager::Secret 资源类型不支持函数 GetAtt。您只能通过 Ref 函数引用 return ARN。
但是,在大多数情况下,使用该 ARN 可以拆分它并获取名称。
Secrets 的 ARN 结构是:
arn:aws:secretsmanager:region:account_id:secret:my_path/my_secret_name-autoid
所以下面的函数组合(Select、Split、Ref)给出了 Secret 的名称。
"Outputs": {
"SecretName": {
"Value": {
"Fn::Select": [
"0", {
"Fn::Split": [
"-", {
"Fn::Select": [
"6", {
"Fn::Split": [
":", {
"Ref": "MySecret"
}
]
}
]
}
]
}
]
},
"Description": "Secret's Name"
}
}
它工作正常,除非秘密名称包含破折号“-”,因为拆分逻辑基于名称中包含的“-”+ 自动生成的值。
参考:
我正在使用 Cloudformation 模板创建机密,我遇到的问题是唯一可以导出的值是使用 Ref 的 ARN 有没有办法得到秘密的名字?我尝试使用 !GetAtt LogicalIdOfSecret 但这不起作用 该文档仅引用了 ARN 部分 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secret.html
AWS::SecretsManager::Secret 资源类型不支持函数 GetAtt。您只能通过 Ref 函数引用 return ARN。
但是,在大多数情况下,使用该 ARN 可以拆分它并获取名称。 Secrets 的 ARN 结构是:
arn:aws:secretsmanager:region:account_id:secret:my_path/my_secret_name-autoid
所以下面的函数组合(Select、Split、Ref)给出了 Secret 的名称。
"Outputs": {
"SecretName": {
"Value": {
"Fn::Select": [
"0", {
"Fn::Split": [
"-", {
"Fn::Select": [
"6", {
"Fn::Split": [
":", {
"Ref": "MySecret"
}
]
}
]
}
]
}
]
},
"Description": "Secret's Name"
}
}
它工作正常,除非秘密名称包含破折号“-”,因为拆分逻辑基于名称中包含的“-”+ 自动生成的值。
参考: