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

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

AWS Identity and Access Management (IAM) 的访问管理部分帮助定义用户或其他实体可在账户内执行的操作,通常称为授权。通过创建然后附加到用户、组或角色的策略来授予权限。

策略和用户

默认情况下,IAM 用户无法访问您账户中的任何内容。通过创建策略 可向用户授予权限,策略是定义效果、操作、资源和可选条件的文档。下面示例中的策略授予在 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 时,该用户会与角色关联,被授予角色中定义的权限。有关更多信息,请参阅 针对第三方身份提供商创建角色 (联合)

基于用户和基于资源的策略

上面的示例介绍一个可以附加到用户或组的策略。创建类似于该策略的用户策略时,您指定允许的操作以及允许用户访问的资源 (EC2 实例、RDS数据库等)。

在某些情况下,除了可以将策略附加到用户或组,还可以将它附加到资源。例如,在 Amazon S3 中可以将策略附加到存储桶。基于资源的策略 包含的信息与基于用户的策略稍有不同。在基于资源的策略中,您指定允许执行的操作以及受影响的资源 (正如基于用户的策略一样)。但是,您还显式列出允许访问资源的人员。(在基于用户的策略中,策略附加到的人员已解决了“谁”这一问题。)

以下示例演示一个 S3 存储桶策略,该策略允许 AWS 账户 777788889999 中名为 bob 的 IAM 用户将对象置于名为 example-bucket 的存储桶中。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": "arn:aws-cn:iam::777788889999:user/bob"}, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws-cn:s3:::example-bucket/*" } }

基于资源的策略包括 Principal 元素,它指定授予了权限的用户。在前面的示例中,Principal 元素被设置为 AWS 账户 777788889999 中名为 bob 的 IAM 用户的 Amazon 资源名称 (ARN)。这表示该资源 (在此示例中为 S3 存储桶) 可供 IAM 用户访问,但不能供任何其他人访问。