

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チュートリアル: AWS Managed Microsoft AD スキーマの拡張
<a name="ms_ad_tutorial_extend_schema"></a>

このチュートリアルでは、特定の要件を満たす一意の*属性*と*クラス*を追加することで、 AWS Managed Microsoft AD とも呼ばれる AWS Directory Service for Microsoft Active Directory ディレクトリのスキーマを拡張する方法について説明します。 AWS マネージド Microsoft AD スキーマ拡張は、有効な LDIF (Lightweight Directory Interchange Format) スクリプトファイルを使用してのみアップロードおよび適用できます。

属性 (attributeSchema) はデータベース内のフィールドを定義し、クラス (classSchema) はデータベース内のテーブルを定義します。例えば、Active Directory 内のすべてのユーザーオブジェクトは *User* というスキーマクラスによって定義され、ユーザーの個々のプロパティ (E メールアドレスや電話番号など) は属性ごとに定義されます。

Shoe-Size などの新しいプロパティを追加する場合は、*整数*型の新しい属性を定義します。また、1～20 のように下限と上限を定義することもできます。Shoe-Size attributeSchema オブジェクトが作成されたら、*User* classSchema オブジェクトをその属性を含むように変更します。属性は複数のクラスにリンクすることが可能です。例えば、Shoe-Size を *Contact* クラスに追加することもできます。Active Directory スキーマの詳細については、「[AWS Managed Microsoft AD スキーマを拡張するタイミング](ms_ad_schema_extensions.md#ms_ad_schema_when_to_extend)」 を参照してください。

このワークフローには 3 つの基本的な手順が含まれます。

![\[チュートリアルの手順を示す図: 1 LDIF ファイルを作成する、2 LDIF ファイルをインポートする、3 スキーマの変更を検証する。\]](http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/images/tutorialextendadschema.png)


**[ステップ 1: LDIF ファイルを作成する](create.md)**  
最初に、LDIF ファイルを作成し、新しい属性と、その属性を追加するクラスを定義します。このファイルは、ワークフローの次の段階で使用します。

**[ステップ 2: LDIF ファイルをインポートする](import.md)**  
このステップでは、 AWS Directory Service コンソールを使用して LDIF ファイルを Microsoft Active Directory 環境にインポートします。

**[ステップ 3: スキーマ拡張が成功したかどうかを確認する](verify.md)**  
最後に、管理者は EC2 インスタンスを使用して、新しい拡張が Active Directory のスキーマスナップインに表示されることを確認します。

# ステップ 1: LDIF ファイルを作成する
<a name="create"></a>

LDIFファイルは、[LDAP](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) (Lightweight Directory Access Protocol) ディレクトリの内容と更新リクエストを示す、標準のプレーンテキストデータ交換形式です。LDIF は、ディレクトリの内容を、各オブジェクトまたは各エントリごとに 1 つのレコードが対応する、レコードのセットとして伝達します。また、追加、変更、削除、名前変更などの更新リクエストを、更新リクエストごとに 1 つのレコードが対応する、レコードのセットとして表します。

は、 AWS Managed Microsoft AD ディレクトリで`ldifde.exe`アプリケーションを実行して、スキーマの変更を含む LDIF ファイル AWS Directory Service をインポートします。そのため、LDIF スクリプトの構文を理解しておくことは有用です。詳細については、「[LDIF Scripts](https://msdn.microsoft.com/en-us/library/ms677268(v=vs.85).aspx)」(LDIF スクリプト) を参照してください。

一部のサードパーティ製 LDIF ツールは、スキーマの更新を抽出、クリーンアップ、および更新するために使用できます。いずれのツールを使用する場合でも、LDIF ファイルで使用されるすべての識別子は一意でなければならないことに注意してください。

LDIF ファイルを作成する前に、下記に示す概念とヒントを確認しておくことを強くお勧めします。
+ **スキーマの要素** – 属性、クラス、オブジェクト ID、リンクされた属性などのスキーマ要素について説明します。詳細については、「[スキーマの要素](ms_ad_key_concepts.md#ms_ad_schema_elements)」を参照してください。
+ **アイテムのシーケンス** – LDIF ファイル内で項目が配置される順序が、降順で「[ディレクトリ情報ツリー (DIT)](https://en.wikipedia.org/wiki/Directory_information_tree)」に従っていることを確認します。LDIF ファイルのシーケンシングの一般的なルールは以下のとおりです。

   
  + 空白行で項目を区切ります。
  + 子項目は、親項目の後にリストします。
  + 属性やオブジェクトクラスなどの項目は、スキーマ内に置かれる必要があります。これらが存在しない場合は、使用する前にスキーマに追加する必要があります。例えば、属性をクラスに割り当てる前に、その属性を必ず作成します。
+ **DN の形式** – LDIF ファイルの新しい命令ごとに、その最初の行に識別名 (DN) を定義します。DN は、Active Directory オブジェクトのツリー内で Active Directory オブジェクト を識別します。また、ディレクトリのためのドメインコンポーネントが含まれている必要があります。例えば、このチュートリアルのディレクトリのドメインコンポーネントは `DC=example,DC=com` です。

  DN には、Active Directory オブジェクトの共通名 (CN) も含める必要があります。最初の CN エントリは、属性またはクラスの名前を表します。Active Directory スキーマを拡張するには、`CN=Schema,CN=Configuration` を使用します。Active Directory オブジェクトのコンテンツは変更できないことに留意してください。一般的な DN は以下のとおりです。

  ```
  dn: CN=[attribute or class name],CN=Schema,CN=Configuration,DC=[domain_name]
  ```

  このチュートリアルでは、新しい Shoe-Size 属性の DN は以下のようになります。

  ```
  dn: CN=Shoe-Size,CN=Schema,CN=Configuration,DC=example,DC=com
  ```
+ **Warnings** (警告) – スキーマを拡張する前に、以下の警告を確認します。
  + Active Directory スキーマを拡張する前に、この操作の影響に関する Microsoft の警告を確認することは重要です。詳細については、「[What You Must Know Before Extending the Schema](https://msdn.microsoft.com/en-us/library/ms677995(v=vs.85).aspx)」(スキーマを拡張する前に知っておくべきこと) を参照してください。
  + スキーマの属性またはクラスを削除することはできません。したがって、誤操作をしたものの、バックアップからの復元を実行したくない場合は、オブジェクトを無効にするだけで済みます。詳細については、「[Disabling Existing Classes and Attributes](https://msdn.microsoft.com/en-us/library/ms675903(v=vs.85).aspx)」(既存のクラスと属性の無効化) を参照してください。
  + デフォルトのセキュリティ記述子への変更はサポートされていません。

Managed Microsoft AD スキーマ拡張のテストに使用できる LDIF ファイルの構築方法とサンプル LDIF ファイルの詳細については、 AWS セキュリティブログの AWS 「How [to Extend your AWS Managed Microsoft AD Directory Schema](https://aws.amazon.com/blogs/security/how-to-add-more-application-support-to-your-microsoft-ad-directory-by-extending-the-schema/)」を参照してください。

**次のステップ**

[ステップ 2: LDIF ファイルをインポートする](import.md)

# ステップ 2: LDIF ファイルをインポートする
<a name="import"></a>

 AWS Directory Service コンソールから LDIF ファイルをインポートするか、 API を使用してスキーマを拡張できます。スキーマ拡張 API でこれを行う方法の詳細については、[https://docs.aws.amazon.com/directoryservice/latest/devguide/](https://docs.aws.amazon.com/directoryservice/latest/devguide/) を参照してください。現時点において AWS では、Microsoft Exchange などの外部アプリケーション使用した、スキーマの直接的な更新をサポートしていません。

**重要**  
 AWS Managed Microsoft AD ディレクトリスキーマを更新しても、オペレーションは元に戻せません。つまり、Active Directory で新しいクラスまたは属性を作成した場合は、それらを削除することができません。ただし、無効にすることは可能です。  
スキーマの変更を削除する必要がある場合は、以前のスナップショットからディレクトリを復元するという方法もあります。スナップショットを復元すると、スキーマとディレクトリデータの両方が、過去のある時点にロールバックされてます。スナップショットの最長保持期間は 180 日です。詳細については、Microsoft ウェブサイトの「[Active Directory のシステム状態バックアップの有効な保存期間](https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/shelf-life-system-state-backup-ad)」を参照してください。

更新プロセスを開始する前に、 AWS マネージド Microsoft AD はスナップショットを作成し、ディレクトリの現在の状態を保持します。

**注記**  
スキーマ拡張機能は Managed Microsoft AD AWS のグローバル機能です。[AWS Managed Microsoft AD のマルチリージョンレプリケーションを設定する](ms_ad_configure_multi_region_replication.md) を使用している場合、[プライマリリージョン](multi-region-global-primary-additional.md#multi-region-primary) で次の手順を実行する必要があります。変更した内容は、レプリケートされたすべてのリージョンで自動的に適用されます。詳細については、「[グローバル機能とリージョン機能](multi-region-global-region-features.md)」を参照してください。

**LDIF ファイルをインポートするには**

1. [AWS Directory Service コンソール](https://console.aws.amazon.com/directoryservicev2/)のナビゲーションペインで、**[Directories]** (ディレクトリ) をクリックします。

1. **[Directories]** (ディレクトリ) ページで、ディレクトリ ID を選択します。

1. **[Directory details]** (ディレクトリ詳細) ページで、以下のいずれかの操作を行います。
   + **[Multi-Region replication]** (マルチリージョンレプリケーション) の下に複数のリージョンが表示されている場合は、プライマリリージョンを選択した上で、**[Maintenance]** (メンテナンス) タブを開きます。詳細については、「[プライマリリージョンと追加のリージョン](multi-region-global-primary-additional.md)」を参照してください。
   + **[Multi-Region replication]** (マルチリージョンレプリケーション) の下にリージョンが表示されない場合は、**[Maintenance]** (メンテナンス) タブを選択します。

1. **[Schema extensions]** (スキーマ拡張) セクションで、**[Actions]** (アクション) 、**[Upload and update schema]** (スキーマのアップロードと更新) の順に選択します。

1. ダイアログボックスで、**[Browse]** (参照) をクリックし、有効な LDIF ファイルを選択し説明を入力します。次に、**[Update Schema]** (スキーマの更新) をクリックします。
**重要**  
スキーマの拡張は危険性のある操作です。開発環境またはテスト環境のアプリケーションで初期テストを行っていないスキーマ更新を、そのまま本番環境に適用しないでください。

## LDIF ファイルの適用方法
<a name="howapplied"></a>

LDIF ファイルがアップロードされると、 AWS Managed Microsoft AD は次の順序で変更を適用するため、ディレクトリをエラーから保護する手順を実行します。

1. **LDIF ファイルを検証します。**LDIF スクリプトはドメイン内の任意のオブジェクトを操作できるため、 AWS Managed Microsoft AD はアップロード直後にチェックを実行して、インポートオペレーションが失敗しないようにします。これには、以下を確認するためのチェックが含まれます。
   + 更新されるオブジェクトは、スキーマコンテナにのみ保持されていること
   + DC (ドメインコントローラー) の部分は、LDIF スクリプトが実行されているドメインの名前と一致していること

1. **ディレクトリのスナップショットを取得します。**スキーマの更新後にアプリケーションに問題が発生した場合、スナップショットを使用してディレクトリを復元することができます。

1. **変更を単一の DC に適用します。** AWS マネージド Microsoft AD は DCs の 1 つを分離し、LDIF ファイル内の更新を分離された DC に適用します。次に、1 つの DC をプライマリースキーマとして選択し、その DC をディレクトリレプリケーションから削除した上で、`Ldifde.exe` を使用して LDIF ファイルを適用します。

1. レ**プリケーションはすべての DCs に発生します。** AWS マネージド Microsoft AD は、分離された DC をレプリケーションに追加して更新を完了します。この間も、ディレクトリは、Active Directory のサービスを中断することなくアプリケーションに提供し続けます。

**次のステップ**

[ステップ 3: スキーマ拡張が成功したかどうかを確認する](verify.md)

# ステップ 3: スキーマ拡張が成功したかどうかを確認する
<a name="verify"></a>

インポート処理が完了したら、スキーマの更新がディレクトリに適用されたことを確認してください。このことは、スキーマの更新に依存するアプリケーションを移行または更新する際に特に重要となります。さまざまな LDAP ツールを使用するか、または適切な LDAP コマンドを発行するテストツールを作成して、これを実行できます。

この手順では、Active Directory スキーマのスナップインおよび (または) PowerShell を使用して、スキーマ更新が適用されたことを確認します。これらのツールは、 AWS Managed Microsoft AD にドメイン結合されているコンピュータから実行する必要があります。このコンピュータとは、仮想プライベートクラウド (VPC) または仮想プライベートネットワーク (VPN) 接続を介したアクセスが可能な、オンプレミスネットワーク上で実行されている Windows サーバーです。また、これらのツールは、Amazon EC2 Windows のインスタンスでも実行できます ([How to launch a new EC2 instance with seamless domain join](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-join-aws-domain.html#join-domain-console) (シームレスなドメイン結合を使用する新しい EC2 インスタンスの起動方法) を参照)。

**Active Directory スキーマスナップインを使用して検証を行うには**

1. [TechNet](https://technet.microsoft.com/en-us/library/cc732110.aspx) ウェブサイトの手順に従って、Active Directory スキーマのスナップインをインストールします。

1. Microsoft 管理コンソール (MMC) を開き、ディレクトリの **AD スキーマ**ツリーを展開します。

1. 前に行ったスキーマの変更が見つかるまで、**[Classes]** フォルダと **[Attributes]** フォルダを調べます。

**PowerShell 使用して検証を行うには**

1. PowerShell ウィンドウを開きます。

1. 次に示すように、`Get-ADObject` コマンドレットを使用して、スキーマの変更を確認します。例: 

   `get-adobject -Identity 'CN=Shoe-Size,CN=Schema,CN=Configuration,DC=example,DC=com' -Properties *`

**オプションのステップ**

[新しい属性に値を追加する – (選択可能)](addvalue.md)

# 新しい属性に値を追加する – (選択可能)
<a name="addvalue"></a>

新しい属性を作成し、 AWS Managed Microsoft AD ディレクトリの属性に新しい値を追加する場合は、このオプションのステップを使用します。

**属性に値を追加するには**

1. PowerShell コマンドラインユーティリティを開き、次のコマンドを使用して新しい属性を設定します。この例では、特定のコンピュータの属性に新しい EC2InstanceID 値を追加します。

   `PS C:\> set-adcomputer -Identity computer name -add @{example-EC2InstanceID = 'EC2 instance ID'}`

1. 次のコマンドを実行すると、EC2InstanceID 値がコンピュータオブジェクトに追加されたかどうかを検証できます。

   `PS C:\> get-adcomputer -Identity computer name –Property example-EC2InstanceID`

# 関連リソース
<a name="additional"></a>

以下のリソースリンクから、関連情報を提供している Microsoft のウェブサイト内に移動できます。

 
+ [スキーマの拡張 (Windows)](https://msdn.microsoft.com/en-us/library/ms676900(v=vs.85).aspx)
+ [Active Directory スキーマ (Windows)](https://msdn.microsoft.com/en-us/library/ms674984(v=vs.85).aspx)
+ [Active Directory スキーマ](https://technet.microsoft.com/en-us/library/cc961581.aspx)
+ [Windows 管理: Active Directory スキーマの拡張](https://technet.microsoft.com/en-us/magazine/a39543ba-e561-4933-b590-0878885f44f5)
+ [スキーマ拡張での制約事項 (Windows)](https://msdn.microsoft.com/en-us/library/ms677924(v=vs.85).aspx)
+ [Ldifde](https://technet.microsoft.com/en-us/library/cc731033(v=ws.11).aspx)