AWS Identity and Access Management
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

了解 IAM 的工作方式

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

 IAM 简介图表

委托人

委托人是可对 AWS 资源执行操作的实体。您的管理 IAM 用户是您的第一个委托人。随着时间的推移,您可以允许用户和服务担任某个角色。您可以支持联合用户或编程访问以允许应用程序访问您的 AWS 账户。用户、角色、联合用户和应用程序都是 AWS 委托人。

请求

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

  • 委托人要执行的操作

  • 对哪些资源执行操作

  • 委托人信息,包括从中发出请求的环境

请求信息是从多个来源收集的:

  • 委托人 (请求者),这是根据授权数据确定的。这包括与该委托人关联的权限总和。

  • 环境数据,例如,IP 地址、用户代理、SSL 启用状态或当天时间。此信息根据请求确定。

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

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

身份验证

作为委托人,您必须进行身份验证 (登录到 AWS) 才能将请求发送到 AWS。此外,诸如 Amazon S3, 的一些服务允许来自匿名用户的请求。要从控制台中进行身份验证,您必须使用用户名和密码登录。要从 API 或 CLI 中进行身份验证,您必须提供访问密钥和私有密钥。您还可能需要提供额外的安全信息。AWS 建议您使用多重身份验证 (MFA) 以提高您的账户的安全性。要了解 AWS 可验证的 IAM 身份的更多信息,请参阅身份 (用户、组和角色)

授权

在授权期间,IAM 使用请求上下文中的值检查匹配的策略并确定是允许还是拒绝请求。策略作为 JSON 文档存储在 IAM 中,并指定为委托人允许或拒绝的权限 (基于身份的策略) 或为资源允许或拒绝的权限 (基于资源的策略)。

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

  • 默认情况下,所有请求都将被拒绝。

  • 显式允许将取代此默认设置。

  • 显式拒绝将覆盖任何允许。

注意

默认情况下,仅 AWS 账户根用户有权访问该账户中的所有资源。因此,如果未以根用户身份登录,您必须具有策略授予的权限。

操作

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

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

要允许委托人执行操作,您必须在应用于委托人或受影响的资源的策略中包含所需的操作。

资源

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

如果在 IAM 中使用基于身份的策略提供权限,则仅提供访问同一账户中的资源的权限。如果您需要在另一个账户中发出请求,该账户中的资源必须具有附加的基于资源的策略以允许从您的账户中进行访问。否则,您必须在该账户中担任具有所需权限的角色。要了解跨账户权限的更多信息,请参阅授予跨 AWS 账户权限