View a markdown version of this page

SEC02-BP04 依赖集中式身份提供程序 - AWS Well-Architected Framework

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

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

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

常见反模式:

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

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

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

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

实施指导

员工用户访问 AWS 的指南

员工用户(如组织中的员工和合同工)可能需要使用 AWS 管理控制台或 AWS Command Line Interface(AWS CLI)来访问 AWS,以履行其工作职能。您可以通过从集中式身份提供程序联合到 AWS,在两个层面上向员工用户授予 AWS 访问权:直接联合到每个 AWS 账户,或联合到 AWS 组织中的多个账户。

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

应用程序用户指南

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

实施步骤

员工用户访问 AWS 的步骤

  • 通过以下方法之一,使用集中式身份提供程序将您的员工用户联合身份验证到 AWS:

    • 通过与您的身份提供程序联合,使用 IAM Identity Center 来允许单点登录到您的 AWS 组织中的多个 AWS 账户。

    • 使用 IAM 将您的身份提供程序直接连接到每个 AWS 账户,从而实现精细的联合访问。

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

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

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

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

资源

相关的 Well-Architected 最佳实践:

相关文档:

相关视频:

相关示例:

相关工具: