Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Cloudformation AWS IAM角色(带和不带RoleName参数)_Amazon Web Services_Amazon Cloudformation_Amazon Iam - Fatal编程技术网

Amazon web services Cloudformation AWS IAM角色(带和不带RoleName参数)

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

使用Cloudformation创建新的IAM角色资源时,
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角色