修改角色
您可以使用以下方法更改或修改 IAM 中的角色:
-
要更改可担任角色的人员,您必须修改角色的信任策略。您无法修改服务相关角色的信任策略。
注意
如果用户被列为角色的信任策略中的委托人,但无法担任该角色,请检查用户的权限边界。如果为用户设置了权限边界,则它必须允许该
sts:AssumeRole
操作。 -
要更改该角色允许的权限,请修改该角色的权限策略。您无法修改 IAM 中的服务相关角色的权限策略。您可能能够修改依赖角色的服务中的权限策略。要检查服务是否支持此功能,请参阅使用 IAM 的 AWS 服务并查找服务相关角色中列为是的服务。选择 Yes 与查看该服务的服务相关角色文档的链接。
-
要更改角色的描述,请修改描述文本。
-
要更改角色的标签集,请参阅管理 IAM 实体的标签(控制台)。
-
要为使用 AWS CLI 或 API 担任的角色指定最大会话持续时间设置,请修改最大会话持续时间设置的值。该设置可以具有 1 小时到 12 小时之间的值。如果未指定值,则应用默认最大值 (1 小时)。该设置不限制 AWS 服务建立的会话。
注意
从 AWS CLI 或 API 中担任角色的任何人都可以使用
duration-seconds
CLI 参数或DurationSeconds
API 参数请求更长的会话。MaxSessionDuration
设置确定可使用DurationSeconds
参数请求的最大角色会话持续时间。如果用户未指定DurationSeconds
参数值,其安全凭证的有效期为 1 小时。 -
要更改对某角色允许的最大权限,请修改角色的权限边界。
您可以使用 AWS 管理控制台、AWS 命令行工具、Windows PowerShell 工具 或 IAM API 来进行这些更改。
查看角色访问
在更改角色的权限之前,您应查看其最近的服务级别活动。这非常重要,因为您不想删除使用它的委托人(个人或应用程序)的访问权限。有关查看上次访问的服务相关数据的更多信息,请参阅使用上次访问的服务数据优化权限。
修改角色 (控制台)
可以使用 AWS 管理控制台修改角色。
更改谁可担任角色(控制台)
-
登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/。
-
在 IAM 控制台的导航窗格中,选择 Roles。
-
在您的账户的角色列表中,选择要修改的角色的名称。
-
选择 Trust relationships 选项卡,然后选择 Edit trust relationship。
-
根据需要编辑信任策略。要添加其他可担任角色的委托人,请在
Principal
元素中指定他们。例如,以下策略代码段说明了如何在Principal
元素中引用两个 AWS 账户:"Principal": { "AWS": [ "arn:aws-cn:iam::111122223333:root", "arn:aws-cn:iam::444455556666:root" ] },
如果您指定其他账户中的委托人,将账户添加到角色的信任策略只是建立跨账户信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色。新的受信任账户的管理员必须授予用户担任角色的权限。为此,管理员必须创建或编辑附加到用户以允许该用户访问
sts:AssumeRole
操作的策略。有关更多信息,请参阅以下过程或向用户授予切换角色的权限。以下策略代码段说明了如何在
Principal
元素中引用两个 AWS 服务:"Principal": { "Service": [ "opsworks.amazonaws.com.cn", "ec2.amazonaws.com.cn" ] },
-
在编辑完信任策略后,请选择更新信任策略以保存所做更改。
有关策略结构和语法的更多信息,请参阅策略和权限和IAM JSON 策略元素参考。
允许受信任外部账户中的用户使用角色 (控制台)
有关此过程的更多详细信息,请参阅向用户授予切换角色的权限。
-
登录受信任外部 AWS 账户。
-
确定将权限附加到用户还是附加到组。在 IAM 控制台的导航窗格中,相应选择 Users 或 Groups。
-
选择您要向其授予访问权限的用户或组的名称,然后选择 Permissions 选项卡。
-
执行以下任一操作:
-
要编辑某个客户 托管策略,请选择该策略的名称,选择编辑策略,然后选择 JSON 选项卡。您不能编辑 AWS 托管策略。AWS 托管策略随 AWS 图标 (
) 一起显示。有关 AWS 托管策略与客户托管策略之间的差别的更多信息,请参阅托管策略与内联策略。
-
要编辑某个内联策略,请选择该策略名称旁边的箭头,然后选择 Edit policy。
-
-
在策略编辑器中,添加一个新的
Statement
元素,指定以下内容:{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws-cn:iam::
ACCOUNT-ID
:role/ROLE-NAME
" }将语句中的 ARN 替换为用户可担任的角色的 ARN。
-
按照屏幕上的提示完成策略的编辑。
更改角色允许的权限 (控制台)
-
通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/。
-
在 IAM 控制台的导航窗格中,选择 Roles。
-
选择要修改的角色的名称,然后选择权限选项卡。
-
执行以下任一操作:
-
要编辑某个现有客户托管策略,请选择该策略的名称,然后选择 Edit policy。
注意
您无法编辑 AWS 托管策略。AWS 托管策略随 AWS 图标 (
) 一起显示。有关 AWS 托管策略与客户托管策略之间的差别的更多信息,请参阅托管策略与内联策略。
-
要将现有的托管策略附加到角色,请选择添加权限。
-
要编辑某个现有的内联策略,请选择该策略名称旁边的箭头,然后选择 Edit Policy。
-
要嵌入新内联策略,请选择 Add inline policy。
-
更改角色的描述 (控制台)
-
登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/。
-
在 IAM 控制台的导航窗格中,选择 Roles。
-
选择要修改的角色的名称。
-
在 Role description 旁边 (最右侧),选择 Edit。
-
在框中键入新描述,然后选择 Save。
更改使用 AWS CLI 或 API 担任的角色的最大会话持续时间设置(控制台)
-
登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/。
-
在 IAM 控制台的导航窗格中,选择 Roles。
-
选择要修改的角色的名称。
-
在最大 CLI/API 会话持续时间旁边,选择一个值。或者,选择自定义持续时间,然后键入一个值 (以秒为单位)。
-
选择 Save。
在某个人下次担任该角色后,您所做的更改才会生效。要了解如何撤销该角色的现有会话,请参阅撤消 IAM 角色临时安全凭证。
更改用于设置角色的权限边界的策略
-
登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/。
-
在导航窗格中,选择 Roles。
-
选择要更改其权限边界的角色的名称。
-
选择 Permissions 选项卡。如有必要,打开权限边界部分,然后选择更改边界。
-
选择要用于权限边界的策略。
-
选择更改边界。
在某个人下次担任该角色后,您所做的更改才会生效。
修改角色 (AWS CLI)
可以使用 AWS Command Line Interface 修改角色。
更改谁可担任角色 (AWS CLI)
-
(可选)如果不知道要修改的角色的名称,请运行以下命令以列出账户中的角色:
-
(可选)要查看角色当前的信任策略,请运行以下命令:
-
要修改可访问角色的受信任委托人,请创建带有已更新信任策略的文本文件。您可以使用任何文本编辑器构件策略。
例如,以下信任策略说明了如何在
Principal
元素中引用两个 AWS 账户。这允许两个单独的 AWS 账户中的用户担任此角色。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ]}, "Action": "sts:AssumeRole" } }
如果您指定其他账户中的委托人,将账户添加到角色的信任策略只是建立跨账户信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色。新的受信任账户的管理员必须授予用户担任角色的权限。为此,管理员必须创建或编辑附加到用户以允许该用户访问
sts:AssumeRole
操作的策略。有关更多信息,请参阅以下过程或向用户授予切换角色的权限。 -
要使用您刚刚创建的文件来更新信任策略,请运行以下命令:
允许受信任外部账户中的用户使用角色 (AWS CLI)
有关此过程的更多详细信息,请参阅向用户授予切换角色的权限。
-
创建一个 JSON 文件,其中包含授予担任角色的权限的权限策略。例如,下面的策略包含最低必需权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws-cn:iam::
ACCOUNT-ID-THAT-CONTAINS-ROLE
:role/ROLE-NAME
" } }将语句中的 ARN 替换为用户可担任的角色的 ARN。
-
运行以下命令来将包含信任策略的 JSON 文件上传到 IAM:
此命令的输出包含策略的 ARN。请记录此 ARN,因为您在后面的步骤中需要它。
-
决定要将策略附加到哪个用户或组。如果不知道目标用户或组的名称,请使用下列命令之一列出账户中的用户或组:
-
使用以下命令之一,将您在上一步中创建的策略附加到用户或组:
更改角色允许的权限 (AWS CLI)
-
(可选)如需查看当前与角色关联的权限,请运行以下命令:
-
aws iam list-role-policies(用于列出内联策略)
-
aws iam list-attached-role-policies(用于列出托管策略)
-
-
对于更新角色的权限所使用的命令,根据您是在更新托管策略还是内联策略而有所不同。
要更新托管策略,请运行以下命令以创建托管策略的新版本:
要更新内联策略,请运行以下命令:
更改用于设置角色的权限边界的托管策略 (AWS CLI)
-
(可选)要查看角色的当前权限边界,请运行以下命令:
-
要使用不同的托管策略来更新角色的权限边界,请运行以下命令:
角色只能具有一个设置为权限边界的托管策略。如果您更改权限边界,则会更改允许的角色的最大权限。
更改角色的描述 (AWS CLI)
-
(可选)要查看角色的当前描述,请运行以下命令:
-
要更新角色的描述,请带描述参数运行以下命令:
使用 AWS CLI (AWS CLI) 更改担任的角色的最大会话持续时间设置
-
(可选)要查看角色的当前最大会话持续时间设置,请运行以下命令:
-
要更新角色的最大会话持续时间设置,请带
max-sessionduration
CLI 参数或MaxSessionDuration
API 参数运行以下命令:在某个人下次担任该角色后,您所做的更改才会生效。要了解如何撤销该角色的现有会话,请参阅撤消 IAM 角色临时安全凭证。
修改角色 (AWS API)
可以使用 AWS API 修改角色。
更改谁可担任角色 (AWS API)
-
(可选)如果不知道要修改的角色的名称,请调用以下操作以列出账户中的角色:
-
(可选)要查看角色当前的信任策略,请调用以下操作:
-
要修改可访问角色的受信任委托人,请创建带有已更新信任策略的文本文件。您可以使用任何文本编辑器构件策略。
例如,以下信任策略说明了如何在
Principal
元素中引用两个 AWS 账户。这允许两个单独的 AWS 账户中的用户担任此角色。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ]}, "Action": "sts:AssumeRole" } }
如果您指定其他账户中的委托人,将账户添加到角色的信任策略只是建立跨账户信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色。新的受信任账户的管理员必须授予用户担任角色的权限。为此,管理员必须创建或编辑附加到用户以允许该用户访问
sts:AssumeRole
操作的策略。有关更多信息,请参阅以下过程或向用户授予切换角色的权限。 -
要使用您刚刚创建的文件来更新信任策略,请调用以下操作:
允许受信任外部账户中的用户使用角色 (AWS API)
有关此过程的更多详细信息,请参阅向用户授予切换角色的权限。
-
创建一个 JSON 文件,其中包含授予担任角色的权限的权限策略。例如,下面的策略包含最低必需权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws-cn:iam::
ACCOUNT-ID-THAT-CONTAINS-ROLE
:role/ROLE-NAME
" } }将语句中的 ARN 替换为用户可担任的角色的 ARN。
-
调用以下操作来将包含信任策略的 JSON 文件上传到 IAM:
此操作的输出包含策略的 ARN。请记录此 ARN,因为您在后面的步骤中需要它。
-
决定要将策略附加到哪个用户或组。如果不知道目标用户或组的名称,请调用下列操作之一列出账户中的用户或组:
-
调用以下操作之一,将您在上一步中创建的策略附加到用户或组:
更改角色允许的权限 (AWS API)
-
(可选)如需查看当前与角色关联的权限,请调用以下操作:
-
ListRolePolicies(用于列出内联策略)
-
ListAttachedRolePolicies(用于列出托管策略)
-
-
对于更新角色的权限所使用的操作,根据您是在更新托管策略还是内联策略而有所不同。
要更新托管策略,请调用以下操作以创建托管策略的新版本:
要更新内联策略,请调用以下操作:
更改用于设置角色的权限边界的托管策略 (AWS API)
-
(可选)要查看角色的当前权限边界,请调用以下操作:
-
要使用不同的托管策略来更新角色的权限边界,请调用以下操作:
角色只能具有一个设置为权限边界的托管策略。如果您更改权限边界,则会更改允许的角色的最大权限。
更改角色的描述 (AWS API)
-
(可选)要查看角色当前的描述,请调用以下操作:
-
要更新角色的描述,请带描述参数调用以下操作:
使用 API 更改担任的角色的最大会话持续时间设置 (AWS API)
-
(可选)要查看角色的当前最大会话持续时间设置,请调用以下操作:
-
要更新角色的最大会话持续时间设置,请带
max-sessionduration
CLI 参数或MaxSessionDuration
API 参数调用以下操作:在某个人下次担任该角色后,您所做的更改才会生效。要了解如何撤销该角色的现有会话,请参阅撤消 IAM 角色临时安全凭证。