此内容已过时。此版本的架构完善的框架现在可在以下位置找到: https://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/security.html

SEC 2: 如何管理人员和机器的身份?

在访问和运行安全的 AWS 工作负载时,您需要管理两种类型的身份。了解管理和授予访问权限所需的身份类型,这有助于确保正确的身份能够在正确的条件下访问正确的资源。人员身份:您的管理员、开发人员、操作员和最终用户需要确定身份才能访问您的 AWS 环境和应用程序。这些是您的组织成员或您与之协作的外部用户,以及通过 Web 浏览器、客户端应用程序或交互式命令行工具与您的 AWS 资源交互的用户。机器身份:您的服务应用程序、操作工具和工作负载需要一个身份来向 AWS 服务发出请求 - 例如,读取数据。这些身份包括在 AWS 环境中运行的机器,如 Amazon EC2 实例或 AWS Lambda 函数。您还可以管理需要访问权限的外部各方的机器身份。此外,您可能还有需要访问您 AWS 环境的 AWS 之外的机器。

资源

Mastering identity at every layer of the cake
Managing user permissions at scale with AWS SSO
Best Practices for Managing, Retrieving, and Rotating Secrets at Scale
IAM Best Practices
The AWS Account Root User
Getting Started with AWS Secrets Manager
Temporary Security Credentials
Identity Providers and Federation
Security Partner Solutions: Access and Access Control

最佳实践:

改进计划

使用强大的登录机制

  • 创建 IAM 策略以强制实施 MFA 登录: 创建一项客户托管的 IAM 策略,除了允许用户在“我的安全凭证”页面上代入角色、更改自己的凭证、以及管理其 MFA 设备的 IAM 操作之外,禁止其他所有 IAM 操作。
    https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1
  • 在身份提供商中启用 MFA: 在您使用的身份提供商或单点登录服务(例如 AWS Single Sign-On (SSO))中启用 MFA。
    https://aws.amazon.com/iam/details/mfa/
  • 配置强密码策略: 在 IAM 和联合身份系统中配置强密码策略,以便防护暴力攻击。
    http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html
  • 定期轮换凭证: 确保工作负载管理员定期更改其密码和访问密钥(如果使用)。
    Rotate credentials regularly
  • 使用临时凭证

  • 实施最低权限策略: 向 IAM 组和角色分配具有最低权限的访问策略,以反映所定义的用户角色或职能。
    Grant least privilege
  • 删除不必要的权限: 通过删除不必要的权限来实施最低权限。
    Reducing policy scope by viewing user activity
    View role access
  • 考虑权限边界: 权限边界是一项高级功能,它使用托管策略设置基于身份的策略可向 IAM 实体授予的最高权限。实体的权限边界仅允许实体执行其基于身份的策略及其权限边界都允许的操作。
    Lab: IAM permissions boundaries delegating role creation
  • 考虑为权限分配资源标签: 您可以使用标签来控制对支持标记的 AWS 资源的访问。您还可以对 IAM 用户和角色进行标记,以控制他们可以访问的内容。
    Lab: IAM tag based access control for EC2
    Attribute-based access control (ABAC)
  • 安全存储和使用密钥

  • 使用 AWS Secrets Manager: AWS Secrets Manager 是一项 AWS 服务,让您能够更轻松地管理密钥。密钥可以是数据库凭证、密码、第三方 API 密钥甚至任意文本。
    AWS Secrets Manager
  • 依赖集中式身份提供商

  • 集中管理访问: 创建 IAM 身份提供商实体,以在 AWS 账户和您的身份提供商 (IdP) 之间建立信任关系。IAM 支持与 OpenID Connect (OIDC) 或 SAML 2.0(安全断言标记语言 2.0)兼容的 IdP。
    Identity Providers and Federation
  • 集中应用程序访问: 考虑使用 Amazon Cognito 实现应用程序集中式访问。借助 Amazon Cognito,您可以快速轻松地将用户注册、登录和访问控制添加到 Web 和移动应用程序中。Amazon Cognito 可扩展至数百万用户,并支持使用社交身份提供商(如 Facebook、Google 和 Amazon)登录,以及通过企业身份提供商使用 SAML 2.0 登录。
    Amazon Cognito
  • 删除旧的 IAM 用户和组: 在您开始使用身份提供商 (IdP) 后,请删除不再需要的 IAM 用户和组。
    Finding unused credentials
    Deleting an IAM group
  • 定期审核和轮换凭证

  • 定期审核凭证: 使用凭证报告和 IAM Access Analyzer 来审核 IAM 凭证和权限。
    IAM Access Analyzer
    Getting credential report
    Lab: Automated IAM user cleanup
  • 使用访问级别审核 IAM 权限: 为了提高您的 AWS 账户的安全性,请定期审核和监控每个 IAM 策略。请确保您的策略授予仅执行必要操作所需的最低权限。
    Use access levels to review IAM permissions
  • 考虑自动创建和更新 IAM 资源: AWS CloudFormation 可用于自动部署 IAM 资源(包括角色和策略),以减少人为错误,因为可以验证模板和控制版本。
    Lab: Automated deployment of IAM groups and roles
  • 利用用户组和属性

  • 如果您使用的是 AWS Single Sign-On (SSO),请配置组: AWS SSO 使您能够配置用户组,并为组分配所需的权限级别。
    AWS Single Sign-On - Manage Identities
  • 了解基于属性的访问控制 (ABAC): 基于属性的访问控制 (ABAC) 是一种基于属性定义权限的授权策略。
    What Is ABAC for AWS?
    Lab: IAM Tag Based Access Control for EC2