在cloudformation模板中导出秘密名称

Pab*_*ola 5 amazon-web-services aws-cloudformation aws-secrets-manager

我正在使用 Cloudformation 模板创建密钥,我遇到的问题是唯一可以导出的值是使用 Ref\n的 ARN\n有没有办法获取密钥的名称?我尝试使用 !GetAtt LogicalIdOfSecret 但这不起作用\xe2\x80\x99t 工作\n文档仅引用 ARN 部分\n https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-秘密.html

\n

OAR*_*ARP 8

AWS::SecretsManager::Secret 资源类型不支持函数 GetAtt。您只能通过返回 ARN 的 Ref 函数进行引用。

但是,在大多数情况下,可以使用该 ARN 对其进行拆分并获取名称。Secrets 的 ARN 结构为:

arn:aws:secretsmanager:region:account_id:secret:my_path/my_secret_name-autoid
Run Code Online (Sandbox Code Playgroud)

因此,以下函数组合(选择、拆分、引用)将为您提供秘密的名称。

"Outputs": {
    "SecretName": {
        "Value": {
            "Fn::Select": [
                "0", {
                    "Fn::Split": [
                        "-", {
                            "Fn::Select": [
                                "6", {
                                    "Fn::Split": [
                                        ":", {
                                            "Ref": "MySecret"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            ]
        },
        "Description": "Secret's Name"
    }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,除非秘密名称包含破折号“-”,因为分割逻辑基于名称+自动生成的值中包含的“-”。


参考:

CloudFormation 内部函数