访问管理概述:权限和策略 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Identity and Access Management (IAM) 的访问管理部分帮助定义主体实体可在账户内执行的操作。主体实体是指使用 IAM 实体(用户或角色)进行身份验证的人员或应用程序。访问管理通常称为授权。您在 Amazon 中通过创建策略并将其附加到 IAM 身份(用户、用户组或角色)或 Amazon 资源来管理访问权限。策略是 Amazon 中的对象;在与身份或资源相关联时,策略定义它们的权限。在主体使用 IAM 实体(如用户或角色)发出请求时,Amazon 将评估这些策略。策略中的权限确定是允许还是拒绝请求。大多数策略在 Amazon 中存储为 JSON 文档。有关策略类型和用法的更多信息,请参阅IAM 中的策略和权限。

策略和账户

如果您管理 Amazon 中的单个账户,则使用策略定义该账户中的权限。如果您管理跨多个账户的权限,则管理用户的权限会比较困难。您可以将 IAM 角色、基于资源的策略或访问控制列表 (ACL) 用于跨账户权限。但是,如果您拥有多个账户,那我们建议您改用该 Amazon Organizations 服务来帮助您管理这些权限。有关更多信息,请参阅 Organizations 用户指南 中的什么是 Amazon Organizations

策略和用户

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

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

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

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

策略和组

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


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

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

联合用户和角色

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

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

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

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

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

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

    • 客户管理型策略 – 您在 Amazon Web Services 账户 中创建和管理的管理型策略。与 Amazon 托管策略相比,客户托管策略可以更精确地控制策略。您可以在可视化编辑器中创建、编辑和验证 ,它是一项 IAM policy,也可以直接创建 JSON 策略文档以创建和编辑该策略。有关更多信息,请参阅 创建 IAM policy编辑 IAM policy

  • 内联策略——由您创建和管理的策略,直接嵌入在单个用户、组或角色中。大多数情况下,我们不建议使用内联策略。

基于资源的策略控制指定的主体可以在何种条件下对该资源执行哪些操作。基于资源的策略是内联策略,没有基于资源的托管策略。要启用跨账户访问,您可以将整个账户或其他账户中的 IAM 实体指定为基于资源的策略中的主体。

IAM 服务仅支持一种类型的基于资源的策略(称为角色信任策略),这种策略附加到 IAM 角色。由于 IAM 角色同时是支持基于资源的策略的身份和资源,因此,您必须同时将信任策略和基于身份的策略附加到 IAM 角色。信任策略定义哪些主体实体(账户、用户、角色和联合身份用户)可以代入该角色。要了解 IAM 角色如何与其他基于资源的策略不同,请参阅 IAM 中的跨账户资源访问

要了解哪些服务支持基于资源的策略,请参阅使用 IAM 的Amazon服务。要了解基于资源的策略的更多信息,请参阅 基于身份的策略和基于资源的策略