跨账户访问 – 我应该指定用户/角色还是账户? - AWS Secrets Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

跨账户访问 – 我应该指定用户/角色还是账户?

如果您希望使用附加到密钥的基于资源的策略,以便为不同 AWS 账户中的 IAM 委托人提供访问权限,您可以选择两种方法:

  • 仅指定另一个账户的 ID – 在语句的 Principal 元素中,您指定“外部”账户根用户的 Amazon 资源名称 (ARN)。这使得该外部账户的管理员可以委派对该外部账户中角色的访问权。然后,管理员必须将 IAM 权限策略分配给一个或多个需要访问密钥的角色。

    "Principal": {"AWS": arn:aws-cn:iam::AccountId:root}
  • 指定其他账户中的确切用户或角色 – 指定一个确切用户或角色 ARN 作为基于密钥的策略的 Principal。您从其他账户的管理员获得 ARN。仅账户中的特定单个用户或角色可以访问资源。

    "Principal": [ {"AWS": "arn:aws-cn:iam::AccountId:role/MyCrossAccountRole"}, {"AWS": "arn:aws-cn:iam::AccountId:user/MyUserName"} ]

最佳实践是,出于以下原因,我们建议您仅在基于密钥的策略中指定账户:

  • 在这两种情况下,您信任另一个账户的管理员。在第一种情况下,您信任管理员,以确保仅授权的个人能够访问 IAM 用户,或者可以担任指定的角色。这创建的信任级别与仅指定账户 ID 基本相同。您信任账户和管理员。在您仅指定账户 ID 时,您为管理员提供了管理用户的灵活性。

  • 在您指定确切的角色时,IAM 在内部将角色转换为角色特有的“委托人 ID”。如果您删除角色并使用相同的名称重新创建角色,角色将获得新的委托人 ID。这意味着新角色不会自动获取对资源的访问权限。IAM 出于安全原因提供此功能,意味着意外删除和还原可能导致访问“中断”。

在您仅为账户根用户授予权限时,这组权限将成为账户管理员可以向用户和角色委派的选项的限制。如果没有先为账户授予权限,则管理员无法为资源授予权限。

重要

如果您选择直接授予跨账户访问密钥的权限而不使用角色,则必须使用自定义 AWS KMS 客户主密钥 (CMK) 对密钥加密。来自其他账户的委托人必须已获得密钥和自定义 AWS KMS CMK 的权限。