SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

SB C&S

Azure上に行儀のよいAD DSを作ろう

パブリッククラウド
2023.03.09

はじめに

今回はDomain ControllerをAzure上に構築する場合のお話です。 検証等ではAzure上にDomain Controllerを構築する機会がよくあったのですが、あまり意識せずに普通の仮想マシンとして作業していました。ところが先日、Microsoft社のサイトでAzure上にActive Directory Domain Servicesをデプロイする時の推奨設定がきちんと提示されていることを見かけました。このサイトからどういったことに注意すべきかをまとめておきたいと考えたことがこの記事を書くきっかけです。 内容としては、Microsoft社のサイトを参考にしてActive Directory Domain Servicesのデプロイや運用についての幾つかのポイントをご紹介しています。
なお、以下の前提条件にも記載しておりますが、仮想マシンの作成やDomain Controllerの構築の詳細な手順には触れておりません。
念のためにですが、Domain Controller (以降、DCと略します)とは、Active Directory Domain Services(以降、AD DSと略します)がインストールされたサーバーのことを指しています。


この記事の前提条件

  • AzureのIaaSとして、2台のDCで冗長化構成をした
  • 仮想マシンの作成やDCの構築の手順は含まない
  • OSの画面ショットはWindows Server 2022を日本語化しWindows Updateを実施済みのものを使用
  • サイジングはしていない
  • この記事は2023年2月時点の情報に基づく

参考にしたMicrosoft社のページ
「 Deploy AD DS in an Azure virtual network 」
( 日本語ページは誤訳の場合もありますので、英語ページの方を日本語に訳して読んで頂いた方がよいと思います。)
https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/identity/adds-extend-domain


DC構築のポイントの一覧

仮想マシン作成時やDCの構築、運用中のポイントを以下の一覧で示します。
各項目の説明や画面ショットは次項に記載しています。

No. 項目 補足
1 複数のDCはAzureで冗長化 DCとなる仮想マシンは、可用性ゾーンまたは可用性セットで配置する。
2 データディスクはキャッシュオフ AD DSのデータベース、ログ、SysvolフォルダはOSとは別のデータディスクに保存し、そのデータディスクのホストキャッシュはオフにする。
3 プライベートIPアドレスは静的に プライベートIPアドレスは静的にする。
4 パブリックIPアドレスを振らない プライベートIPアドレスのみのDCへRDP接続するために、踏み台サーバーやBastionなどの準備が必要となる。
5 データディスクは暗号化 AD DSのデータを含むディスクはローカルのBitLockerやAzure Disk Encryptionで暗号化する。
6 仮想ネットワークにカスタムのDNSアドレスを指定 DCやドメインに参加する仮想マシンを配置する仮想ネットワークにはカスタム設定でDNSを指定する。
7 VHDやイメージからのリストアはしない DCのリストアはAzure Backupで取得したものを使い、VHDやイメージとして取得したものからリストアしない。
8 Azure Portalから「停止」を実行しない DCのシャットダウンが必要な場合は、ゲストOSからシャットダウンを実行する。Azure Portalから仮想マシンの「停止」は推奨されていない。
9 不要なポートはネットワークセキュリティグループで閉じる オンプレと同様な考え方とする。

DC構築のポイントの説明


  1. 複数のDCはAzureで冗長化
  2. 複数台のDCをAzureの冗長化構成で配置します。
    2台のDCをAzure の可用性ゾーンで冗長化した場合の設定例です。DCを同一リージョンのそれぞれ別々のゾーンに分けて配置しています。

    ・DC「dc01」を可用性ゾーン「ゾーン1」に配置
    IaaS-DC-01-01.png

    ・DC「dc02」を可用性ゾーン「ゾーン2」に配置
    IaaS-DC-01-02.png


  3. データディスクはキャッシュオフ
  4. ホストキャッシュをオフに設定します。既定値はオフのようです。

    ・データディスクのホストキャッシュをオフ
    IaaS-dc-02-01.png

    このディスクにAD DSのデータを保存します。

    ・AD DSのインストール中:データの保存先をデータディスクに指定
    IaaS-dc-02-02.png


  5. プライベートIPアドレスは静的に
  6. DHCPでIPアドレスが振られるAzure上の仮想マシンで静的なIPアドレスというと違和感を覚えられる方もいらっしゃるかもしれませんが、IPアドレスを固定するとお考え下さい。
    ここで静的なIPアドレスは、DCの必要な条件となります。

    ・プライベートIPアドレスを静的に設定
    IaaS-dc-03-01.png

    IPアドレスを静的に設定してもAD DSのインストール時には警告が表示されますが、これは無視して下さい。

    ・AD DSのインストール中:IPアドレスが静的ではないと警告している画面
    IaaS-dc-03-02.png


  7. パブリックIPアドレスを振らない
  8. ・パブリックIPの設定はしない
    IaaS-dc-04.png

    外部からの直接接続をさせないためのセキュリティ考慮からですが、パブリックIPアドレスを持たせないため仮想マシンへの接続方法を考慮する必要があります。
    例えば、踏み台サーバーやAzure Bastionの利用をご検討ください。私は課金を抑えるために、必要な時だけ起動して使う踏み台サーバー派です。

  9. データディスクは暗号化
  10. ディスクの暗号化をAzure Encryptionで行った場合は、OSディスクも含めて仮想マシンに接続されるすべてのディスクが暗号化されます。暗号化の確認画面と設定画面を貼っておきます。

    ・Azure Disk Encryptionが有効な場合の画面
    IaaS-dc-05-01.png

    Azure Encryptionは、「仮想マシン」 - 「ディスク」 - 「追加設定」で行います。

    ・ディスクを暗号化するため:「追加設定」を選択
    IaaS-dc-05-02.png

    「追加設定」の中の「暗号化設定」で、「OSとデータディスク」を選択します。暗号化にはキーコンテナが必要となります。

    ・ディスクを暗号化するため:「OSとデータディスク」を選択
    ・キーコンテナも作成
    IaaS-dc-05-03.png


  11. 仮想ネットワークにカスタムのDNSアドレスを指定
  12. オンプレミスのDCと同様に、AD DSの名前解決をするためのDNSを指定する必要があります。推奨構成としては、AD DSの名前解決を必要とする仮想ネットワークにDNSを指定することです。

    ・仮想ネットワークで、DNSサーバーをカスタム設定
    IaaS-dc-06.png


  13. VHDやイメージからのリストアはしない
  14. 2台以上のDC環境でリストアを実行する場合の注意事項です。DCのリストアで、事前に取得したVHDやイメージバックアップによるリストアはAD DSのデータベースの整合性が取れなくなる恐れがありAD DSの破壊になりかねないので実行しないで下さい。
    また、DCのバックアップは定期的に取得することが推奨されていますので、Azure Backup等を使いバックアップスケジュールの設定をして下さい。

  15. Azure Portalから「停止」を実行しない
  16. 2台以上のDC環境でDCをAzure Portal から仮想マシンの「停止」を行うと、AD DSのデータベースの整合性が取れなくなるケースがありAD DSの破壊になりかねないので実行しないで下さい。
    DCを停止したい場合は、DCにサインインしてコンソールから「シャットダウン」を選択して下さい。

    ・DCのコンソールからシャットダウンを選択
    IaaS-dc-08-01.png

    ・Azure Portalから実行中のDCに対して「停止」の選択はNG
    IaaS-dc-08-02.png

    ・Azure Portalからシャットダウン済みのDCに対しても「停止」の選択はNG
    IaaS-dc-08-03.png

    実は「7」「8」はどちらも同様な理由からAD DSが破壊される可能性につながっています。仮想マシンのDCが持つ「VM-GenerationID」という値を、「7」ではイメージからリストアすることで値を巻き戻してしまい、「8」では「停止」を行うことで予期しない値に変えてしまうことがあるためです。
    「8」の停止に関しては実際のDCで試したところ、OSからのシャットダウンでは変更されなかった「VM-GenerationID」の値が、Azure Portal上で仮想マシンの「停止」を選択した場合では値の変更を確認できました。
    補足とはなりますが「VM-GenerationID」と「停止」に関しての情報は、以下のURLをご参照下さい。
    「仮想化ドメイン コントローラーのアーキテクチャ」
    https://learn.microsoft.com/ja-jp/windows-server/identity/ad-ds/get-started/virtual-dc/virtualized-domain-controller-architecture
    「Azure 仮想マシンにおける操作 (再起動、停止/起動、再デプロイ、再適用) について」
    https://jpaztech.github.io/blog/vm/vm-operation/

  17. 不要なポートはネットワークセキュリティグループで閉じる
  18. DCの構成に大いに影響される設定なので、参考URLのみを貼っておきます。
    「Active Directory ドメインと信頼のファイアウォールを構成する方法」
    https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/identity/config-firewall-for-ad-domains-and-trusts

まとめ

この記事はDCを安定して、セキュアに運用し続けるためのMicrosoft社からの推奨事項をいくつかピックアップしたものとなっています。実際の構築要件に応じて検討をして頂き、適用を判断される必要があります。 それこそ検証目的のDCであれば、プライベートIPアドレスの静的やカスタムDNSの設定といったDCの構築に必要な最小設定だけでも十分な場合もあると思います。また実運用のDCであれば、要件に合致するほとんどの設定を追加してもいいと考えられます。
記事の中でご紹介したDCの停止の推奨方法は、私にとっては目からウロコの情報でした。1台構成のDCでは考慮が不要ですが、2台以上ならばAzure Portal上で仮想マシンの「停止(割り当て解除)」を選択してはいけないといった内容です。従量課金の私の検証環境では課金の節約が出来ないのであまり採用したくない内容でした。
また、記事の中で「VM-GenerationID」や「不要なポートの閉鎖」の説明を参考URLの紹介のみにしておりますが、今後また別の機会にでも整理してみたいと考えております。
内容は以上となりますが、これからDCを構築する方の何かしらのヒントになればと思います。

著者紹介

SB C&S株式会社
ICT事業本部 技術本部 第1技術部 4課
光永 正明