更新角色信任策略
要更改可担任角色的人员,您必须修改角色的信任策略。您无法修改服务相关角色的信任策略。
注意
-
如果用户被列为角色的信任策略中的主体,但无法担任该角色,请检查用户的权限边界。如果为用户设置了权限边界,则它必须允许该
sts:AssumeRole
操作。 -
要允许用户在角色会话中重新代入当前角色,请将角色 ARN 或 Amazon Web Services 账户 ARN 指定为角色信任策略中的主体。提供计算资源(例如 Amazon EC2、Amazon ECS、Amazon EKS 和 Lambda)的 Amazon Web Services 服务会提供临时凭证并自动更新这些凭证。这样可以确保您始终拥有一组有效的凭证。对于这些服务,无需重新代入当前角色即可获得临时凭证。但是,如果您需要传递 会话标签 或者 会话策略,则需要重新代入当前角色。
更新角色信任策略(控制台)
更改 Amazon Web Services Management Console 中的角色信任策略
登录 Amazon Web Services Management Console,打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 控制台的导航窗格中,选择角色。
-
在您的账户的角色列表中,选择要修改的角色的名称。
-
选择 Trust relationships(信任关系)选项卡,然后选择 Edit trust policy(编辑信任策略)。
-
根据需要编辑信任策略。要添加其他可担任角色的主体,请在
Principal
元素中指定他们。例如,以下策略代码段演示如何在Principal
元素中引用两个 Amazon Web Services 账户:"Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] },
如果您指定其他账户中的主体,将账户添加到角色的信任策略只是建立跨账户信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色。新的受信任账户的管理员必须授予用户担任角色的权限。为此,管理员必须创建或编辑附加到用户以允许该用户访问
sts:AssumeRole
操作的策略。有关更多信息,请参阅以下过程或向用户授予切换角色的权限。以下策略代码段演示如何在
Principal
元素中引用两个 Amazon 服务:"Principal": { "Service": [ "opsworks.amazonaws.com", "ec2.amazonaws.com" ] },
-
在编辑完信任策略后,请选择 Update policy(更新策略)以保存所做更改。
有关策略结构和语法的更多信息,请参阅Amazon Identity and Access Management 中的策略和权限和IAM JSON 策略元素参考。
允许可信外部账户中的用户使用角色(控制台)
有关此过程的更多详细信息,请参阅向用户授予切换角色的权限。
-
登录受信任外部 Amazon Web Services 账户。
-
确定将权限附加到用户还是附加到组。在 IAM 控制台的导航窗格中,相应选择 Users(用户)或 User Groups(用户组)。
-
选择您要向其授予访问权限的用户或组的名称,然后选择 Permissions 选项卡。
-
请执行以下操作之一:
-
要编辑某个客户 托管策略,请选择该策略的名称,选择编辑策略,然后选择 JSON 选项卡。您不能编辑 Amazon 托管策略。Amazon 托管策略随 Amazon 图标 (
) 一起显示。有关 Amazon 托管策略与客户托管策略之间的差别的更多信息,请参阅托管策略与内联策略。
-
要编辑某个内联策略,请选择该策略名称旁边的箭头,然后选择 Edit policy。
-
-
在策略编辑器中,添加一个新的
Statement
元素,指定以下内容:{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
ACCOUNT-ID
:role/ROLE-NAME
" }将语句中的 ARN 替换为用户可担任的角色的 ARN。
-
按照屏幕上的提示完成策略的编辑。
更新角色信任策略(Amazon CLI)
您可以使用 Amazon CLI 更改可担任角色的人员。
修改角色信任策略 (Amazon CLI)
-
(可选)如果不知道要修改的角色的名称,请运行以下命令以列出账户中的角色:
-
(可选)要查看角色当前的信任策略,请运行以下命令:
-
要修改可访问角色的受信任主体,请创建带有已更新信任策略的文本文件。您可以使用任何文本编辑器构件策略。
例如,以下信任策略说明了如何在
Principal
元素中引用两个 Amazon Web Services 账户。这允许两个单独的 Amazon Web Services 账户 中的用户代入此角色。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ]}, "Action": "sts:AssumeRole" } }
如果您指定其他账户中的主体,将账户添加到角色的信任策略只是建立跨账户信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色。新的受信任账户的管理员必须授予用户担任角色的权限。为此,管理员必须创建或编辑附加到用户以允许该用户访问
sts:AssumeRole
操作的策略。有关更多信息,请参阅以下过程或向用户授予切换角色的权限。 -
要使用您刚刚创建的文件来更新信任策略,请运行以下命令:
允许受信任外部账户中的用户使用角色 (Amazon CLI)
有关此过程的更多详细信息,请参阅向用户授予切换角色的权限。
-
创建一个 JSON 文件,其中包含授予担任角色的权限的权限策略。例如,下面的策略包含最低必需权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
ACCOUNT-ID-THAT-CONTAINS-ROLE
:role/ROLE-NAME
" } }将语句中的 ARN 替换为用户可担任的角色的 ARN。
-
运行以下命令来将包含信任策略的 JSON 文件上传到 IAM:
此命令的输出包含策略的 ARN。请记录此 ARN,因为您在后面的步骤中需要它。
-
决定要将策略附加到哪个用户或组。如果不知道目标用户或组的名称,请使用下列命令之一列出账户中的用户或组:
-
使用以下命令之一,将您在上一步中创建的策略附加到用户或组:
更新角色信任策略(Amazon API)
您可以使用 Amazon API 更改可担任角色的人员。
修改角色信任策略 (Amazon API)
-
(可选)如果不知道要修改的角色的名称,请调用以下操作以列出账户中的角色:
-
(可选)要查看角色当前的信任策略,请调用以下操作:
-
要修改可访问角色的受信任主体,请创建带有已更新信任策略的文本文件。您可以使用任何文本编辑器构件策略。
例如,以下信任策略说明了如何在
Principal
元素中引用两个 Amazon Web Services 账户。这允许两个单独的 Amazon Web Services 账户 中的用户代入此角色。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ]}, "Action": "sts:AssumeRole" } }
如果您指定其他账户中的主体,将账户添加到角色的信任策略只是建立跨账户信任关系工作的一半而已。默认情况下,受信任账户中的任何用户均无法担任角色。新的受信任账户的管理员必须授予用户担任角色的权限。为此,管理员必须创建或编辑附加到用户以允许该用户访问
sts:AssumeRole
操作的策略。有关更多信息,请参阅以下过程或向用户授予切换角色的权限。 -
要使用您刚刚创建的文件来更新信任策略,请调用以下操作:
允许可信外部账户中的用户使用角色 (Amazon API)
有关此过程的更多详细信息,请参阅向用户授予切换角色的权限。
-
创建一个 JSON 文件,其中包含授予担任角色的权限的权限策略。例如,下面的策略包含最低必需权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
ACCOUNT-ID-THAT-CONTAINS-ROLE
:role/ROLE-NAME
" } }将语句中的 ARN 替换为用户可担任的角色的 ARN。
-
调用以下操作来将包含信任策略的 JSON 文件上传到 IAM:
此操作的输出包含策略的 ARN。请记录此 ARN,因为您在后面的步骤中需要它。
-
决定要将策略附加到哪个用户或组。如果不知道目标用户或组的名称,请调用下列操作之一列出账户中的用户或组:
-
调用以下操作之一,将您在上一步中创建的策略附加到用户或组: