本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
引用资源策略中的权限集、Amazon EKS 和 Amazon KMS
当您为 Amazon 账户分配权限集时,IAM Identity Center 会创建一个名称以开头的角色AWSReservedSSO_
。
角色的完整名称和 Amazon 资源名称(ARN)使用以下格式:
名称 | ARN |
---|---|
AWSReservedSSO_ |
arn:aws:iam:: |
例如,如果您创建了向数据库管理员授予 Amazon 账户访问权限的权限集,则会使用以下名称和 ARN 创建相应的角色:
名称 | ARN |
---|---|
AWSReservedSSO_DatabaseAdministrator_1234567890abcdef
|
arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO_DatabaseAdministrator_1234567890abcdef |
如果您删除 Amazon 账户中对该权限集的所有分配,则 IAM Identity Center 创建的相应角色也会被删除。如果您稍后对同一权限集进行新分配,IAM Identity Center 会为该权限集创建一个新角色。新角色的名称和 ARN 包含不同的唯一后缀。在此示例中,唯一后缀是 abcdef0123456789。
名称 | ARN |
---|---|
AWSReservedSSO_DatabaseAdministrator_abcdef0123456789 |
arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO_DatabaseAdministrator_abcdef0123456789 |
角色的新名称和 ARN 的后缀更改将导致任何引用原始名称和 ARN 的策略出现,从而中断使用 out-of-date相应权限集的个人的访问权限。例如,如果在以下配置中引用原始 ARN,则角色 ARN 的更改将中断权限集用户的访问:
-
在 Amazon Elastic Kubernetes Service (Amazon EKS) 的
aws-auth ConfigMap
文件中 -
在 Amazon Key Management Service (Amazon KMS) 密钥的基于资源的策略中。该策略也被称为关键策略。
尽管您可以更新大多数 Amazon 服务的基于资源的策略,以便为与权限集相对应的角色引用新 ARN,但您必须拥有在 IAM for Amazon EKS 中创建的备用角色, Amazon KMS 并且如果 ARN 发生变化。对于 Amazon EKS,备份 IAM 角色必须存在于 aws-auth ConfigMap
中。对于 Amazon KMS,它必须存在于您的密钥策略中。如果您在这两种情况下都没有备份 IAM 角色,则必须联系 Amazon Web Services Support。
避免访问中断的建议
为了避免因与权限集对应的角色的 ARN 更改而导致访问中断,我们建议您执行以下操作。
-
维护至少一项权限集分配。
在包含您在 Amazon EKS 中引用的角色、中的
aws-auth ConfigMap
关键策略或其他 Amazon Web Services基于资源的策略的 Amazon 账户中 Amazon KMS保留此分配。例如,如果您创建
EKSAccess
权限集并从 Amazon 账户中引用相应角色 ARN111122223333
,则将管理组永久分配给该账户中的权限集。由于分配是永久性的,IAM Identity Center 不会删除相应的角色,从而消除了重命名风险。管理组将始终具有访问权限,而无需担心权限升级的风险。 -
适用于 Amazon EKS 和 Amazon KMS:包括在 IAM 中创建的角色。
如果您在 Amazon EKS 集群的
aws-auth ConfigMap
中或在 Amazon KMS 密钥的密钥策略中引用权限集的角色 ARN,我们建议您还至少包含一个在 IAM 中创建的角色。该角色必须允许您访问 Amazon EKS 集群或管理 Amazon KMS 密钥策略。权限集必须能够承担此角色。这样,如果权限集的角色 ARN 发生更改,则可以在或密钥策略中更新对 ARN 的aws-auth ConfigMap
引用。 Amazon KMS 下一部分提供了如何为 IAM 中创建的角色创建信任策略的示例。该角色只能由AdministratorAccess
权限集承担。
自定义信任策略示例
以下是自定义信任策略的示例,该策略提供 AdministratorAccess
权限集,可以访问在 IAM 中创建的角色。该策略的关键要素包括:
-
此信任策略的委托人元素指定了 Amazon 账户委托人。在此策略中, Amazon 账户中
111122223333
拥有sts:AssumeRole
权限的委托人可以代入在 IAM 中创建的角色。 -
此信任策略的
Condition element
指定了可以担任在 IAM 中创建的角色的主体的附加要求。在此策略中,具有以下角色 ARN 的权限集可以担任该角色。arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO_AdministratorAccess_*"
注意
Condition
元素包括ArnLike
条件运算符,并在权限集角色 ARN 末尾使用通配符,而不是唯一的后缀。这意味着,即使权限集的角色 ARN 发生更改,策略也将允许权限集承担在 IAM 中创建的角色。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO_AdministratorAccess_*" } } } ] }
如果意外删除并重新创建了权限集或对该权限集的所有分配,则在此类策略中包含您在 IAM 中创建的角色将为您提供对您的 Amazon EKS 集群或其他 Amazon 资源的紧急访问权限。 Amazon KMS keys