SEC02-BP04 依赖集中式身份提供程序 - 安全支柱

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

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

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

常见反模式:

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

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

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

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

实施指导

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

要将员工用户与每个 AWS 账户直接联合,可以使用集中式身份提供程序来联合到该账户中的 AWS Identity and Access Management。IAM 的灵活性允许您启用单独的 SAML 2.0Open ID Connect(OIDC)身份提供程序(针对每个 AWS 账户),并使用联合用户属性进行访问控制。员工用户会使用网络浏览器,通过提供凭证(如密码和 MFA 令牌码)来登录身份提供程序。身份提供程序向浏览器发出 SAML 断言,该断言将提交到 AWS Management Console登录 URL,以便允许用户通过代入 IAM 角色单点登录 AWS Management Console。用户还可以获取临时 AWS API 凭证用于 AWS CLIAWS SDK(从 AWS STS),方法是使用身份提供程序的 SAML 断言代入 IAM 角色

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

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

注意

您负责处理 SCIM 访问令牌的轮换,如自动预置文档中所述。此外,您还负责轮换支持身份联合验证的证书。

应用程序用户的指南:通过将 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 用户和群组。

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

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

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

资源

相关最佳实践:

相关文档:

相关视频:

相关示例:

相关工具: