AWS Directory Serviceで「Managed Microsoft AD」を構築した際の「管理用サーバー」の設定方法

一般的なWindows/Active Directoryの手順に加えて、ちょっとだけAWS環境に特化した留意点がありますので、一連の流れをまとめてみました。
2020.10.07

みなさん、こんにちは!
AWS事業本部の青柳@福岡オフィスです。

AWS Directory Serviceの提供形態の一つである「Managed Microsoft AD」は、実際のWindows Server上に構築したActive Direcory環境を提供するマネージドサービスです。

Avtive Directory互換ソフトウェア (Samba) ベースで提供されるSimple ADに対して、言わば「本物の」Active Directoryを利用することができる訳ですが、オンプレミスサーバーやEC2インスタンスに自分でActive Directoryを構築した場合と比較して以下のような制約があります。

  • ドメイン管理者 (Domain Admins) の権限は与えられず、制限された管理者権限のみが与えられる
  • Avtive Directoryのサーバー (ドメインコントローラー) に直接ログオンして管理等を行うことができない

後者の制約に対応するためには、別途「Active Directory管理用サーバー」を導入して、Active Directory管理ツールをドメインに接続して管理を行う必要があります。

今回は、EC2インスタンスを「Active Directory管理用サーバー」として設定する方法を説明します。

※ 同様のブログ記事が既にあると思いますが、今回、自分の備忘録として整理してみました。

構成

今回、下図のような構成でManaged Microsoft ADとActive Directory管理用サーバーを導入することにします。

セキュリティ面を考慮して、Managed Microsoft AD・Active Directory管理用サーバーは共にプライベートサブネットに配置しています。
(検証目的であればパブリックサブネットに配置しても構いません)

上図の構成を作成するCloudFormationテンプレートを用意しましたので、ご利用ください。
cfn-managed-microsoft-ad.yaml

設定手順

踏み台サーバー経由で「Active Directory管理用サーバー」へRDP接続して、設定を行っていきます。
(この時のログオンユーザーはAdministrator)

1. サーバーをManaged Microsoft ADのドメインへ参加させる

AWS環境上でWindowsサーバーをActive Directoryドメインに参加させる時のTIPSについては、下記のブログ記事を参考にしてください。

(1) DNSの設定を行う

まず、DNSの参照先を「Managed Microsoft ADが提供するDNS」に設定します。

Managed Microsoft ADのDNSアドレスは、AWSマネジメントコンソールのDirectory Serviceから「ディレクトリの詳細」ページで確認できます。

「インターネットプロトコル バージョン4 (TCP/IPv4) のプロパティ」を開いて、確認したDNSアドレスを設定します。

続けて「DNSサフィックス」の設定を行います。
「詳細設定」をクリックします。

「TCP/IP詳細設定」画面で「DNS」タブを選択します。
「非修飾名の解決に使用するオプション」で「プライマリおよび接続専用のDNSサフィックスを追加する」を選択します。

設定変更後、「OK」をクリックします。
「インターネットプロトコル バージョン4 (TCP/IPv4) のプロパティ」画面に戻った後、「OK」をクリックして設定を保存してください。

(2) ドメインに参加する

DNSの設定が終わりましたら、ドメインに参加します。

「システムのプロパティ」から「コンピューター名/ドメイン名の変更」画面を開きます。
「所属するグループ」で「ドメイン」を選択して、参加するドメイン名を入力し、「OK」をクリックします。

ドメイン管理者のユーザー名 (Admin) とパスワードを入力します。

ドメインに参加できたことを確認します。

ドメイン参加後、サーバーの再起動を促されますので、指示に従ってサーバーの再起動を行います。

(3) ドメイン管理者ユーザーでログオンする

再起動によってRDP接続が終了しますので、再起動が終わった後に再度RDP接続を行います。
ただし、ログオンユーザーはAdministratorではなく、ドメイン管理者のユーザー名 (Admin@example.intranet) とパスワードを入力します。

(4) 時刻同期の設定を行う

ログオン後、コマンドプロンプトまたはPowerShellを管理者として起動して、以下のコマンド群を実行します。

> w32tm /config /manualpeerlist:"169.254.169.123,0x9" /syncfromflags:domhier /update
> net stop w32time
> net start w32time

これで、サーバーをManaged Microsoft ADのドメインへ参加させる一連の手順が終わりました。

2. Active Directoryの管理ツールをインストールする

サーバーマネージャーから「管理」→「役割と機能の追加」を選択します。

「役割と機能の追加ウィザード」を画面の指示に従って進めます。

「役割」の選択画面では、設定を変更せずに「次へ」をクリックします。

「機能」の選択画面で、少し下へスクロールして「グループポリシーの管理」にチェックを入れます。

更に下へスクロールして「リモートサーバー管理ツール」の項目を展開します。
以下の通りにチェックを入れます。

  • リモートサーバー管理ツール
    • 役割管理ツール
      • AD DSおよびAD LDS管理ツール
        • AD DSツール ← ここにチェックを入れる
      • DNSサーバーツール ← ここにチェックを入れる

「AD DSツール」にチェックを入れた時、図の画面が表示されますので、「機能の追加」をクリックします。

「インストールオプションの確認」画面で、下図の通りに表示されていることを確認します。

「インストール」をクリックするとインストールが始まります。

正常にインストールが完了したことを確認して、「役割と機能の追加ウィザード」画面を閉じます。

PowerShellを使って管理ツールをインストールする方法

GUIを使う代わりに、PowerShellを使って管理ツールをインストールすることもできます。

PowerShellを管理者として起動して、以下のコマンドレットを実行します。

PS> $result = Install-WindowsFeature -Name RSAT-ADDS,RSAT-DNS-Server,GPMC

結果を確認するには、以下のコマンドレットを実行します。

PS> $result

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {グループ ポリシーの管理, リモート サーバ...

インストールされた「機能」を確認するには、以下のコマンドレットを実行します。

PS> $result.FeatureResult

Display Name                           Name           Success # Msg Restart Needed Skip Reason
------------                           ----           ------- ----- -------------- -----------
グループ ポリシーの管理                GPMC           True    0     False          NotSkipped
リモート サーバー管理ツール            RSAT           True    0     False          NotSkipped
Active Directory 管理センター          RSAT-AD-Adm... True    0     False          NotSkipped
Windows PowerShell の Active Direct... RSAT-AD-Pow... True    0     False          NotSkipped
AD DS および AD LDS ツール             RSAT-AD-Tools  True    0     False          NotSkipped
AD DS ツール                           RSAT-ADDS      True    0     False          NotSkipped
AD DS スナップインおよびコマンドラ...  RSAT-ADDS-T... True    0     False          NotSkipped
DNS サーバー ツール                    RSAT-DNS-Se... True    0     False          NotSkipped
役割管理ツール                         RSAT-Role-T... True    0     False          NotSkipped

Active Directory管理ツールを使ってみる

管理ツールをインストールすると、スタートメニューの「Windows管理ツール」にActive DirectoryおよびDNS関連の管理ツールが追加されます。
(表示されていませんが、下の方には「グループポリシーの管理」ツールもあります)

Active Directoryユーザーとコンピューター

管理ツールの中から「Active Directoryユーザーとコンピューター」を起動してみます。

冒頭で、Managed Microsoft ADの制約として「ドメイン管理者 (Domain Admins) の権限は与えられず、制限された管理者権限のみが与えられる」ことを説明しました。

Active Directoryのディレクトリ階層のうち、ルートディレクトリ直下はAWSによって管理されており、管理者ユーザーであっても読み取り専用権限しか与えられていません。

ルート直下に「<ドメインのNetBIOS名>」(例:EXAMPLE) の名前でOUが用意されており、このOU配下に対してのみ、OUやオブジェクト (ユーザー、コンピューター等) を作成することができます。

DNSマネージャー

次に、管理ツールの中から「DNS」を起動してみます。

初回に限り下図のような「DNSサーバーに接続」ダイアログが表示されます。
「次のコンピューター」を選択して、Managed Microsoft ADのDNSアドレス (2つのうちいずれか一方) を入力します。

DNSサーバーに接続されます。

ここで一つ確認をしてみましょう。

DNSサーバー名を右クリックして「プロパティ」を選択します。

「フォワーダー」タブを選択します。

フォワーダーとして「169.254.169.253」というIPアドレスが登録されています。

これは「AmazonProvidedDNS」のIPアドレスであり、Managed Microsoft ADのDNSで解決することができない名前解決の要求を転送するために設定されています。

これによって、AWS VPC内部のDNS名 (例:ip-xx-xx-xx-xx.ap-northeast-1.compute.internal) や、インターネット上のDNS名 (例:www.google.co.jp) の名前解決が可能になるという訳です。

DNSフォワーダーについての詳細は、前述したブログ記事で説明しています。
EC2インスタンス上にActive Directory環境を構築する際のTIPS | Developers.IO

おわりに

Windows環境に慣れている方であれば、ドメイン参加や管理ツール導入の一般的な手順なので難しいところは無いかと思います。

ただし、一部にAWS環境・Managed Microsoft AD環境に特化した設定が必要となる個所がありますので、その点にだけ留意してください。