Amazon Cloud Directory is a highly available multi-tenant directory-based store in AWS.
These directories scale automatically to hundreds of millions of objects as needed for applications.
With Cloud Directory, you can organize directory objects into multiple hierarchies to support many organizational pivots and relationships across directory information. For example, a directory of devices may have multiple hierarchical views based on its manufacturer, current owner, and physical location.
At its core, Cloud Directory is a specialized graph-based directory store that provides a foundational building block for developers.
With Cloud Directory, developers can do the following:
Create directory-based applications easily and without having to worry about deployment, global scale, availability, and performance
Build applications that provide user and group management, permissions or policy management, device registry, customer management, address books, and application or product catalogs
Scheme
A schema is a collection of facets that define what objects can be created in a directory and how they are organized.
schemas define what types of objects can be created within a directory
A schema also enforces data integrity and interoperability.
A single schema can be applied to more than one directory at a time.
Cloud Directory offers a schema lifecycle to help with the development of schemas. This lifecycle consists of three states: Development, Published, and Applied.
Only the following changes are permitted on an applied schema.
Add a facet to an applied schema
Add a non-required attribute to an applied schema
Facets are the most basic abstraction within a schema. They represent a set of attributes that can be associated with an object in the directory and are similar in concept to LDAP object classes
The combination of schema ARNs, facets, and attributes define uniqueness on the object.
Directory
A directory is a schema-based data store that contains specific types of objects organized in a multi-hierarchical structure
A directory defines the logical boundary for the data store, completely isolating it from all other directories in the service.
A directory cannot be created without a schema and typically has one schema applied to it.
Objects are a structured data entity in a directory.
An object in a directory is intended to capture metadata (or attributes) about a physical or logical entity usually for the purpose of information discovery and enforcing policies.
An object’s structure and type information is expressed as a collection of facets.
Policies are a specialized type of object that are useful for storing permissions or capabilities.
Directory Structure
Data in a directory is structured hierarchically in a tree pattern consisting of nodes, leaf nodes, and links between the nodes
Root Node is the top node in a directory that is used to organize the parent and child nodes in the hierarchy.
A node represents an object that can have child objects, A node object can only have one parent.
A leaf node represents an object with no children that may or may not be directly connected to a parent node.
A leaf node object can have multiple parents.
While leaf node objects are not required to be connected to a parent node, it is strongly recommended that you do so, since without a path from the root, the object can only be accessed by it’s NodeId.
Node Link is the connection between one node and another. Cloud Directory supports a variety of link types between nodes, including parent-child links, policy links, and index attribute links.
Indexing and Search
Amazon Cloud Directory supports two methods of indexing: Value based and type based.
Value-based indexing is the most common form. With it you can index and search for objects in the directory based on the values of object attributes.
With type-based indexing, you can index and search for objects in the directory based on object types.
Amazon Cloud Directory is a highly available multi-tenant directory-based store in AWS. These directories scale automatically to hundreds of millions of objects as needed for applications.