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

访问管理概述:权限和策略

AWS Identity and Access Management (IAM) 的访问管理部分帮助定义用户或其他实体可在账户内执行的操作。此过程通常称为授权。权限分类为权限策略和权限边界。大多数权限策略是 AWS 中的 JSON 策略文档;在附加到身份或资源时,权限策略定义它们的权限。权限边界是一项高级功能,让您可以使用策略来限制委托人可以具有的最大权限。这些边界可应用于 AWS Organizations 组织或者 IAM 用户或角色。有关策略类型和用法的更多信息,请参阅策略和权限

在委托人 (如用户) 发出请求时,AWS 将评估这些策略。策略中的权限确定是允许还是拒绝请求。大多数策略在 AWS 中存储为 JSON 文档。

策略和账户

如果您管理 AWS 中的单个账户,则使用策略定义该账户中的权限。如果您管理跨多个账户的权限,则管理用户的权限会比较困难。作为最佳实践,可以使用 AWS Organizations 服务来帮助您管理这些权限。有关更多信息,请参阅 组织 用户指南 中的什么是 AWS Organizations?

策略和用户

IAM 用户是服务中的身份。当您创建 IAM 用户时,他们无法访问您账户中的任何内容,直到您向他们授予权限。向用户授予权限的方法是创建基于身份的策略,这是附加到用户的策略。下面的示例演示一个 JSON 策略,该策略允许用户对 us-west-2 区域内的 123456789012 账户中的 Books 表执行所有 Amazon DynamoDB 操作 (dynamodb:*)。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws-cn:dynamodb:us-west-2:123456789012:table/Books" } }

在将此策略附加到您的 IAM 用户后,该用户将具有这些 DynamoDB 权限。大多数用户有多个策略共同代表该用户的权限。

默认情况下会拒绝未显式允许的操作或资源。例如,如果上述策略是附加到用户的唯一策略,则该用户只能对 Books 表执行 DynamoDB 操作。禁止对其他任何表执行操作。同样,不允许用户在 Amazon EC2、Amazon S3 或任何其他 AWS 服务中执行任何操作。原因是策略中未包含使用这些服务的权限。

IAM 控制台中提供了策略摘要 表,这些表总结了策略中对每个服务允许或拒绝的访问级别、资源和条件。策略在三个表中概括:策略摘要服务摘要操作摘要策略摘要表包含服务列表。选择其中的服务可查看服务摘要。该摘要表包含所选服务的操作和关联权限的列表。您可以选择该表中的操作以查看操作摘要。该表包含所选操作的资源和条件列表。


        阐释这 3 个表以及它们之间关系的策略摘要图

您可以在 Users 页面上查看附加到该用户的所有策略 (托管和内联) 的策略摘要。可在 Policies 页面上查看所有托管策略的摘要。

例如,在 AWS 管理控制台中汇总的上一个策略如下所示:


        DynamoDB 示例摘要

您还可以查看策略的 JSON 文档。有关查看摘要或 JSON 文档的信息,请参阅了解策略授予的权限

策略和组

可以将 IAM 用户组织为 IAM 组,然后将策略附加到组。这种情况下,各用户仍有自己的凭证,但是组中的所有用户都具有附加到组的权限。使用组可更轻松地管理权限,并遵循我们的 IAM 最佳实践


        用户可以组织为组,以便更轻松地管理权限,因为用户具有分配到组的权限。

用户或组可以附加授予不同权限的多个策略。这种情况下,用户的权限基于策略组合进行计算。不过基本原则仍然适用:如果未向用户授予针对操作和资源的显式权限,则用户没有这些权限。

联合身份用户和角色

联合身份用户无法通过与 IAM 用户相同的方式在您的 AWS 账户中获得永久身份。要向联合身份用户分配权限,可以创建称为角色 的实体,并为角色定义权限。当联合用户登录 AWS 时,该用户会与角色关联,被授予角色中定义的权限。有关更多信息,请参阅 针对第三方身份提供商创建角色 (联合)

基于身份和基于资源的策略

基于身份的策略是附加到委托人或身份(如 IAM 用户、组或角色)的权限策略。基于资源的策略是附加到资源(如 Amazon S3 存储桶)的权限策略。

基于身份的策略控制身份可以在何种条件下对哪些资源执行哪些操作。基于身份的策略可以进一步分类:

  • 托管策略 – 基于身份的独立策略,可附加到您的 AWS 账户中的多个用户、组和角色。您可以使用两个类型的托管策略:

    • AWS 托管策略 – 由 AWS 创建和管理的托管策略。如果您刚开始使用策略,建议先使用 AWS 托管策略。

    • 客户托管策略 – 您在 AWS 账户中创建和管理的托管策略。与 AWS 托管策略相比,客户托管策略可以更精确地控制策略。您可以在可视化编辑器中创建和编辑 IAM 策略,也可以直接创建 JSON 策略文档以创建和编辑该策略。有关更多信息,请参阅 创建 IAM 策略编辑 IAM 策略

  • 内联策略 – 由您创建和管理的策略,直接嵌入在单个用户、组或角色中。

基于资源的策略控制指定的委托人可以在何种条件下对该资源执行哪些操作。基于资源的策略是内联策略,没有基于资源的托管策略。

虽然 IAM 身份从技术层面上看是 AWS 资源,但无法将基于资源的策略附加到 IAM 身份。您必须在 IAM 中使用基于身份的策略。要了解哪些服务支持基于资源的策略,请参阅使用 IAM 的 AWS 服务。要了解基于资源的策略的更多信息,请参阅基于身份的策略和基于资源的策略

信任策略 是附加到角色的基于资源的策略。它们定义哪些委托人可代入角色。在 IAM 中创建角色时,该角色必须具有信任策略和权限策略。信任策略指示谁可以代入角色。权限策略指示他们可使用该角色执行哪些操作。请记住,在该账户的管理员向可信任的实体授予代入角色的权限之前,任何可信任的实体都无法代入角色。有关更多信息,请参阅 向用户授予切换角色的权限