本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
IAM 联合身份验证
注意
如果您已经有了用于管理用户和群组的中央用户目录,我们建议您使用 IAM Identity Center 作为您的主要员工访问服务。如果本节后面讨论的任何设计注意事项使您无法使用 IAM 身份中心,请使用 IAM 联合身份验证而不是在 AWS 中创建单独的 IAM 用户。
IAM 联合会在双方之间建立信任系统,目的是对用户进行身份验证并共享授权他们访问资源所需的信息。此系统需要连接到您的用户目录的身份提供商 (IdP) 和在 IAM 中管理的服务提供商 (SP)。IdP 负责对用户进行身份验证并向 IAM 提供相关的授权上下文数据,IAM 控制对 AWS 账户和环境中资源的访问权限。
IAM 联合支持常用的标准,例如 SAML 2.0 和 OpenID Connect (OIDC)。许多 IdPs 用户都支持基于 SAML 的联合,它支持联合单点登录访问权限,用户无需创建 IAM 用户即可登录 AWS 管理控制台或调用 AWS API。您可以使用 IAM 在 AWS 中创建用户身份,也可以连接到现有的 IdP(例如,微软 Active Directory、Okta、Ping Identity 或微软 Entra ID)。或者,当您想要在兼容 OIDC 的 IdP 和您的 AWS 账户之间建立信任时,可以使用 IAM OIDC 身份提供商。
IAM 联合有两种设计模式:多账户联合或单账户联合。
多账户 IAM 联合
在这种多账户 IAM 模式中,您可以在 IdP 和所有需要整合的 AWS 账户之间建立单独的 SAML 信任关系。权限是以个人账户为基础进行映射和配置的。这种设计模式提供了一种管理角色和策略的分布式方法,使您可以灵活地为每个账户启用单独的 SAML 或 OIDC IdP,并使用联合用户属性进行访问控制。
多账户 IAM 联合提供以下好处:
-
提供对所有 AWS 账户的集中访问权限,并允许您以分布式方式管理每个 AWS 账户的权限。
-
在多账户设置中实现可扩展性。
-
符合合规性要求。
-
允许您从中心位置管理身份。
如果您想以分布式方式管理由 AWS 账户分开的权限,则该设计特别有用。如果您在 AWS 账户中没有可重复的 AM 权限,AWS 账户中的 AWS 目录用户之间没有可重复的 IAM 权限,这也很有帮助。例如,它支持网络管理员,他们提供的资源访问权限可能因账户而略有不同。
必须在每个账户中单独创建 SAML 提供商,因此每个 AWS 账户都需要流程来管理 IAM 角色及其权限的创建、更新和删除。这意味着您可以为同一工作职能具有不同敏感度的 AWS 账户定义精确而不同的 IAM 角色权限。
下图说明了多账户 IAM 联合模式。

单账户 IAM 联合(hub-and-spoke 模型)
注意
在本节中描述的特定场景中使用此设计模式。在大多数情况下,推荐使用基于 IAM 身份中心的联合身份验证或多账户 IAM 联合身份验证的方法。如有疑问,请联系 AWS Suppor
在单账户联合模式中,在 IdP 和单个 AWS 账户(身份账户)之间建立 SAML 信任关系。权限是通过集中式身份账户映射和配置的。这种设计模式既简单又高效。身份提供商提供映射到身份账户中特定 IAM 角色(和权限)的 SAML 断言。然后,联邦用户可以假 cross-account-roles设通过身份账户访问其他 AWS 账户。
下图说明了单账户 IAM 联合模式。

使用案例:
-
拥有单个 AWS 账户,但有时需要为隔离的沙盒或测试创建短期 AWS 账户的公司。
-
以主账户维持制作服务,但提供临时的、基于项目的学生账户的教育机构。
注意
这些用例需要强有力的治理和有时限的回收流程,以确保生产数据不会传递到联合账户,并消除潜在的安全风险。在这些情况下,审计过程也很困难。
在 IAM 联合身份验证和 IAM 身份中心之间进行选择的设计注意事项
-
IAM Identity Center 一次仅支持将账户连接到一个目录。如果您使用多个目录或想要根据用户属性管理权限,请考虑使用 IAM 联合作为设计替代方案。你应该有一个支持 SAML 2.0 协议的 IdP,例如微软 Active Directory 联合身份验证服务 (AD FS)、Okta 或微软 Entra ID。您可以通过交换 IdP 和 SP 元数据以及配置 SAML 断言以将 IAM 角色映射到公司目录组和用户来建立双向信任。
-
如果您使用 IAM OIDC 身份提供商在兼容 OIDC 的 IdP 和您的 AWS 账户之间建立信任,请考虑使用 IAM 联合身份验证。当您使用 IAM 控制台创建 OIDC 身份提供商时,控制台会尝试为您获取指纹。此外,我们建议您手动获取 OIDC IdP 的指纹,并验证控制台提取了正确的指纹。有关更多信息,请参阅 IAM 文档中的在 IAM 中创建 OIDC 身份提供商。
-
如果您的公司目录用户没有工作职能的可重复权限,请使用 IAM 联合。例如,不同的网络或数据库管理员可能需要在 AWS 账户中自定义的 IAM 角色权限。要在 IAM Identity Center 中实现这一目标,您可以创建单独的客户托管策略并在权限集中引用它们。有关更多信息,请参阅 AWS 博客文章如何在高级用例中使用 AWS IAM 身份中心中的客户托管策略
。 -
如果您使用的是分布式权限模型(即每个账户管理自己的权限)或通过 AWS 使用集中式权限模型 CloudFormation StackSets,请考虑使用 IAM 联合。如果您使用的是同时涉及集中式和分布式权限的混合模式,请考虑使用 IAM Identity Center。有关更多信息,请参阅 IAM 文档中的身份提供商和联合。
-
诸如 Amazon Q 开发人员专业版和 AWS CLI 版本 2 之类的服务和功能内置了对 AWS Identity Center 的支持。但是,IAM 联合不支持其中一些功能。
-
IAM Access Analyzer 目前不支持对 IAM 身份中心用户操作的分析。