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

术语
了解有关 IAM 术语的更多信息。
- IAM 资源
-
存储在 IAM 中的用户、组、角色、策略和身份提供商对象。与其他 Amazon 服务一样,您可以在 IAM 中添加、编辑和删除资源。
- IAM 身份
-
用于标识和分组的 IAM 资源对象。您可以将策略附加到 IAM 身份。其中包括用户、组和角色。
- IAM 实体
-
Amazon 用于进行身份验证的 IAM 资源对象。其中包括 IAM 用户和角色。
- 主体
-
使用 Amazon Web Services 账户、IAM 用户或 IAM 角色登录并向 Amazon 发出请求的人员或应用程序。主体包括联合身份用户和代入的角色。
主体
主体 是可请求对 Amazon 资源执行操作的人员或应用程序。主体将作为 Amazon Web Services 账户 或 IAM 实体进行身份验证以向 Amazon 发出请求。作为最佳实践,请勿使用您的根用户凭证完成日常工作。而是创建 IAM 实体(用户和角色)。您还可以支持联合身份用户或编程访问以允许应用程序访问您的 Amazon 账户。
请求
在主体尝试使用 Amazon Web Services Management Console、Amazon API 或 Amazon CLI 时,该主体将向 Amazon 发送请求。请求包含以下信息:
-
操作 – 主体希望执行的操作。这可以是 Amazon Web Services Management Console中的操作或者 Amazon CLI 或 Amazon API 中的操作。
-
资源 – 对其执行操作的 Amazon 资源对象。
-
主体 – 已使用实体(用户或角色)发送请求的人员或应用程序。有关主体的信息包括与主体用于登录的实体关联的策略。
-
环境数据 – 有关 IP 地址、用户代理、SSL 启用状态或当天时间的信息。
-
资源数据 – 与请求的资源相关的数据。这可能包括 DynamoDB 表名称或 Amazon EC2 实例上的标签等信息。
Amazon 将请求信息收集到请求上下文中,后者用于评估和授权请求。
身份验证
主体必须使用其凭证进行身份验证(登录到 Amazon)以向 Amazon 发送请求。某些服务(如 Amazon S3 和 Amazon STS)允许一些来自匿名用户的请求。不过,它们是该规则的例外情况。
要以 根用户 身份从控制台中进行身份验证,必须使用您的电子邮件地址和密码登录。作为 IAM 用户,请提供您的账户 ID 或别名,然后提供您的用户名和密码。要从 API 或 Amazon CLI 中进行身份验证,您必须提供访问密钥和私有密钥。您还可能需要提供额外的安全信息。例如,Amazon 建议您使用多重身份验证 (MFA) 来提高账户的安全性。要了解有关 Amazon 可验证的 IAM 实体的更多信息,请参阅 IAM 用户 和 IAM 角色。
Authorization
您还必须获得授权(允许)才能完成您的请求。在授权期间,Amazon 使用请求上下文中的值来检查应用于请求的策略。然后,它使用策略来确定是允许还是拒绝请求。大多数策略作为 JSON 文档存储在 Amazon 中,并指定主体实体的权限。有多种类型的策略可影响是否对请求进行授权。要向用户提供访问他们自己账户中的 Amazon 资源的权限,只需基于身份的策略。基于资源的策略常用于授予跨账户访问。其他策略类型是高级功能,应谨慎使用。
Amazon 检查应用于请求上下文的每个策略。如果一个权限策略包含拒绝的操作,Amazon 将拒绝整个请求并停止评估。这称为显式拒绝。由于请求是默认被拒绝的,因此,只有在适用的权限策略允许请求的每个部分时,Amazon 才会授权请求。单个账户中对于请求的评估逻辑遵循以下一般规则:
-
默认情况下,所有请求都将被拒绝。(通常,始终允许使用 Amazon Web Services 账户 根用户凭证创建的访问该账户资源的请求。)
-
任何权限策略(基于身份或基于资源)中的显式允许将覆盖此默认值。
-
组织 SCP、IAM 权限边界或会话策略的存在将覆盖允许。如果存在其中一个或多个策略类型,它们必须都允许请求。否则,将隐式拒绝它。
-
任何策略中的显式拒绝将覆盖任何允许。
要了解有关如何评估所有类型的策略的更多信息,请参阅策略评估逻辑。如果您需要在另一个账户中发出请求,此其他账户中的策略必须允许访问资源,并且 您用于发出请求的 IAM 实体必须具有允许该请求的基于身份的策略。
操作
在对您的请求进行身份验证和授权后,Amazon 将批准请求中的操作。操作是由服务定义的,包括可以对资源执行的操作,例如,查看、创建、编辑和删除该资源。例如,IAM 为用户资源支持大约 40 个操作,包括以下操作:
-
CreateUser
-
DeleteUser
-
GetUser
-
UpdateUser
要允许主体执行操作,您必须在应用于主体或受影响的资源的策略中包含所需的操作。要查看各个服务支持的操作、资源类型和条件键的列表,请参阅 Amazon 服务的操作、资源和条件键。
资源
在 Amazon 批准请求中的操作后,可以对您的账户中的相关资源执行这些操作。资源是位于服务中的对象。示例包括 Amazon EC2 实例、IAM 用户和 Amazon S3 存储桶。服务定义了一组可对每个资源执行的操作。如果创建一个请求以对资源执行不相关的操作,则会拒绝该请求。例如,如果您请求删除一个 IAM 角色,但提供一个 IAM 组资源,请求将失败。要查看确定操作影响哪些资源的 Amazon 服务表,请参阅 Amazon 服务的操作、资源和条件键。