SEC02-BP04 依赖集中式身份提供商 - AWS Well-Architected 框架

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

SEC02-BP04 依赖集中式身份提供商

对于工作人员身份(员工和合同工),请依赖允许您在集中位置管理身份的身份提供程序。这样就可以更轻松地跨多个应用程序和系统管理访问权限,因为您可以从单一位置创建、分配、管理、撤销和审核访问权限。

预期结果:您有一个集中式身份提供商,可以在其中集中管理员工用户、身份验证策略(例如要求多因素身份验证 (MFA))以及对系统和应用程序的授权(例如根据用户的群组成员资格或属性分配访问权限)。您的员工用户登录到中央身份提供程序并联合身份验证(单点登录)到内部和外部应用程序,这样用户就无需记住多个凭证。您的身份提供程序已与您的人力资源(HR)系统集成,因此人事变动会自动与身份提供程序同步。例如,如果有人离开您的组织,您可以自动撤消对联合应用程序和系统(包括 AWS)的访问权限。您已在身份提供程序中启用了详细的审核日志记录,并且正在监控这些日志,以便发现异常用户行为。

常见反模式:

  • 不使用联合身份验证和单点登录。员工用户在多个应用程序和系统中创建单独的用户账户和凭证。

  • 尚未实现员工用户身份生命周期的自动化,例如将身份提供程序与 HR 系统集成。当用户离职或变换角色时,您使用手动流程来删除或更新他们在多个应用程序和系统中的记录。

建立此最佳实践的好处:通过使用集中式身份提供程序,您可以在一个位置管理员工用户身份和策略,可以向用户和群组分配应用程序的访问权限,还可以监控用户登录活动。通过与您的人力资源(HR)系统集成,当用户的角色发生更改时,这些更改会同步到身份提供程序,并自动更新为他们分配的应用程序和权限。当用户离职时,其身份将在身份提供程序中自动被禁用,从而撤消他们对联合应用程序和系统的访问权限。

在未建立这种最佳实践的情况下暴露的风险等级:

实施指导

员工用户访问 AWS的指导

员工用户(如组织中的员工和承包商)可能需要访问权限才能 AWS 使用 AWS Management Console 或 AWS Command Line Interface (AWS CLI) 来履行其工作职能。您可以通过将集中式身份提供商的联合身份提供商分为两个 AWS 级别来授予员工用户 AWS 访问权限:直接联合到每个级别 AWS 账户 或联合到组织中的多个账户。AWS

  • 要将您的员工用户直接与每个用户联合 AWS 账户,您可以使用集中式身份提供商在该账户AWS Identity and Access Management中进行联合。的灵活性IAM允许您为每个提供者启用单独的 SAML2.0Open ID Connect (OIDC) 身份提供商, AWS 账户 并使用联合用户属性进行访问控制。您的员工用户将使用其 Web 浏览器通过提供其凭据(例如密码和MFA令牌码)登录身份提供商。身份提供者向其浏览器SAML发出声明,该声明提交给 AWS Management Console 登录,URL以允许用户AWS Management Console 通过扮演角色进行单点登录。IAM您的用户还可以使用身份提供商的SAML断言代入IAM角色,AWS STS从而AWS SDKs从中获取临时 AWS API证书,以便在AWS CLI或中使用。

  • 要将员工用户与 AWS 组织中的多个帐户联合起来,您可以使用AWS IAM Identity Center集中管理员工用户对 AWS 账户 和应用程序的访问权限。组织启用 Identity Center 并配置身份源。IAMIdentity Center 提供了一个默认的身份源目录,您可以使用该目录来管理您的用户和群组。或者,你可以选择外部身份源,方法是使用 SAML 2.0 连接到外部身份提供商,然后使用自动配置用户和组,或者使用连接到你的 Microsoft AD DirectorySCIM,或者使用连接到你的 Microsoft AD Directory AWS Directory Service。配置身份源后,您可以通过在权限集中定义最低权限策略 AWS 账户 来为用户和组分配访问权限。员工用户可以通过中央身份提供程序进行身份验证,登录 AWS 访问门户并单点登录到 AWS 账户 以及分配给他们的云应用程序。您的用户可以将 AWS CLI v2 配置为通过 Identity Center 进行身份验证并获取运行 AWS CLI 命令的凭据。Identity Center 还允许单点登录访问 AWS 应用程序,例如 Amazon SageMaker StudioAWS IoT Sitewise Monitor 门户。

遵循上述指导后,您的员工用户在管理工作负载时将不再需要使用IAM用户和组进行正常操作 AWS。相反,您的用户和群组是在外部管理的,用户可以作为联合身份访问 AWS 资源。 AWS 联合身份使用集中式身份提供程序定义的组。您应识别并删除不再需要的IAM群组、IAM用户和长期用户凭证(密码和访问密钥)。 AWS 账户您可以使用凭证报告查找未使用的IAM凭证、删除相应的IAM用户删除IAM群组。您可以将服务控制策略 (SCP) 应用于您的组织,以帮助防止创建新IAM用户和群组,从而通过联合身份强制访问 AWS 该权限。

应用程序用户指导

通过将 Amazon Cognito 用作集中式身份提供程序,您可以管理应用程序(例如移动应用程序)用户的身份。Amazon Cognito 支持对 Web 和移动应用程序进行身份验证、授权和用户管理。Amazon Cognito 提供可扩展到数百万用户的身份存储,支持社交网络和企业身份联合验证,并提供高级安全功能来协助保护用户和业务。您可以将自定义 Web 或移动应用程序与 Amazon Cognito 集成,以便在几分钟内为应用程序添加用户身份验证和访问控制。Amazon Cognito 基于开放身份标准(例如 Open ID Connect (OIDC)),支持各种合规性法规,并与前端和后端开发资源集成。SAML

实施步骤

员工用户访问 AWS的步骤

  • AWS 使用以下方法之一,将您的员工用户与使用集中式身份提供商联合起来:

    • 使用 IAM Identity Center 通过与您的身份提供商联合来启用对 AWS 组织 AWS 账户 中的多人进行单点登录。

    • 用于将您的身份提供商直接IAM连接到每个提供商 AWS 账户,从而实现联合细粒度访问。

  • 识别并移除被联合身份取代的IAM用户和群组。

适用于应用程序用户的步骤

  • 将 Amazon Cognito 用作应用程序的集中式身份提供程序。

  • 使用 OpenID Connect 将你的自定义应用程序与 Amazon Cognito 集成。OAuth您可以使用 Amplify 库开发自定义应用程序,这些库提供了与各种 AWS 服务(例如用于身份验证的 Amazon Cognito)集成的简单接口。

资源

相关的 Well-Architected 最佳实践:

相关文档:

相关视频:

相关示例:

相关工具: