AWS Directory Service の構築と仕様

# AWS Directory Service について
今回はAWSがフルマネージドで提供するActiveDirectory(以下AD）について、まとめます。
ユーザの操作制御、データへのアクセス制御などの他にAWSサービスでもAD連携必須というものもあるので、AWSでシステム構築する上で避けては通れないジャンルだと思われます。
私自身AD構築を進める際に色々と調べましたが「初心者向けの情報って全然ないじゃん！」（~~設定方法をPowershellのコマンドレットで書くんじゃない！~~）ってどこに向けたらいいか分からない怒りを覚えた記憶があります(笑)。

# AWS Directory Service とは
 [AWS公式ページ](https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/what_is.html)
公式には以下のように説明されております。
>AWS Directory Service は、既存の Microsoft AD やライトウェイトディレクトリアクセスプロトコル (LDAP) –対応のアプリケーションをクラウド上で使用するユーザー向けに複数のディレクトリオプションを提供します。また、開発者がディレクトリを通じてユーザー、グループ、デバイス、およびアクセスを管理する場合にも、同じオプションを提供します。

AWS フルマネージドでADを作るとなると「Simple AD」もしくは「AWS Managed Micorosoft AD」(以下MS AD）のどちらかになります。
　※EC2にAD機能を持たせるという構成でもAD環境構築は出来ます

AWS Directory Serviceの他メニューには「AD Connect」や「AWS Cognito」がありますが若干毛色のちがうサービスになるので、この記事では触れません。以降は主にSimple ADとMS ADについての説明となります。


#構成イメージ
![AD構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/bb8afd79-665c-2b80-8e9a-132c33e6b789.png)

Directory ServiceをデプロイするVPCを選択し、さらに２つ以上のAZを選択する形となる。


# AWS Directory Serviceの特長および利用メリット
- デフォルトで**冗長化設定**がされている。
- サーバOSのファームウェアverUpやセキュリティパッチ適用などのメンテナンスをユーザ側で行う必要がない。
- オンプレADと**ほぼ**同じくグループポリシーでユーザ制御やクライアントPCへセキュリティ設定の一斉配布/適用が可能になる。

# 利用上の留意点
- ADにドメインユーザを作成、グループポリシーの設定、オブジェクトの登録状況確認等をするためには別途Windowsインスタンス（もしくはAD DS機能を持ったサーバ）が必要。

&ensp;&ensp;&ensp;※AWS Directory Service はマネージドサービスのため、ユーザが直接サーバコンソール画面にはアクセスできません。そのため、EC2などユーザがサーバコンソールにアクセスできるリソースから中身の設定を追加してやる必要があります。

- オンプレADのセカンダリ（正確な表現ではないですが）としては利用できない。

　※課金がドメインコントローラーの数によって変動するため
　※オンプレからのAD移行などので、セカンダリとして構築したい場合はEC2でADを構築しましょう

- 必ずマルチAZでの運用になる（シングルAZでは構成不可）

# Simple ADと MS ADの比較
 ◆Simple AD・・・小規模環境向け簡易AD（単純なAD環境であればこれで問題ない）

 ・Active Directory管理センター機能や一部のAWSサービスで連携できないなどの機能制限がある。
　&ensp;&ensp;対応不可AWSサービス：Amazon AppStream 2.0 / AWS FSx for Windows / Amazon chime など
 ・登録できるオブジェクト数（ユーザ、グループ、コンピュータ）制限がある。

&ensp;&ensp; [AWS 公式情報](https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/directory_simple_ad.html)
 
 ◆AWS Managed Microsoft AD・・・一般的なAD（機能的にはWindows Server のものとほぼ同じ）

　・Simple ADが対応不可のAWSサービスでも連携できる。
　・登録できるオブジェクト数（ユーザ、グループ、コンピュータ）がSimple ADよりも多い。
　・Domain Controllers にはAWSで特定のGPOがアタッチ済みで変更できない。
　・AWSの作成したユーザ、グループがあり、削除できないなどの制限もある。
　　（ユーザ名Administrator はAWSで利用制限されており、ユーザが利用できるのはAdmin）

　MS ADの「ユーザとコンピュータ」、「グループポリシーの管理」はこんな感じです。
![GPO.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/85cbd767-e006-56ed-ffea-08f6e4b79660.png)

FSxを構築しているのでFsx関係のオブジェクトが出来ています。他サービスもディレクト連携すると自動で追加されるようです。
ちなみにWorkDocus を連携させるとユーザに[GorillaBoyAdministrator]というユーザグループオブジェクトが追加されます。※WorkDocusの管理者権限を持つセキュリティグループのようです。


MS ADではユーザ名[Admin]をグループ[Domain Admins]に追加しようとしてもエラーになります。
&ensp;&ensp; ※他ユーザも同様
![AD作成＿投稿用.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/a0de6496-7d95-dac2-c803-828fcccc7d19.png)

管理者権限をユーザに付与したい場合は対象ユーザをグループ[AWS Delegeted administrator]に参加させるようにしてください。

&ensp;&ensp; [AWS 公式情報](https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/directory_microsoft_ad.html)

# 構築手順
Simple ADもMS ADも大体構築手順は同じです。
今回はSimple ADを構築するパターンで手順を紹介します。

![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/ed43200d-21c3-9298-3fc9-e5766a38d1c8.png)

![スライド2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/5de550e7-ae19-7d43-401d-e80d1ecb179f.png)
利用規模に応じて、スモールとラージを選択します。

![スライド3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/06dd0a75-f34d-7bfd-c6a4-5b83cdcf13b9.png)
次にデプロイするVPCとサブネットを選択します。

![スライド4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/57b289e8-9d67-4810-fe66-9a53a333fdfc.png)
Directory Serviceを作成をすると上記のように設定情報が確認できます。

![スライド5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/a191525b-f9d6-9bfe-c53d-b101da9bc97c.png)
次にVPCのDHCPのオプションセットを作成し、VPC内のDNSがSimple ADに向くように設定します。
DNS情報はSimple ADのディレクト情報で確認できます。

![スライド6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/6b091db5-5c04-6f9f-6d13-9870cd968eda.png)
続いて、Simple ADをデプロイしたVPCに先ほど作成したDHCPオプションセットを適用していきます。

![スライド7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/cd3583fc-028d-74d2-e005-66076625c0ff.png)
AWSサービスをDirectory連携されるときにVPCにDHCPオプションを適用していないと、Directoryを認識できず、連携が失敗します。

![スライド8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/075623c3-0290-75af-7b68-391a4654bc97.png)
![ドメイン参加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/184bf6eb-77f9-51d1-2b11-1242d6af1b98.png)

インスタンス側でドメイン参加するにはRDPでインスタンスに接続し、上記のようにNetwork Interface のDNSをSimple ADのアドレスへ変更して、コントロールパネルの[システム]からドメインを変更してください。

これでSimple ADの構築およびインスタンスのドメイン参加が完了しました！
# 料金体系
&ensp;&ensp; [AWS公式](https://aws.amazon.com/jp/directoryservice/pricing/)
注意してほしいのは、料金表の価格はドメインコントローラ単位の費用になるということです。
Simple ADでもMS ADでもドメインコントローラは最低２つ必要ですが、何個分必要なのかを意識して試算してください。

# 最後に
AD自体かなり奥が深く、私自身使いこなせるようになるまでには時間がかかると思います。その道のプロからするとおかしな表現も多々あると思いますので、間違いあればご指摘頂ければと思います。