Cloudformation AWS IAM 角色(含和不含 RoleName 参数)。

问题描述 投票:0回答:2

使用Cloudformation创建新的IAM角色资源时。AWS::IAM::Role.

有一个可选的 RoleName 参数,而且我不知道什么时候加入 RoleName 参数或将其排除在外。

以下是文档中规定的不同之处

  • 如果您没有指定名称,AWS CloudFormation 将生成一个唯一的物理 ID,并将该 ID 用于角色名称。
  • 如果您指定了名称,您必须指定 CAPABILITY_NAMED_IAM 值以确认您的模板的能力。
  • 如果您在多个Region中重用同一模板,命名IAM资源可能会导致不可恢复的错误。

在使用或不使用IAM资源时,是否有其他功能上的差异?RoleName 参数?

amazon-web-services amazon-cloudformation amazon-iam
2个回答
1
投票

如果你不指定的话,这将会简单的为你生成一个名字(由堆栈和资源名构造,最后加上一个随机字符串)。

唯一的区别是可重用性。如果你想多次重新创建堆栈,最好把这个IAM角色ARN作为参数传递进来。

我建议不要命名,这样可以让你自由地多次创建栈,而不用担心破坏额外的资源。

如果你真的必须这样做,AWS的建议如下。

命名一个IAM资源会导致 错综复杂 如果您在多个Region中重用同一模板,则会出现这种情况。为了防止这种情况发生,我们建议使用 Fn::Join 和 AWS::Region 来创建一个特定的 Region 名称,就像下面的例子一样。{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}。


0
投票

文件 解释说,它可能是 危险的 来命名您的角色。

命名一个IAM资源 会引起 错综复杂 如果您在多个Region中重用同一模板,则会出现这种情况。为了防止这种情况发生,我们建议使用 Fn::Join 和 AWS::Region 来创建一个特定的 Region 名称,就像下面的例子一样。{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}。

© www.soinside.com 2019 - 2024. All rights reserved.