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

了解 IAM 的工作方式

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


      IntroToIAM_Diagram

条款

了解有关 IAM 术语的更多信息。

资源

存储在 IAM 中的用户、角色、组和策略对象。与其他 AWS 服务一样,您可以在 IAM 中添加、编辑和删除资源。

身份

用于标识和分组的 IAM 资源对象。其中包括用户、组和角色。

实体

AWS 用于进行身份验证的 IAM 资源对象。其中包括用户和角色。角色可以由您的账户或其他账户中的 IAM 用户以及通过 Web 身份或 SAML 联合的用户代入。

委托人

使用实体登录并向 AWS 发出请求的人员或应用程序。

委托人

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

请求

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

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

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

  • 委托人 – 已使用实体(用户或角色)发送请求的人员或应用程序。有关委托人的信息包括与委托人用于登录的实体关联的策略。

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

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

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

身份验证

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

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

授权

您还必须获得授权(允许)才能完成您的请求。在授权期间,AWS 使用请求上下文中的值来检查应用于请求的策略。然后,它使用策略来确定是允许还是拒绝请求。大多数策略作为 JSON 文档存储在 AWS 中,并指定委托人实体的权限。有多种类型的策略可影响是否对请求进行授权。要向用户提供访问他们自己账户中的 AWS 资源的权限,只需基于身份的策略。基于资源的策略常用于授予跨账户访问。其他策略类型是高级功能,应谨慎使用。

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

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

  • 任何权限策略(基于身份或基于资源)中的显式允许将覆盖此默认值。

  • 组织 SCP、IAM 权限边界或会话策略的存在将覆盖允许。如果存在其中一个或多个策略类型,它们必须都允许请求。否则,将隐式拒绝它。

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

要了解有关如何评估所有类型的策略的更多信息,请参阅策略评估逻辑。 如果您需要在另一个账户中发出请求,此其他账户中的策略必须允许访问资源,并且 您用于发出请求的 IAM 实体必须具有基于身份的策略,该策略允许该请求。

操作

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

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

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

资源

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