引用资源策略中的权限集、Amazon EKS 和 Amazon KMS - Amazon IAM Identity Center
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

引用资源策略中的权限集、Amazon EKS 和 Amazon KMS

当您为 Amazon 账户分配权限集时,IAM Identity Center 会创建一个名称以开头的角色AWSReservedSSO_

角色的完整名称和 Amazon 资源名称(ARN)使用以下格式:

名称 ARN
AWSReservedSSO_permission-set-name_unique-suffix arn:aws:iam::aws-account-ID:role/aws-reserved/sso.amazonaws.com/aws-region/AWSReservedSSO_permission-set-name_unique-suffix

例如,如果您创建了向数据库管理员授予 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