使用Cloudformation创建新的IAM角色资源时。AWS::IAM::Role
.
有一个可选的 RoleName
参数,而且我不知道什么时候加入 RoleName
参数或将其排除在外。
以下是文档中规定的不同之处
在使用或不使用IAM资源时,是否有其他功能上的差异?RoleName
参数?
如果你不指定的话,这将会简单的为你生成一个名字(由堆栈和资源名构造,最后加上一个随机字符串)。
唯一的区别是可重用性。如果你想多次重新创建堆栈,最好把这个IAM角色ARN作为参数传递进来。
我建议不要命名,这样可以让你自由地多次创建栈,而不用担心破坏额外的资源。
如果你真的必须这样做,AWS的建议如下。
命名一个IAM资源会导致 错综复杂 如果您在多个Region中重用同一模板,则会出现这种情况。为了防止这种情况发生,我们建议使用 Fn::Join 和 AWS::Region 来创建一个特定的 Region 名称,就像下面的例子一样。{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}。
该 文件 解释说,它可能是 危险的 来命名您的角色。
命名一个IAM资源 会引起 错综复杂 如果您在多个Region中重用同一模板,则会出现这种情况。为了防止这种情况发生,我们建议使用 Fn::Join 和 AWS::Region 来创建一个特定的 Region 名称,就像下面的例子一样。{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}。