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

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

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

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

重要

我们建议您先阅读介绍性主题,这些主题解释了管理 AWS Directory Service 资源访问权限的基本概念和选项。有关更多信息,请参阅 管理 AWS 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" } } } ] }

策略中的三个语句按如下方式授予权限:

  • 第一条语句授予创建 AWS Directory Service 目录的权限。由于 AWS Directory Service 不支持资源级别的权限,因此该策略将通配符 (*) 指定为Resource值。

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

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

您不会在策略中看到任何Principal元素,因为在基于身份的策略中,您没有指定获得权限的委托人。附加了策略的用户是隐式委托人。当您将权限策略附加到角色时,该IAM角色的信任策略中标识的委托人将获得权限

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

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

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

如果您创建的IAM策略比所需的最低权限更严格,则控制台将无法按预期运行,供拥有该IAM策略的用户使用。

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

AWS 通过提供由创建和管理的预定义或托管IAM策略来解决许多常见用例 AWS。托管策略为常见用例授予必要的权限,这有助于您决定所需的权限。有关更多信息,请参阅 AWS 的托管策略 AWS Directory Service

客户管理型策略示例

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

注意

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

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

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

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

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

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

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

注意

IAM策略中的条件上下文键和值仅适用于那些将能够标记的资源的标识符作为必填参数的 AWS Directory Service 操作。

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

以下标签策略示例允许所有 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":"*" } ] }

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

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