

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

# Directory
<a name="key_concepts_directory"></a>

目录是基于架构的数据存储，包含在多层次结构中进行组织的特定类型的对象 (有关更多详细信息，请参阅[目录结构](key_concepts_directorystructure.md))。例如，用户目录可以提供基于报告结构、位置和项目附属关系的分层视图。同样，设备目录可以具有基于其制造商、当前拥有者和物理位置的多个分层视图。

目录为数据存储定义逻辑边界，从而将它与服务中的所有其他目录完全隔离。它还为单个请求定义边界。单个事务或查询在单个目录的上下文中执行。若不使用架构，则无法创建目录，通常目录会应用一个架构。但是，可以使用 Cloud Directory API 操作将其他架构应用于目录。有关更多信息，请参阅 。[https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_ApplySchema.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_ApplySchema.html)中的*Amazon Cloud Directory API 参考指南*。

## Objects
<a name="key_concepts_objects"></a>

对象是目录中的结构化数据实体。目录中的对象旨在捕获有关物理或逻辑实体的元数据 (或属性)，通常用于信息发现和强制实施策略。例如，用户、设备、应用程序、AWS 账户、EC2 实例和 Amazon S3 存储桶全都可以表示为目录中不同类型的对象。

对象的结构和类型信息表示为分面的集合。可以使用 `Path` 或 `ObjectIdentifier` 访问对象。对象还可以具有属性 (用户定义的元数据单元)。例如，用户对象可以具有一个名为 *email-address* 的属性。属性始终与对象相关联。

## Policies
<a name="key_concepts_policies"></a>

策略是专用类型的对象，可用于存储权限或功能。策略提供了 [https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_LookupPolicy.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_LookupPolicy.html) API 操作。查找策略操作采用对任何对象的引用作为其起始输入。随后它从目录一直查找到根。该操作收集它在指向根的每个路径上遇到的所有策略对象。Cloud Directory 不以任何方式解释其中任何策略。而是由 Cloud Directory 用户使用自己的专用业务逻辑来解释策略。

例如，假设一个系统存储员工信息。员工按工作职能分组在一起。我们需要为人力资源组和会计组的成员建立不同权限。人力资源组的成员有权访问工资单信息，而会计组有权访问分类账信息。为了建立这些权限，我们向每个组附加策略对象。需要评估某个用户的权限时，我们可以对该用户的对象使用 `LookupPolicy` API 操作。这些区域有：`LookupPolicy`API 操作沿树从指定策略的对象查找到根。它在每个节点处停止，检查任何附加的策略并返回这些策略。

**策略附加**

策略可以通过两种方式附加到其他对象：正常的父子附加和特殊的策略附加。使用正常父子附加可以将策略附加到父节点。这通常用于提供一种在数据目录中查找策略的便利机制。策略不能有子级。在 `LookupPolicy` 调用过程中不会返回通过父子附加进行附加的策略。

策略对象还可以通过策略附加来附加到其他对象。可以使用 [https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_AttachPolicy.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_AttachPolicy.html) 和 [https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_DetachPolicy.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_DetachPolicy.html) API 操作管理这些策略附加。通过策略附加可以在使用 LookupPolicy API 时找到策略节点。

**策略架构规范**

要开始使用策略，必须先向架构添加支持创建策略的分面。要实现此目的，请创建将分面的 `objectType` 设置为 POLICY 的分面。使用具有类型 POLICY 的分面创建对象可确保对象具有策略功能。

在您添加到定义的任意属性之外，Policy 分面还继承两个属性：
+ **policy\_type** (字符串，必需) - 这是您提供用于区分不同策略用途的标识符。如果您的策略在逻辑上归入清除类别，我们建议相应设置策略类型属性。`LookupPolicy` API 返回已附加策略的策略类型 (请参阅 [https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_PolicyAttachment.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_PolicyAttachment.html))。这样可以方便地筛选所查找的特定策略类型. 它还允许您使用 policy\_type 来确定应该如何处理或解释文档。
+ **policy\_document** (二进制，必需) – 您可以将应用程序特定数据存储在此属性中，例如与策略关联的权限授予。如果您偏好，还可以在分面上的正常属性中存储应用程序相关数据。

**策略 API 概述**

有各种专用 API 操作可用于操作策略。有关可用操作的列表，请参阅 [Amazon Cloud Directory 操作](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_Operations.html)。

要创建策略对象，请结合使用 [https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_CreateObject.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_CreateObject.html) API 操作及相应的分面：
+ 要向对象附加或分离策略，请分别使用操作 `AttachPolicy` 和 `DetachPolicy`。
+ 要沿树查找附加到对象的策略，请使用 `LookupPolicy` API 操作。
+ 要列出附加到特定对象的策略，请使用 [https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_ListObjectPolicies.html](https://docs.aws.amazon.com/clouddirectory/latest/APIReference/API_ListObjectPolicies.html) API 操作。

有关操作以及执行每项 API 操作所需权限的列表，请参阅 [Amazon Cloud Directory API 权限：API 权限：操作、资源和条件参考](iam_auth_access_usingwith_iam_resourcepermissions.md)。