使用基于身份的策略(IAM 策略) Amazon Directory Service - Amazon Directory Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用基于身份的策略(IAM 策略) Amazon Directory Service

本主题提供了基于身份的策略的示例,在这些策略中,账户管理员可以向 IAM 身份(即:用户、组和角色)附加权限策略。

重要

我们建议您先阅读介绍性主题,这些主题解释了管理 Amazon Directory Service 资源访问权限的基本概念和选项。有关更多信息,请参阅 管理 Amazon Directory Service 资源访问权限概述

本主题的各个部分涵盖以下内容:

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDsEc2IamGetRole", "Effect": "Allow", "Action": [ "ds:CreateDirectory", "ec2:RevokeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:CreateSecurityGroup", "ec2:RevokeSecurityGroupEgress", "ec2:DeleteSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "iam:GetRole" ], "Resource": "*" }, { "Sid": "WarningAllowsCreatingRolesWithDirSvcPrefix", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::111122223333:role/DirSvc*" }, { "Sid": "AllowPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "cloudwatch.amazonaws.com" } } } ] }

策略包括以下内容:

  • 第一条语句授予创建 Amazon Directory Service 目录的权限。 Amazon Directory Service 不支持在资源级别执行此特定操作的权限。因此,该策略指定通配符 (*) 作为 Resource 值。

  • 第二条语句授予针对特定 IAM 操作的权限。需要访问 IAM 操作才能代表您读取和创建 IAM 角色。 Amazon Directory Service Resource 值末尾的通配符 (*) 表示该语句允许任何 IAM 角色执行 IAM 操作的权限。要将此权限限制到特定角色,请使用特定角色名称替换资源 ARN 中的通配符 (*)。有关更多信息,请参阅 IAM 操作

  • 第三条语句向一组特定 Amazon EC2 资源授 Amazon Directory Service 予创建、配置和销毁其目录所需的权限。Resource 值末尾的通配符 (*) 表示该语句允许对任何 EC2 资源或子资源执行 EC2 操作的权限。要将此权限限制到特定角色,请使用特定资源或子资源替换资源 ARN 中的通配符 (*)。有关更多信息,请参阅 Amazon EC2 操作

该策略不指定 Principal 元素,因为在基于身份的策略中,您未指定获取权限的委托人。附加了策略的用户是隐式委托人。向 IAM 角色附加权限策略后,该角色的信任策略中标识的委托人将获取权限。

有关显示所有 Amazon Directory Service API 操作及其适用的资源的表格,请参阅Amazon Directory Service API 权限:操作、资源和条件参考

使用 Amazon Directory Service 控制台所需的权限

要使用 Amazon Directory Service 控制台,该用户必须拥有上述策略中列出的权限,或者拥有目录服务完全访问角色或目录服务只读角色所授予的权限,如中所述Amazon 的托管(预定义)策略 Amazon Directory Service

如果创建比必需的最低权限更为严格的 IAM policy,对于附加了该 IAM policy 的用户,控制台将无法按预期正常运行。

Amazon 的托管(预定义)策略 Amazon Directory Service

Amazon 通过提供由创建和管理的独立 IAM 策略来解决许多常见用例 Amazon。托管式策略可授予常用案例的必要权限,因此,您可以免去调查都需要哪些权限的工作。有关更多信息,请参阅《IAM 用户指南》中的 Amazon 托管式策略

您可以将以下 Amazon 托管策略附加到账户中的用户,这些策略特定于 Amazon Directory Service:

  • AWSDirectoryServiceReadOnlyAccess— 向用户或群组授予对根账户的所有 Amazon Directory Service 资源、EC2 子网、EC2 网络接口以及亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 主题和订阅的只读访问权限。 Amazon 有关更多信息,请参阅 将 Amazon 托管策略与 Amazon Directory Service 结合使用

  • AWSDirectoryServiceFullAccess – 向用户或组授予以下权限:

    • 完全访问权限 Amazon Directory Service

    • 访问使用所需的关键 Amazon EC2 服务 Amazon Directory Service

    • 能够列出 Amazon SNS 主题

    • 能够创建、管理和删除名称以 “” 开头的 Amazon SNS 主题 DirectoryMonitoring

    有关更多信息,请参阅 将 Amazon 托管策略与 Amazon Directory Service 结合使用

此外,还有其他适用于其他 IAM 角色的 Amazon 托管策略。这些策略将分配给与您 Amazon Directory Service 目录中的用户关联的角色。这些用户需要这些策略才能访问其他 Amazon 资源,例如 Amazon EC2。有关更多信息,请参阅 授予用户和组对 Amazon 资源的访问权限

还可创建自定义 IAM policy 来允许用户访问必需的 API 操作和资源。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。

客户管理的策略示例

在本节中,您可以找到授予各种 Amazon Directory Service 操作权限的用户策略示例。

注意

所有示例都使用美国西部(俄勒冈)区域(us-west-2)并且包含虚构的账户 ID。

示例 1:允许用户对任何 Amazon Directory Service 资源执行任何 “描述” 操作

以下权限策略对用户授予权限以运行以 Describe 开头的所有操作。这些操作显示有关 Amazon Directory Service 资源的信息,例如目录或快照。请注意,Resource元素中的通配符 (*) 表示允许对账户拥有的所有 Amazon Directory Service 资源执行这些操作。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ds:Describe*", "Resource":"*" } ] }

示例 2:允许用户创建目录

以下权限策略授予权限以允许用户创建目录和所有其他相关资源 (如快照和信任)。要执行此操作,还需要针对特定 Amazon EC2 服务的权限。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action": [ "ds:Create*", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress" ], "Resource":"*" ] } ] }

在 IAM 策略中使用标签

您可以在用于大多数 Amazon Directory Service API 操作的 IAM 策略中应用基于标签的资源级权限。这可让您更好地控制用户可创建、修改或使用哪些资源。在 IAM policy 中将 Condition 元素(也称作 Condition 块)与以下条件上下文键和值结合使用来基于资源标签控制用户访问(权限):

  • 使用 aws:ResourceTag/tag-key: tag-value 可允许或拒绝对带特定标签的资源的用户操作。

  • 使用 aws:ResourceTag/tag-key: tag-value 可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)特定标签。

  • 使用 aws:TagKeys: [tag-key, ...] 可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)一组特定标签键。

注意

IAM policy 中的条件上下文键和值仅适用于能够标记的资源的标识符是必需参数的那些 Amazon Directory Service 操作。

《IAM 用户指南》中的使用标签控制访问具有有关使用标签的其他信息。该指南的 IAM JSON 策略参考部分包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。

以下标签策略示例允许所有 ds 调用,前提是它包含标签键/对 "fooKey":"fooValue"。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditor0", "Effect":"Allow", "Action":[ "ds:*" ], "Resource":"*", "Condition":{ "StringEquals":{ "aws:ResourceTag/fooKey":"fooValue" } } }, { "Effect":"Allow", "Action":[ "ec2:*" ], "Resource":"*" } ] }

以下标签策略示例允许所有 ds 调用,前提是资源包含目录 ID“d-1234567890”。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"VisualEditor0", "Effect":"Allow", "Action":[ "ds:*" ], "Resource":"arn:aws:ds:us-east-1:123456789012:directory/d-1234567890" }, { "Effect":"Allow", "Action":[ "ec2:*" ], "Resource":"*" } ] }

有关 ARN 的更多信息,请参阅 Amazon 资源名称 (ARN) 和 Amazon 服务命名空间。

以下 Amazon Directory Service API 操作列表支持基于标签的资源级权限: