Amazon web services Cloudformation AWS IAM角色(带和不带RoleName参数)
使用Cloudformation创建新的IAM角色资源时,Amazon web services Cloudformation AWS IAM角色(带和不带RoleName参数),amazon-web-services,amazon-cloudformation,amazon-iam,Amazon Web Services,Amazon Cloudformation,Amazon Iam,使用Cloudformation创建新的IAM角色资源时,AWS::IAM::role 有一个可选的RoleName参数,我不确定什么时候包含RoleName参数或将其排除是更好的做法 以下是文件中规定的差异 如果不指定名称,AWS CloudFormation将生成一个唯一的物理ID,并将该ID用作角色名称 如果指定名称,则必须指定CAPABILITY_NAMED_IAM值以确认模板的功能 如果在多个区域中重复使用同一模板,命名IAM资源可能会导致不可恢复的错误 使用或不使用RoleNam
AWS::IAM::role
有一个可选的RoleName
参数,我不确定什么时候包含RoleName
参数或将其排除是更好的做法
以下是文件中规定的差异
- 如果不指定名称,AWS CloudFormation将生成一个唯一的物理ID,并将该ID用作角色名称
- 如果指定名称,则必须指定CAPABILITY_NAMED_IAM值以确认模板的功能
- 如果在多个区域中重复使用同一模板,命名IAM资源可能会导致不可恢复的错误李>
RoleName
参数之间是否存在任何其他功能差异?说明命名角色可能有危险性:
如果在多个区域中重复使用同一模板,命名IAM资源可能会导致不可恢复的错误。为了防止这种情况,我们建议使用Fn::Join和AWS::Region来创建特定于区域的名称,如以下示例所示:{“Fn::Join”:[“”,[{“Ref”:“AWS::Region”},{“Ref”:“MyResourceName”}]}
如果不指定名称,这将为您生成一个名称(由堆栈和资源名称构成,末尾有一个随机字符串) 唯一的区别是可重用性。如果要多次重新创建堆栈,最好将此IAM角色ARN作为参数传递 我建议不要命名,这将允许您自由地创建任意次数的堆栈,而不用担心破坏额外的资源 如果您确实需要,AWS的建议如下: 如果在多个区域中重复使用同一模板,命名IAM资源可能会导致不可恢复的错误。为了防止这种情况,我们建议使用Fn::Join和AWS::Region来创建特定于区域的名称,如以下示例所示:{“Fn::Join”:[“”,[{“Ref”:“AWS::Region”},{“Ref”:“MyResourceName”}]}
谢谢,我也在寻找堆栈更新或更改期间的任何差异?对于其他一些资源,我遇到在命名资源的堆栈更新期间不可能进行替换。是的,在更新期间,某些资源可能会进行替换,因为这会使两个资源同时运行。查看此处的参数,了解需要“替换”的更新:。除RoleName之外,所有其他替换属性都不允许更新命名的IAM角色