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

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

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

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

常见反模式:

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

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

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

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

实施指导

员工用户访问 AWS 的指南

员工用户(如组织中的员工和合同工)可能需要使用 AWS Management Console或 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 最佳实践:

相关文档:

相关视频:

相关示例:

相关工具: