【问题标题】:Cloudformation parameter as logical IdCloudformation 参数作为逻辑 ID
【发布时间】:2016-08-08 02:44:46
【问题描述】:

我正在尝试使用 cloudFormation 创建一个 IAM 角色。我想在角色名称中包含一个参数。我的 cloudformation 脚本有以下内容:

"Resources" : { 
    "TestRole" : {
        "Type" : "AWS::IAM::Role",
        "Properties" : {
            "AssumeRolePolicyDocument": {
                "Version" : "2012-10-17",
                "Statement": [ {
                    "Effect": "Allow",
                    "Principal": {
                        "Service": [ "ec2.amazonaws.com" ]
                    },
                    "Action": [ "sts:AssumeRole" ]
                }]
            }
        }
    }
}

我的 cloudformation 堆栈名为角色测试。这将创建一个名为 role-test-TestRole-RandomString 的 IAM 角色。有没有办法让角色名与我在参数中指定的完全一致?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    这看起来并不实际,因为每个资源都需要有一个唯一的 ID,而这个 ID 是由 AWS::CF 生成的。

    http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html

    根据我过去与 AWS 人员交谈的了解,这样做是因为每个资源都需要一个唯一可识别的 ID。

    这个ID在调用这样的东西时使用:

    {"Fn::GetAtt" : ["TestRole", "Arn"] }

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      已经可以在 CF 中为 IAM 角色指定自定义名称:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-rolename

      IAM 角色的名称。有关有效值,请参阅 IAM API 参考CreateRole 操作的 RoleName 参数。如果您未指定名称,AWS CloudFormation 会生成一个唯一的物理 ID 并将该 ID 用作组名称。

      重要

      如果指定名称,则无法进行需要替换此资源的更新。您仍然可以进行不需要或需要一些中断的更新。如果必须替换资源,请指定一个新名称。

      如果指定名称,则必须指定 CAPABILITY_NAMED_IAM 值以确认模板的功能。如需更多信息,请参阅Acknowledging IAM Resources in AWS CloudFormation Templates

      警告

      如果您在多个区域中重复使用相同的模板,命名 IAM 资源可能会导致不可恢复的错误。为防止这种情况发生,我们建议使用Fn::JoinAWS::Region 创建区域特定名称,如下例所示:{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}

      不过,它需要文档中所述的额外功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-30
        • 1970-01-01
        • 2018-05-29
        • 1970-01-01
        • 2018-02-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多