

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

# 使用基于身份的策略（IAM 策略） Directory Service
<a name="IAM_Auth_Access_IdentityBased"></a>

 本主题提供基于身份的策略示例，在这些示例中，账户管理员可以向 IAM 身份（用户、组和角色）附加权限策略。这些示例演示了中的 IAM 策略 Directory Service。您应该修改和创建自己的策略来适应自身的需求和环境。

**重要**  
我们建议您先阅读介绍性主题，这些主题解释了管理 Directory Service 资源访问权限的基本概念和选项。有关更多信息，请参阅 [管理 Directory Service 资源访问权限概述](IAM_Auth_Access_Overview.md)。

本主题的各个部分涵盖以下内容：
+ [使用 Directory Service 控制台所需的权限](#UsingWithDS_IAM_RequiredPermissions_Console)
+ [AWS 的托管（预定义）策略 Directory Service](#IAM_Auth_Access_ManagedPolicies)
+ [客户管理型策略示例](#IAMPolicyExamples_DS)
+ [在 IAM 策略中使用标签](#using_tags_with_iam_policies)

下面介绍权限策略示例。

------
#### [ JSON ]

****  

```
{
   "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": "arn:aws:iam::111122223333:role/Your-Role-Name",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "cloudwatch.amazonaws.com"
                }
            }
        }
    ]
}
```

------

 策略中的三条语句授予权限，如下所示：
+  第一条语句授予创建 Directory Service 目录的权限。由于 Directory Service 不支持资源级的操作权限，该策略指定通配符（\$1）作为 `Resource` 值。
+  第二条语句授予 IAM 操作的访问权限，以便 Directory Service 可以代表您读取和创建 IAM 角色。`Resource` 值末尾的通配符 (\$1) 表示该语句允许任何 IAM 角色执行 IAM 操作的权限。要将此权限限制到特定角色，请使用特定角色名称替换资源 ARN 中的通配符 (\$1)。有关更多信息，请参阅 [IAM 操作](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html)。
+  第三条语句授予对 Amazon EC2 中一组特定资源的权限，这些资源是创建、配置和销毁其目录所必需的。 Directory Service 将角色 ARN 替换为您的角色。有关更多信息，请参阅 [Amazon EC2 操作](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html)。

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

有关显示所有 Directory Service API 操作及其适用的资源的表格，请参阅[Directory Service API 权限：操作、资源和条件参考](UsingWithDS_IAM_ResourcePermissions.md)。

## 使用 Directory Service 控制台所需的权限
<a name="UsingWithDS_IAM_RequiredPermissions_Console"></a>

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

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

## AWS 的托管（预定义）策略 Directory Service
<a name="IAM_Auth_Access_ManagedPolicies"></a>

 AWS 通过提供由创建和管理的预定义或托管的 IAM 策略来解决许多常见用例 AWS。托管策略授予常见用例的必要权限，从而帮助您决定所需的权限。有关更多信息，请参阅 [AWS 的托管策略 AWS Directory Service](security-iam-awsmanpol.md)。

## 客户管理型策略示例
<a name="IAMPolicyExamples_DS"></a>

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

**注意**  
所有示例都使用美国西部（俄勒冈）区域 (`us-west-2`)，并包含虚构账户。 IDs

**Topics**
+ [示例 1：允许用户对任何 Directory Service 资源执行任何 “描述” 操作](#IAMPolicyExamples_DS_perform_describe_action)
+ [示例 2：允许用户创建目录](#IAMPolicyExamples_DS_create_directory)

### 示例 1：允许用户对任何 Directory Service 资源执行任何 “描述” 操作
<a name="IAMPolicyExamples_DS_perform_describe_action"></a>

以下权限策略向用户授予在 AWS 托管 Microsoft AD `Describe` 中以目录 ID `d-1234567890` 开头的所有操作的权限 AWS 账户 `111122223333`。这些操作显示有关 Directory Service 资源（如目录或快照）的信息。请务必将 AWS 区域 和账号更改为您要使用的区域和自己的账号。

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
   "Statement":[
      {
"Effect":"Allow",
         "Action":"ds:Describe*",
         "Resource": "arn:aws:ds:us-west-2:111122223333:directory/d-1234567890"
      }
   ]
}
```

------

### 示例 2：允许用户创建目录
<a name="IAMPolicyExamples_DS_create_directory"></a>

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress", 
                "ec2:CreateNetworkInterface",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ds:CreateDirectory",
                "ds:DescribeDirectories"
            ],
            "Resource": "arn:aws:ds:*:111122223333:*"
        }
    ]
}
```

------

## 在 IAM 策略中使用标签
<a name="using_tags_with_iam_policies"></a>

您可以在用于大多数 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 中的条件上下文键和值仅适用于能够标记的资源的标识符是必需参数的那些 Directory Service 操作。

《IAM 用户指南》**中的[使用标签控制访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)具有有关使用标签的其他信息。该指南的 [IAM JSON 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)部分包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。

只要使用以下标签，以下标签策略就允许创建 Directory Service 目录：
+ 环境：生产
+ 所有者：基础设施团队
+ 成本中心：1234 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ds:CreateDirectory"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Environment": "Production",
                    "aws:RequestTag/Owner": "Infrastructure-Team",
                    "aws:RequestTag/CostCenter": "12345"
                }
            }
        }
    ]
}
```

------

只要使用以下标签，以下标签策略就允许更新和删除 Directory Service 目录：
+ 项目：Atlas
+ 所属部门：工程部
+ 环境：生产前调试

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ds:DeleteDirectory",
                "ds:UpdateDirectory"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Project": "Atlas",
                    "aws:ResourceTag/Department": "Engineering",
                    "aws:ResourceTag/Environment": "Staging"
                }
            }
        }
    ]
}
```

------

 Directory Service 如果资源具有以下标签之一，则以下标签策略拒绝对资源进行标记：
+ 生产
+ 安全性
+ 机密

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ds:AddTagsToResource"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": ["Production", "Security", "Confidential"]
                }
            }
        }
    ]
}
```

------

有关更多信息 ARNs，请参阅 [Amazon 资源名称 (ARNs) 和 AWS 服务命名空间](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

以下 Directory Service API 操作列表支持基于标签的资源级权限：
+ [AcceptSharedDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_AcceptSharedDirectory.html)
+ [AddIpRoutes](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_AddIpRoutes.html)
+ [AddTagsToResource](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_AddTagsToResource.html)
+ [CancelSchemaExtension](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CancelSchemaExtension.html)
+ [CreateAlias](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateAlias.html)
+ [CreateComputer](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateComputer.html)
+ [CreateConditionalForwarder](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateConditionalForwarder.html)
+ [CreateSnapshot](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateSnapshot.html)
+ [CreateLogSubscription](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateLogSubscription.html)
+ [CreateTrust](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateTrust.html)
+ [DeleteConditionalForwarder](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteConditionalForwarder.html)
+ [DeleteDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteDirectory.html)
+ [DeleteLogSubscription](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteLogSubscription.html)
+ [DeleteSnapshot](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteSnapshot.html)
+ [DeleteTrust](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteTrust.html)
+ [DeregisterEventTopic](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeregisterEventTopic.html)
+ [DescribeConditionalForwarders](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeConditionalForwarders.html)
+ [DescribeDomainControllers](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeDomainControllers.html)
+ [DescribeEventTopics](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeEventTopics.html)
+ [DescribeSharedDirectories](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeSharedDirectories.html)
+ [DescribeSnapshots](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeSnapshots.html)
+ [DescribeTrusts](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeTrusts.html)
+ [DisableRadius](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DisableRadius.html)
+ [DisableSso](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_DisableSso.html)
+ [EnableRadius](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_EnableRadius.html)
+ [EnableSso](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_EnableSso.html)
+ [GetSnapshotLimits](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_GetSnapshotLimits.html)
+ [ListIpRoutes](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ListIpRoutes.html)
+ [ListSchemaExtensions](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ListSchemaExtensions.html)
+ [ListTagsForResource](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ListTagsForResource.html)
+ [RegisterEventTopic](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_RegisterEventTopic.html)
+ [RejectSharedDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_RejectSharedDirectory.html)
+ [RemoveIpRoutes](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_RemoveIpRoutes.html)
+ [RemoveTagsFromResource](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_RemoveTagsFromResource.html)
+ [ResetUserPassword](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ResetUserPassword.html)
+ [RestoreFromSnapshot](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_RestoreFromSnapshot.html)
+ [ShareDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_ShareDirectory.html)
+ [StartSchemaExtension](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_StartSchemaExtension.html)
+ [UnshareDirectory](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_UnshareDirectory.html)
+ [UpdateConditionalForwarder](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_UpdateConditionalForwarder.html)
+ [UpdateNumberOfDomainControllers](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_UpdateNumberOfDomainControllers.html)
+ [UpdateRadius](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_UpdateRadius.html)
+ [UpdateTrust](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_UpdateTrust.html)
+ [VerifyTrust](https://docs.aws.amazon.com/directoryservice/latest/devguide/API_VerifyTrust.html)