Loading...

管理 AWS IAM 身份中心的身份源迁移 安全博客



AWS IAM 身份中心身份源转换管理

作者:徐小雪、坎瓦尔巴瓦、余飞偶,于2024年9月25日发布

重点摘要

在 AWS IAM 身份中心中管理身份源转换是确保用户无缝访问 AWS 资源的关键步骤。本文提供了身份源转换的详细步骤,包括如何备份和恢复用户、组及权限集的分配。在身份源配置改变时,为了减少对用户的影响,必须提前进行规划。通过本文提供的示例代码和技巧,您将能够顺利过渡到新的身份源,确保用户访问的连续性和系统的稳定性。

AWS IAM 身份中心IAM Identity Center负责管理用户对 Amazon Web ServicesAWS资源的访问,包括 AWS 账户和应用程序。您可以使用 IAM 身份中心在身份中心身份存储中创建和管理用户身份,或无缝连接到其他身份源。

组织可能因多种原因而更改其 IAM 身份中心中的身份源配置,包括切换身份提供者IdP、扩大身份覆盖面、采纳新功能等。这些转换可能会干扰用户访问,需要合理的规划来最小化停机时间。

在本文中,我们将指导您如何从一个身份源切换到另一个身份源,并提供可用于协助转换的示例代码。

背景

在 IAM 身份中心中配置的身份源决定了用户和组的创建和管理位置。每个组织在任意时刻只能连接一个身份源。身份中心支持三种主要的身份源选项:

身份中心目录:这是 IAM 身份中心的默认身份存储,您可以直接在身份中心内创建和管理用户及组,而无需依赖外部提供者。活动目录:可以与本地活动目录或使用 AWS 管理的 Microsoft AD 配合使用,借助 AWS 目录服务 实现此集成,允许您使用现有的活动目录身份和组成员资格。外部 IdP:可以继续使用支持 SAML 20 的当前第三方 IdP,例如 Okta Universal Directory 或 Microsoft Entra ID前身为 Azure AD。

了解这些身份源选项,能够帮助您根据现有基础设施和身份验证需求选择最适合的来源。

图1展示了通过以下方式访问 AWS 资源的用户和组的流程:

将 权限集 分配给目录中的用户和组,以使其能够访问 AWS 账户。将应用程序分配给目录中的用户和组,从而提供对 AWS 管理应用程序 和 客户管理应用程序 的访问。

在更改身份源时,所需的工作量取决于原始和新源的类型。AWS 文档详细说明了这些考虑事项。在影响最小的情境中,分配保持不变,但您需要强制重置密码或验证新源的正确声明。而在较具干扰性的情况下,用户、组及其分配会被删除。在这种情况下,您需要在更改身份源后恢复被删除的条目。

示例部署

此部署涵盖权限集和应用分配的备份和恢复。这些脚本将分配与唯一的用户属性如 UserName和组属性如 DisplayName相关联。可能在用户和组恢复过程中更改的属性如 UserId 和 GroupId不会被使用。

未覆盖的内容包括用户、组、权限集和应用程序的备份和恢复。

用户和组的备份和恢复未在此涵盖,因为它们严重依赖于源和目标 IdP 的格式。由于我们正在进行身份源切换,权限集将保持不变,应用程序不会被删除。如果您在 AWS 区域中更改 IdP,则 IAM 身份中心实例将被删除,应用程序和权限集将在分配之外被删除。在这种情况下,您必须重新部署这些应用程序。请参阅 如何自动化审核和验证 AWS IAM 身份中心用户和组的权限 了解备份权限集的信息。

示例脚本和详细步骤可在 GitHub 上找到。

注意:该解决方案可在 GitHub awssamples 存储库中找到。您可以通过 GitHub Issues 报告错误或提出功能请求。该解决方案的构建者可以协助解决 GitHub 问题。 企业支持 客户可以联系他们的技术账户经理TAM以获取进一步的问题或功能请求。

操作流程

在本节中,我们将指导您完成在 IAM 身份中心中切换到新身份源的过程。

第一步:从当前身份源备份用户、组和分配

此步骤对于保护用户信息及其相关访问权限至关重要。

如何备份用户和组:

当将 IAM 身份中心目录用作身份源时,使用 ListUsers、ListGroups 和 ListGroupMembershipsForMember 备份元数据和属性。当使用活动目录或外部 IdP 等源时,您可以使用兼容的工具,例如 Windows PowerShell 的活动目录模块 和第三方脚本来 备份用户 和 备份组。

注意:对于一些外部 IdP,存在与活动目录的本机集成,例如 Okta AD 集成 和 Ping One AD 连接。您可以设置本机集成并同步用户和组数据,而无需备份和恢复这些数据。

可以通过运行 GitHub 上的 backuppy 文件来备份分配。将 ltIDCSTOREIDgt 替换为您的身份存储 ID格式为 d1234567890,将 ltIDCARNgt 替换为您的 IAM 身份中心实例的 Amazon 资源名称ARN。

bashpython3 backuppy idcid ltIDCSTOREIDgt idcarn ltIDCARNgt

该脚本使用 IAM 身份中心 API 和 身份存储 API,如图2所示,生成权限集分配备份文件UserAssignmentsjson 和 GroupAssignmentsjson和应用分配备份文件AppAssignmentsjson。

注意:如果您使用 IAM 身份中心的 禁用用户访问 功能,则 ListUsers API 将无法显示禁用状态。您需要手动检查 AWS 管理控制台中的禁用状态。您可以选择:

从备份文件中删除禁用用户。在步骤4中恢复分配之前,重新禁用已检查的用户。

第二步:在目标身份源中恢复并验证已备份的用户和组

目标身份源将成为新的权威身份源。完成后,请验证组成员资格和属性是否已正确转移。

如果目标是 IAM 身份中心目录,使用 CreateUser、CreateGroup 和 CreateGroupMembership API 从先前的备份文件恢复。如果目标是活动目录或外部 IdP,则使用相应的原生导入功能或集成工具进行恢复。

第三步:配置 IAM 身份中心以连接到新的身份源并同步用户和组

更新 IAM 身份中心配置以指向新源。如适用,使用工具如 可配置 AD 同步 或 使用 SCIM 自动配置 来同步已恢复的身份。

警告:在重新建立目录期间,用户将无法通过 IAM 身份中心访问 AWS 账户或应用程序,直到步骤4中的所有分配恢复完成。

第四步:在新身份源中恢复用户和组的分配

用于恢复分配的 API 如图3所示。

可以通过运行 GitHub 上的 restorepy 文件来恢复分配。将 ltNEWIDCSTOREIDgt 替换为您新配置的身份存储 ID格式为 d1234567890,将 ltIDCARNgt 替换为您的 IAM 身份中心实例的 ARN。

bashpython3 restorepy idcid ltNEWIDCSTOREIDgt idcarn ltIDCARNgt

该脚本使用图2所示的 API,并默认从步骤1中拾取备份文件UserAssignmentsjson、GroupAssignmentsjson 和 AppAssignmentsjson。账户权限集分配结果会使用指数退避方式自动检索五次。如果在五次重试后结果不是成功的状态,该主体 ID 将被标记为失败并导出到错误日志中。

极光加速免费

注意:对于维持单独身份源的 AWS 管理应用,使用 CreateApplicationAssignments API 恢复应用分配将无法保留用户访问。这些应用通常依赖于原始身份源 ID,或依赖于来自原始身份源的 UserId 和 GroupId。这一依赖关系体现在创建 AWS 管理应用程序时导入 IAM 身份中心的用户或组的过程中。例如,AWS 管理的应用程序包括 Amazon SageMaker Studio 和 Amazon Q Developer。这些应用必须逐个恢复,可能需要重新部署该应用。

第五步:使用新身份源验证用户访问

确保用户仍可以访问预期的账户和应用程序。

结论

在 IAM 身份中心中转换身份源需要仔细规划和实施。本文概述了管理该转换的步骤。通过遵循这些步骤,您可以简化转换过程,确保用户访问的平稳与高效,最大限度地减少停机时间。要开始,请参阅 GitHub 存储库。有关更多帖子,请访问 AWS 安全博客 渠道并搜索 IAM 身份中心。

如果您对本文有反馈,请在下面的评论部分提交意见。如果您对本文有任何问题,请 联系 AWS 支持。

徐小雪徐小雪是驻多伦多的 AWS 解决方案架构师,主要与金融服务客户合作,帮助他们确保工作负载的安全并设计可扩展的 AWS 云解决方案。

坎瓦尔巴瓦坎瓦尔巴瓦是 AWS 的首席技术账户经理,与客户合作以优化他们对 AWS 服务的使用并实现商业目标。

余飞偶余飞偶是支持独立软件供应商ISV客户的解决方案架构师,位于新加坡,并且是容器 TFC 的一部分。她喜欢帮助客户发展业务,构建自动化、创新和提高效率的解决方案。

管理 AWS IAM 身份中心的身份源迁移 安全博客

标签 AWS IAM 身份中心、合规性、安全博客

极光加速器官方网站,为您提供全球连接轻松体验,一键完成,提升网络稳定性与速度,解决跨区域访问的烦恼。