本文适用于 AWS 标识架构师、管理员和安全分析师,为其提供了有关为 AWS 部署 Microsoft Entra 标识和访问解决方案的即时洞察和详细指南。 可以配置和测试这些 Microsoft 安全解决方案,而不会影响现有的标识提供者和 AWS 帐户用户,直到做好切换准备。
体系结构
AWS 会为它创建的每个帐户创建单独的标识和访问管理 (IAM) 存储。 下图显示了具有单个 AWS 帐户的 AWS 环境的标准设置:
根用户对 AWS 帐户具有完全控制权限,并可将访问权限委托给其他标识。 AWS IAM 主体为需要访问 AWS 帐户的每个角色和用户提供唯一标识。 AWS IAM 可以使用复杂的密码和基本 MFA 保护每个根帐户、主体帐户和用户帐户。
许多组织需要多个 AWS 帐户,从而导致形成标识孤岛,这使得管理工作非常复杂:
为了实现集中式标识管理并避免必须管理多个标识和密码,大多数组织都希望对平台资源使用单一登录。 某些 AWS 客户依赖于基于服务器的 Microsoft Active Directory 实现 SSO 集成。 另一些客户购买第三方解决方案来同步或联合其标识并提供 SSO。
Microsoft Entra ID 为集中式标识管理提供了强 SSO 身份验证。 几乎任何遵循通用 Web 身份验证标准的应用或平台(包括 AWS)都可以使用 Microsoft Entra ID 进行标识和访问管理。
许多组织已使用 Microsoft Entra ID 来分配和保护 Microsoft 365 或混合云标识。 员工使用其 Microsoft Entra 标识来访问电子邮件、文件、即时消息、云应用程序和本地资源。 可以快速轻松地将 Microsoft Entra ID 与你的 AWS 帐户集成,让管理员和开发人员使用其现有标识登录到你的 AWS 环境。
下图展示了 Microsoft Entra ID 如何与多个 AWS 帐户集成,以提供集中式标识和访问管理:
Microsoft Entra ID 提供多种功能用于与 AWS 的直接集成:
- 跨旧式、传统和新式身份验证解决方案的 SSO。
- MFA,包括与 Microsoft Intelligent Security Association (MISA) 合作伙伴的多个第三方解决方案的集成。
- 用于强身份验证和严格治理的强大条件访问功能。 Microsoft Entra ID 使用条件访问策略和基于风险的评估来为用户对 AWS 管理控制台和 AWS 资源的访问进行身份验证和授权。
- 大规模威胁检测和自动化响应。 Microsoft Entra ID 每天处理超过 300 亿个身份验证请求,以及全球数万亿个有关威胁的信号。
- Privileged Access Management (PAM),用于启用对特定资源的实时 (JIT) 预配。
用于 AWS 帐户的高级 Microsoft Entra 标识管理
其他高级 Microsoft Entra 功能可以针对最敏感的 AWS 帐户提供额外的控制层。 Microsoft Entra ID P2 许可证包括以下高级功能:
Privileged Identity Management (PIM),为 Azure 和 Microsoft 365 中的所有委托角色提供高级控制。 例如,用户管理员不是被静态分配用户管理员角色,而是拥有按需激活该角色的权限。 此权限在设置的时间限制(例如一小时)后停用。 PIM 记录所有激活,并具有其他可以进一步限制激活功能的控制措施。 PIM 可在特权用户进行更改之前确保额外的管理和保护层,从而进一步保护标识体系结构。
可以通过控制自定义组的访问权限来将 PIM 扩展到任何委托的权限,例如为访问 AWS 角色而创建的组。 有关部署 PIM 的详细信息,请参阅规划 Privileged Identity Management。
Advanced Identity Protection 通过监控用户或会话风险提高 Microsoft Entra 登录安全性。 用户风险定义凭据泄露的可能性,例如,用户 ID 和密码显示在公开发布的破解列表中。 会话风险确定登录活动是否来自有风险的位置、IP 地址或具有其他泄露指标。 这两种检测类型都利用了 Microsoft 的综合威胁情报功能。
有关 Advanced Identity Protection 的详细信息,请参阅 Microsoft Entra ID 保护安全概述。
Microsoft Defender for Identity 通过监控所有活动和威胁信号来保护在 Active Directory 域控制器上运行的标识和服务。 Defender for Identity 根据来自客户违规调查的真实经历来识别威胁。 Defender for Identity 监控用户行为,并提供攻击面减少建议以阻止高级攻击,例如侦察、横向移动和域统治。
有关 Defender for Identity 的详细信息,请参阅什么是 Microsoft Defender for Identity。
方案详细信息
为关键工作负荷和高度敏感的信息提供支持的 Amazon Web Services (AWS) 帐户需要强大的标识保护和访问控制解决方案。 与 Microsoft Entra ID 结合使用时,AWS 标识管理将得到增强。 Microsoft Entra ID 是基于云的、全面的集中式标识和访问管理解决方案,可帮助保护 AWS 帐户和环境。 Microsoft Entra ID 通过多重身份验证 (MFA) 和条件访问策略提供集中式单点登录 (SSO) 和强身份验证。 Microsoft Entra ID 支持 AWS 标识管理、基于角色的标识和访问控制。
许多使用 AWS 的组织已经依赖于 Microsoft Entra ID for Microsoft 365 或混合云标识管理和访问保护。 这些组织可以快速轻松地对其 AWS 帐户使用 Microsoft Entra ID,通常无需额外费用。 其他高级 Microsoft Entra 功能(例如 Privileged Identity Management (PIM) 和 Advanced Identity Protection)可帮助保护最敏感的 AWS 帐户。
Microsoft Entra ID 可以轻松地与其他 Microsoft 安全解决方案(例如 Microsoft Defender for Cloud 应用程序和 Microsoft Sentinel)进行集成。 有关详细信息,请参阅 Defender for Cloud Apps 和 Microsoft Sentinel for AWS。 Microsoft 安全解决方案可扩展,并有多级保护。 组织可以实施这些解决方案中的一个或多个以及其他类型的保护,以获得全面的安全性体系结构,从而保护当前和未来的 AWS 部署。
建议
安全性
以下原则和准则对于任何云安全解决方案都很重要:
确保组织可以监控、检测和自动保护用户和程序对云环境的访问。
持续查看当前帐户,以确保标识和权限治理和控制。
遵循最小特权和零信任原则。 确保每个用户只能从受信任的设备和已知位置访问所需的特定资源。 减少每个管理员和开发人员的权限,仅为他们提供正在履行的角色所需的权限。 定期评审。
持续监控平台配置更改,尤其是当它们提供特权升级或攻击持久性的机会时。
主动检查和控制内容,防止未经授权的数据外泄。
利用你可能已经拥有的解决方案,例如 Microsoft Entra ID P2,无需支付更多费用即可提高安全性。
基本 AWS 帐户安全性
要确保 AWS 帐户和资源的基本安全性,请执行以下操作:
在有关保护 AWS 帐户和资源最佳做法中查看 AWS 安全指南。
通过 AWS 管理控制台主动检查所有数据传输,降低上传和下载恶意软件和其他恶意内容的风险。 直接上传或下载到 AWS 平台中的资源(例如 Web 服务器或数据库)的内容可能需要更多保护。
请考虑保护对其他资源的访问,包括:
- 在 AWS 帐户中创建的资源。
- 特定的工作负荷平台,例如 Windows Server、Linux Server 或容器。
- 管理员和开发人员用于访问 AWS 管理控制台的设备。
AWS IAM 安全性
保护 AWS 管理控制台的一个关键方面是控制谁可以进行敏感配置更改。 AWS 帐户根用户具有不受限制的访问权限。 安全团队应当完全控制根用户帐户,以防止其登录到 AWS 管理控制台或使用 AWS 资源。
要控制根用户帐户,请执行以下操作:
- 请考虑将根用户登录凭据从个人的电子邮件地址更改为由安全团队控制的服务帐户。
- 确保使用复杂的 root 用户帐户密码,并为 root 用户强制实施 MFA。
- 监控用于登录的根用户帐户实例的日志。
- 仅在紧急情况下使用根用户帐户。
- 使用 Microsoft Entra ID 实施委托的管理访问,而不是使用根用户执行管理任务。
清楚地了解和检查其他 AWS IAM 帐户组件,以进行合适的映射和分配。
默认情况下,在根用户创建一个或多个标识来委托访问之前,AWS 帐户没有 IAM 用户。 从其他标识系统(例如 Microsoft Active Directory)同步现有用户的解决方案还可以自动预配 IAM 用户。
IAM 策略提供对 AWS 帐户资源的委托访问权限。 AWS 提供了 750 多个不同的 IAM 策略,客户还可以定义自定义策略。
IAM 角色将特定策略附加到标识。 角色是对基于角色的访问控制 (RBAC) 进行管理的方式。 当前解决方案使用外部标识通过承担 IAM 角色来实现 Microsoft Entra 标识。
IAM 组也是管理 RBAC 的一种方式。 不要将 IAM 策略直接分配给各个 IAM 用户,请创建一个 IAM 组,通过附加一个或多个 IAM 策略来分配权限,并将 IAM 用户添加到该组以继承对资源的相应访问权限。
某些 IAM 服务帐户必须继续在 AWS IAM 中运行才能提供编程访问。 请务必检查这些帐户,安全地存储其安全凭据并限制对安全凭据的访问,并定期轮换凭据。
部署此方案
下一节将介绍如何部署 Microsoft Entra ID,实现到单个 AWS 帐户的单一登录。
规划和准备
要准备部署 Azure 安全解决方案,请查看并记录当前的 AWS 帐户和 Microsoft Entra 信息。 如果你部署了多个 AWS 帐户,请为每个帐户重复这些步骤。
在 AWS 计费管理控制台中,记录以下 AWS 帐户的当前信息:
- AWS 帐户 ID,唯一标识符。
- 帐户名或根用户。
- 付款方式,无论是分配给信用卡还是公司计费协议。
- 有权访问 AWS 帐户信息的备用联系人。
- 安全更新和记录安全问题以供紧急访问。
- 启用或禁用 AWS 区域以遵守数据安全策略。
在 AWS IAM 管理控制台中,查看并记录以下 AWS IAM 组件:
- 已创建的组,包括详细的成员身份和附加的基于角色的映射策略。
- 已创建的用户,包括用户帐户的密码存在时长,以及服务帐户的访问密钥存在时长。 另请确认是否为每个用户启用了 MFA。
- 角色。 有两个默认的服务链接角色:AWSServiceRoleForSupport 和 AWSServiceRoleForTrustedAdvisor。 请记录自定义的任何其他角色。 这些角色链接到权限策略,用于在 Microsoft Entra ID 中映射角色。
- 策略。 现成可用的策略在“类型”列中会显示“AWS 管理的”、“工作职能”或“客户管理的”。 请记录自定义的所有其他策略。 另请根据“用作”列中的条目来记录每个策略的分配位置。
- 标识提供者,以了解任何现有的安全断言标记语言 (SAML) 标识提供者。 请规划如何将现有标识提供者替换为单个 Microsoft Entra 标识提供者。
在 Azure 门户中,查看 Microsoft Entra 租户:
- 评估租户信息以查看租户是否拥有 Microsoft Entra ID P1 或 P2 许可证。 P2 许可证提供高级 Microsoft Entra 标识管理功能。
- 评估企业应用程序以查看是否有任何现有应用程序使用 AWS 应用程序类型,如主页 URL 列中的
http://aws.amazon.com/
所示。
计划 Microsoft Entra 部署
Microsoft Entra 部署过程假定已为组织(例如 Microsoft 365 实现)配置了 Microsoft Entra。 帐户可以从 Active Directory 域同步而来,也可以是直接在 Microsoft Entra 中创建的云帐户。
规划 RBAC
如果该 AWS 安装对 RBAC 使用 IAM 组和 IAM 角色,可以将现有 RBAC 结构映射到新的 Microsoft Entra 用户帐户和安全组。
如果 AWS 帐户没有强大的 RBAC 实现,请首先处理最敏感的访问:
更新 AWS 帐户根用户。
查看附加到 IAM 策略 AdministratorAccess 的 AWS IAM 用户、组和角色。
从可以修改、创建或删除资源和其他配置项的策略开始,处理其他已分配的 IAM 策略。 可以通过查看“用作”列来识别正在使用的策略。
计划迁移
Microsoft Entra ID 以集中方式处理所有身份验证和授权。 可以规划并配置用户映射和 RBAC,而不会影响管理员和开发人员,直到你准备好强制实施新方法。
从 AWS IAM 帐户迁移到 Microsoft Entra ID 的大致过程如下所示。 有关详细说明,请参阅部署。
将 IAM 策略映射到 Microsoft Entra 角色,并使用 RBAC 将角色映射到安全组。
将每个 IAM 用户替换为是相应安全组成员的 Microsoft Entra 用户,以便登录并获取适当的权限。
通过以下方式进行测试:要求每个用户使用其 Microsoft Entra 帐户登录到 AWS 并确认他们具有相应的访问级别。
在用户确认 Microsoft Entra ID 访问权限后,删除 AWS IAM 用户帐户。 对每个用户重复此过程,直到他们全部迁移。
对于服务帐户和编程式访问,请使用相同的方法。 请更新使用该帐户的每个应用程序以改用等效的 Microsoft Entra 用户帐户。
请确保任何剩余的 AWS IAM 用户都具有复杂的密码且启用了 MFA,或具有定期替换的访问密钥。
下图显示了一个示例,其中包含了在 Microsoft Entra ID 与 AWS IAM 之间的配置步骤以及最终的策略和角色映射:
单一登录集成
Microsoft Entra ID 支持与 AWS SSO 的单一登录集成。 可以在一个位置将 Microsoft Entra ID 连接到 AWS,并集中控制对数百个帐户和 AWS SSO 集成应用程序的访问。 此功能启用了无缝的 Microsoft Entra 登录体验,以便用户使用 AWS CLI。
以下 Microsoft 安全解决方案过程为 AWS Administrators 和 AWS Developers 示例角色实现 SSO。 为你需要的任何其他角色重复此过程。
此过程包括以下步骤:
- 创建新的 Microsoft Entra 企业应用程序。
- 配置适用于 AWS 的 Microsoft Entra SSO。
- 更新角色映射。
- 测试到 AWS 管理控制台的 Microsoft Entra SSO。
以下链接提供了完整的详细实现步骤和故障排除:
将 AWS 应用添加到 Microsoft Entra 企业应用程序
AWS 管理员和开发人员使用企业应用程序登录到 Microsoft Entra ID 进行身份验证,然后重定向到 AWS 进行授权和访问 AWS 资源。 查看应用程序的最简单方法是登录到 https://myapps.microsoft.com
,但是,你也可以将唯一的 URL 发布到任何易于访问的地方。
按照从库中添加 Amazon Web Services (AWS) 中的说明来设置企业应用程序。 这些说明将让你知道哪个 AWS 应用要添加到你的 Microsoft Entra 企业应用程序。
如果有多个要管理的 AWS 帐户(例如“开发测试”和“生产”),请为企业应用程序使用唯一名称,在其中包含公司和特定 AWS 帐户的标识符。
配置适用于 AWS 的 Microsoft Entra SSO
按照以下步骤配置适用于 AWS 的 Microsoft Entra SSO:
在 Azure 门户中,按照配置 Microsoft Entra SSO 上的步骤配置为单一登录 AWS 而创建的企业应用程序。
在 AWS 控制台中,按照配置 AWS SSO 中的步骤配置 AWS 帐户以实现单一登录。 作为此配置的一部分,你将创建代表 Microsoft Entra 预配代理执行操作的一个新 IAM 用户,以允许将所有可用的 AWS IAM 角色同步到 Microsoft Entra ID。 AWS 需要使用此 IAM 用户将各个用户映射到角色,用户才能登录到 AWS 管理控制台。
- 使你能够轻松识别你为了支持此集成而创建的组件。 例如,使用一个标准命名约定(例如 Svc-)对服务帐户进行命名。
- 请务必记录所有新项目。
- 确保任何新凭据都包括复杂的密码,并将这些密码集中存储以实现安全的生命周期管理。
根据这些配置步骤,可以画出如下所示的示意图:
在 AWS 控制台中,按照以下步骤创建更多角色。
在 AWS IAM 中,选择“角色”->“创建角色”。
在“创建”角色页中,执行以下步骤:
- 在“选择可信实体的类型”下选择“SAML 2.0 联合身份验证”。
- 在“选择 SAML 2.0 提供程序”下,选择你在前面的步骤中创建的 SAML 提供程序。
- 选择“允许以编程方式和通过 AWS 管理控制台进行访问”。
- 在完成时选择“下一步: 权限”。
在“附加权限策略”对话框中,选择“AdministratorAccess”。 然后,选择“下一步: 标签”。
在“添加标记”对话框中,将其留空,然后选择“下一步: 审阅”。
在“审阅”对话框中执行以下步骤:
- 在“角色名称”中输入你的角色名称 (Administrator)。
- 在“角色说明”中输入说明。
- 选择“创建角色”。
按照上面列出的步骤创建另一个角色。 将角色命名为 Developer,并为其授予你选择的一些权限(例如 AmazonS3FullAccess)。
你已成功在 AWS 中创建了一个 Administrator 和 Developer 角色。
在 Microsoft Entra ID 中创建以下用户和组:
- 用户 1:Test-AWSAdmin
- 用户 2:Test-AWSDeveloper
- 组 1:AWS-Account1-Administrators
- 组 2:AWS-Account1-Developers
- 将 Test-AWSAdmin 添加为 AWS-Account1-Administrators 的成员
- 将 Test-AWSDeveloper 添加为 AWS-Account1-Developers 的成员
按照如何在 AWS Single-Account Access 中配置角色预配中的步骤配置自动化角色预配。 完成第一个预配周期可能需要长达一个小时。
如何更新角色映射
因为你使用两个角色,所以请执行以下额外步骤:
确认预配代理可看到至少两个角色:
转到“用户和组”,然后选择“添加用户”。
选择 AWS-Account1-Administrators。
选择关联的角色。
重复上述步骤以完成每个组-角色映射。 完成后,你应当将两个 Microsoft Entra 组正确映射到了 AWS IAM 角色:
如果你无法看到或选择某个角色,请返回到“预配”页,确认 Microsoft Entra 预配代理中的预配成功,并确保 IAM 用户帐户具有正确的权限。 你还可以重启预配引擎以再次尝试导入:
测试到 AWS 管理控制台的 Microsoft Entra SSO
测试每个测试用户的登录,以确认 SSO 正常工作。
启动一个新的专用浏览器会话,以确保所存储的其他凭据不会与测试冲突。
使用你之前创建的 Test-AWSAdmin 或 Test-AWSDeveloper 的 Microsoft Entra 用户帐户凭据转到
https://myapps.microsoft.com
。你应当会看到 AWS 控制台应用的新图标。 选择该图标,并遵循任何身份验证提示:
登录到 AWS 控制台后,导航到相应功能以确认此帐户具有相应的受委托访问权限。
请注意用户登录会话的命名格式:
角色 / UPN / AWS 帐户编号
可以在 Defender for Cloud Apps 或 Microsoft Sentinel 中使用此用户登录会话信息来跟踪用户登录活动。
注销,然后为其他测试用户帐户重复此过程,以确认角色映射和权限的差异。
启用条件访问
创建一个新的要求进行 MFA 的条件访问策略:
在 Azure 门户中,导航到“Microsoft Entra ID”>“安全性”,然后选择“条件访问”。
在左侧导航栏中选择“策略”。
选择“新建策略”,并如下所述完成表单:
- 名称:输入 AWS Console – MFA
- 用户和组:选择前面创建的两个角色组:
- AWS-Account1-Administrators
- AWS-Account1-Developers
- 授权:选择“需要多重身份验证”
将“启用策略”设置为“打开”。
选择“创建”。 策略会立即生效。
要测试条件访问策略,请注销测试帐户,打开一个新的专用浏览会话,并使用其中一个角色组帐户登录。 你会看到 MFA 提示:
完成 MFA 设置过程。 最好使用移动应用进行身份验证,而不是依赖于短信。
你可能需要创建多个条件访问策略,以满足强身份验证的业务需求。 在创建策略时请考虑你使用的命名约定,以确保轻松进行识别和日常维护。 此外,除非已广泛部署 MFA,否则请确保该策略已限定为仅影响预期用户。 其他策略应涵盖其他用户组的需求。
启用条件访问后,可以实施其他控制,例如 PAM 和实时 (JIT) 预配。 有关详细信息,请参阅什么是 Microsoft Entra ID 中的自动 SaaS 应用用户预配。
如果你有 Defender for Cloud Apps,则可以使用条件访问来配置 Defender for Cloud Apps 会话策略。 有关详细信息,请参阅配置 AWS 活动的 Microsoft Entra 会话策略。
后续步骤
- 有关 AWS 的安全指南,请参阅保护 AWS 帐户和资源的最佳做法。
- 有关最新的 Microsoft 安全信息,请参阅 www.microsoft.com/security。
- 有关如何实现和管理 Microsoft Entra ID 的完整详细信息,请参阅使用 Microsoft Entra ID 保护 Azure 环境。
- AWS 教程:Microsoft Entra ID 和 IDP SSO
- Microsoft 教程:AWS 的 SSO
- PIM 部署计划
- 标识保护安全性概述
- 什么是 Microsoft Defender for Identity?
- 将 AWS 连接到 Microsoft Defender for Cloud 应用
- Defender for Cloud 应用如何帮助保护你的 Amazon Web Services (AWS) 环境
相关资源
- 有关 Azure 和 AWS 功能的深入覆盖范围和比较,请参阅面向于 AWS 专业人员的 Azure 内容集。
- Azure 和 AWS 上的安全性和标识
- Defender for Cloud Apps 和 Microsoft Sentinel for AWS