AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

了解 IAM 的工作方式

在创建用户之前,您应该了解 IAM 的工作方式。IAM 提供了控制您的账户的身份验证和授权所需的基础设施。IAM 基础设施包含以下元素:

 IAM 简介图表

委托人

委托人是可请求对 AWS 资源执行操作的实体。用户、角色、联合身份用户和应用程序都是 AWS 委托人。您的AWS 账户根用户是您的第一个委托人。作为最佳实践,请勿使用您的根用户执行日常工作。而是应创建 IAM 用户和角色。您还可以支持联合身份用户或编程访问以允许应用程序访问您的 AWS 账户。

请求

在委托人尝试使用 AWS 管理控制台、AWS API 或 AWS CLI 时,该委托人将向 AWS 发送请求。请求包含以下信息:

  • 操作 – 委托人希望执行的操作。这可以是 AWS 管理控制台中的操作或者 AWS CLI 或 AWS API 中的操作。

  • 资源 – 对其执行操作的 AWS 资源对象。

  • 委托人 – 发送请求的用户、角色、联合身份用户或应用程序。有关委托人的信息包括与该委托人关联的策略。

  • 环境数据 – 有关 IP 地址、用户代理、SSL 启用状态或当天时间的信息。

  • 资源数据 – 与请求的资源相关的数据。这可能包括 DynamoDB 表名称或 Amazon EC2 实例上的标签等信息。

AWS 将请求信息收集到请求上下文中,后者用于评估和授权请求。

身份验证

作为委托人,您必须进行身份验证 (登录到 AWS) 才能将请求发送到 AWS。虽然某些服务(如 Amazon S3 和 AWS STS)允许一些来自匿名用户的请求,但它们是规则的例外情况。

要作为用户从控制台中进行身份验证,您必须使用用户名和密码登录。要从 API 或 AWS CLI 中进行身份验证,您必须提供访问密钥和私有密钥。您还可能需要提供额外的安全信息。例如,AWS 建议您使用多重验证 (MFA) 以提高您的账户的安全性。要了解 AWS 可验证的 IAM 身份的更多信息,请参阅身份 (用户、组和角色)

授权

在授权期间,AWS 使用请求上下文中的值来检查应用于请求的策略。然后,它使用策略来确定是允许还是拒绝请求。大多数策略作为 JSON 文档存储在 AWS 中,并指定为委托人允许或拒绝的权限。有多种类型的策略可影响是否对请求进行授权。这些策略类型可分类为权限策略权限边界。权限策略定义所附加到的对象的权限。这些包括基于身份的策略(最常见)、基于资源的策略和 ACL。权限边界是一项高级功能,让您可以使用策略来限制委托人可以具有的最大权限。这些边界可应用于 AWS Organizations 组织或者 IAM 用户或角色。

要向用户提供访问他们自己账户中的 AWS 资源的权限,只需基于身份的策略。基于资源的策略常用于授予跨账户访问。其他策略类型是高级功能,应谨慎使用。

AWS 检查应用于请求上下文的每个策略。如果一个策略包含拒绝的操作,AWS 将拒绝整个请求并停止评估。这称为显式拒绝。由于请求是默认拒绝的,因此,只有在适用的策略允许请求的每个部分时,AWS 才会授权请求。评估逻辑遵循以下规则:

  • 默认情况下,所有请求都将被拒绝。(通常,始终允许使用 AWS 账户根用户 凭证创建的访问该账户资源的请求。)

  • 权限策略中的显式允许覆盖此默认设置。

  • 权限边界(AWS Organizations SCP 或用户或角色边界)覆盖允许。如果有适用的权限边界,则该边界必须允许请求。否则,将隐式拒绝它。

  • 任何策略中的显式拒绝将覆盖任何允许。

操作

在对您的请求进行身份验证和授权后,AWS 将批准请求中的操作。操作是由服务定义的,包括可以对资源执行的操作,例如,查看、创建、编辑和删除该资源。例如,IAM 为用户资源支持大约 40 个操作,包括以下操作:

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

要允许委托人执行操作,您必须在应用于委托人或受影响的资源的策略中包含所需的操作。要查看每个服务支持的操作、资源类型和条件键的列表,请参阅

资源

在 AWS 批准请求中的操作后,可以对您的账户中的相关资源执行这些操作。资源是位于服务中的对象。示例包括 Amazon EC2 实例、IAM 用户和 Amazon S3 存储桶。服务定义了一组可对每个资源执行的操作。如果创建一个请求以对资源执行不相关的操作,则会拒绝该请求。例如,如果您请求删除一个 IAM 角色,但提供一个 IAM 组资源,请求将失败。要查看确定操作影响哪些资源的 AWS 服务表,请参阅