【AWS】AD Connectorを使用してオンプレ環境のAD認証でwindowsインスタンスにRDP接続する。

#やりたいこと
掲題のとおり

#環境
- DX or VPN
- プライベートサブネット配置
- Windows Server 2012 R2(RDP接続先）
- Windows Server 2012 R2(条件はWindows Server 2003 以降(AD側))

#オンプレAD側でやること
##ポートを解放する

AD Connector用
TCP/UDP 53 - DNS
TCP/UDP 88 - Kerberos authentication
TCP/UDP 389 - LDAP; note that AWS Directory Service does not support LDAP with SSL (LDAPS) or LDAP signing

##ADへアクセスするアカウントを作成する

以下リンク先の「Delegating Connect Privileges」の部分の手順
ユーザー、グループ、コンピュータをルックアップするための読み取り専用許可を持ち、
コンピュータのドメイン参加を実行できるものである必要があります。

http://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/cloud_prereq.html

#AWS側でやること
##AD Connectorを作成する

AWSのActice Directoryサービスの1つです。

>AD Connector は、クラウド上の情報のキャッシュはまったく行わずに
>オンプレミスの Microsoft Active Directory への代理リクエストが可能なディレクトリゲートウェイです。
>AD Connector には、スモールとラージの 2 つのサイズがあります。
>スモール AD Connector は、500 ユーザーまでの小規模な組織向けに設計されています。
>ラージ AD Connector は、5,000 ユーザーまでの大規模な組織向けに設計されています。
>
>一度セットアップすれば、エンドユーザーと IT 管理者は会社の既存の認証情報を使用して、
>Amazon WorkSpaces、Amazon WorkDocs、や Amazon WorkMail などの
>AWS アプリケーションにログインし、
>AWS Identity and Access Management (IAM) ロールベースで AWS マネジメントコンソールにアクセスして、
>AWS リソース (Amazon EC2 インスタンスや Amazon S3 バケットなど) を管理できます。
https://aws.amazon.com/jp/directoryservice/details/

■必要な情報

|項目|説明|
|:----|:----|
|Connected directory domain|オンプレ環境のADドメイン|
|Connected directory NetBIOS name|オンプレ環境のNetBIOSname|
|On-premises DNS Address|オンプレ環境のDNSアドレス（複数ある場合は複数）|
|AD Connector Subnets|AWS環境のサブネット、2つのAZにまたがる必要あり|
|Connector account username|コネクターアカウントのID（前述の「ADへアクセスするアカウントを作成する」で作ったもの）|
|Connector account pass|コネクターアカウントのPW（前述の「ADへアクセスするアカウントを作成する」で作ったもの）|

##Windowsインスタンスを作成する

作成時にドメイン結合ディレクトリを選択できます。
この時点で先ほど作成したAD Connectorのid(d-xxxxxxx)を指定します。

##SSMドキュメントを作成し、インスタンスに紐付ける

作成したWindowsインスタンスにRDP接続後、
SSMドキュメントを作成し、
ドメインに参加させます。
適当なテキストファイルに以下を記述し、
json形式で保存します。

```
{
    "schemaVersion": "1.0",
    "description": "Sample configuration to join an instance to a domain",
    "runtimeConfig": {
        "aws:domainJoin": {
            "properties": {
                "directoryId": "d-1234567890", #先ほど作成したAD Connectorの識別番号
                "directoryName": "ADドメイン名",
                "dnsIpAddresses": [
                    "オンプレのDNSIPアドレス",
                    "オンプレのDNSIPアドレス"
                ]
            }
        }
    }

}
```

パワーシェルにて以下を実行します。
パスを指定する部分は保存したパスを指定してください。
インスタンス自身で実行する場合、SSMに対しての権限がいると思います。

```
$doc = Get-Content C:\temp\myconfigfile.json | Out-String
New-SSMDocument -Content $doc -Name "My_Custom_Config_File"
New-SSMAssociation -InstanceId i-1234567890abcdef0 -Name "My_Custom_Config_File"
```

##システムログを確認する

コンソールからドメイン参加したインスタンスのシステムログを確認します。
以下のようになっていればよいと思います。

```
2016/08/28 08:07:51Z: Amazon EC2 Simple Systems Manager (SSM) is an optional service for custom configuration of instances.
2016/08/28 08:07:51Z: Info EC2Config configuration: status:2; region:ap-northeast-1; iam:1; authz:1
2016/08/28 08:07:51Z: SSM Config: status:Active; iam:Yes
```

##リモートデスクトップユーザを設定する

作成したインスタンス側で、あらかじめリモートデスクトップユーザを設定する必要があります。
以下の画像を参考にユーザを追加します。
正常にドメイン参加ができていた場合、ADの認証画面が表示されます。
AD認証後、追加したいユーザを選択します。
ここで「Domain Users」を選択しておくと、
通常のADユーザアカウントはRDP接続できるので便利だと思いました。

![image](https://qiita-image-store.s3.amazonaws.com/0/88739/bf5886e7-a864-fd39-6c58-a0b5e862a4c3.png)


#疎通確認する
おわり