AWS Managed Microsoft ADのパスワードポリシーについて調べてみた

MSADのパスワードポリシーについて調べました。初期設定で全ユーザーのパスワード有効期限が42日間になっている、ということだけでも持ち帰っていただけたら嬉しいです。
2022.07.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

みなさん、こんにちは。

AWS事業本部コンサルティング部の芦沢(@ashi_ssan)です。

AWS Managed Microsoft ADを使用している環境で「昨日までログインできていたのに、急にパスワードの有効期限が切れてログインできなくなった!?」という場面に遭遇したこと、ありませんか?

私はあります。

AWS Managed Microsoft ADでは、「Default Domain Policy」にパスワードポリシーが設定されており、新規作成したユーザーにそのパスワードポリシーが適用されます。

「Default Domain Policy」にはパスワードの有効期限を含むポリシーが設定されているため、ユーザー側の設定でパスワードの有効期限を設定していなくてもパスワードの有効期限が効いていることで、想定していないタイミングでパスワードの有効期限切れが発生することがあります。

本エントリでは、例に挙げたようなGPOをはじめとするAWS Managed Microsoft ADのパスワードポリシーの管理方法について解説します。

ぜひ最後までお付き合いください。

いきなりまとめ

  • MSADのパスワードポリシーはGPO(Group Policy Object)PSO(Password Setting Object)のいずれかで管理可能
  • GPOで管理されるパスワードポリシーはドメイン全体にユーザーにポリシーを付与する
    • パスワードポリシーが設定可能な「Default Domain Policy」は設定変更ができない点、ポリシーの初期値のパスワード有効期間が42日間である点に注意
  • AWSで事前定義されたPSOを使用すると、ADセキュリティグループ単位、ユーザー単位のようなより細かい単位でのパスワードポリシー設定が可能
    • 設定値は変更可能(優先順位以外)、利用者側でPSOは作成できない
  • 基本的にはPSOを利用したパスワードポリシー運用を行うことを推奨します

事前準備

本文の中で、検証環境からMSADの設定内容を確認する場面があります。

検証環境はこちらのブログを参考に準備しましたので、ご参考にどうぞ。

AWS Managed Microsoft ADとは?

AWS Managed Microsoft AD(以降MSADとも略します)は、AWSのサービスであるAWS Directory Serviceのディレクトリタイプの一種です。

AWS Directory ServiceにはMSADの他に以下のディレクトリタイプがあります。

  • Simple AD
  • AD Connector

MSADはMicrosoft Active Directoryをマネージドサービスとして提供しているディレクトリタイプです。

内部では実際に「Windows Server 2012 R2」が動作していて、Windows Server上でActive Directoryサービスが稼働しているそうです。

Active Directoryそのものを利用できるため互換性に優れていて、多くのAWSサービスとの連係が可能です。

ただし、オンプレミスのActive Directoryと比較すると以下のような制限がありますのでご注意ください。

  • ドメイン管理者ユーザーの「Administrator」ユーザーがAWS管理となっていて使用できない
    • 代わりに権限が絞られた「Admin」ユーザーが使用できる
  • ディレクトリのデフォルトOUがAWS管理となっていて、OUやOU配下のオブジェクトの新規作成や設定変更が行えない
    • AWS利用者向けのOUが用意されていてそちらは使用可能

MSADやAWS Directory Serviceについてもっと詳しく知りたい方は、こちらのブログをご覧ください。

MSADのパスワードポリシーについて

MSADの実体であるWindows Server 2012 R2のActive Directoryでは、パスワードポリシーを管理する方法として以下の2つの方法があります。

  • Group Policy Object(GPO)
  • Password Setting Object(PSO)

まず、GPOについてですが、ここでいうGPOは「Default Domain Policy」のことを指します。

パスワードポリシーは「Default Domain Policy」のみに設定可能で、配下のOU等に作成した他のグループポリシーではパスワードポリシーを設定できません。「Default Domain Policy」はドメイン全体のユーザーに適用されます。そのため、特定のOUのユーザーにのみポリシーを適用する、のような設定ができません。

対して、PSOはADセキュリティグループやユーザーのようなOU単位で付与するポリシーなので、特定のオブジェクトにのみポリシーを適用する、のような設定が可能です。

MSADのGPO(Default Domain Policy)について

Group Policy Object(GPO)は、ユーザーやコンピューターに対する設定を一元的に管理するためのActive Directoryの仕組みであるグループポリシーの設定項目が含まれるオブジェクトのことを指します。

パスワードポリシーは、グループポリシーに含まれるアカウントポリシーのうちの1つで、他にはアカウントロックアウトのポリシーやKerberosポリシーがあります。

今回お話しする「Default Domain Policy」は、Active Directoryの初期セットアップ時に自動で作成されるGPOで、その名の通りドメイン全体に適用されるグループポリシーです。

パスワードポリシーはこのGPOにしか設定できません。

「Default Domain Policy」に設定されたパスワードポリシーについては、こちらのドキュメントに記載があります。

https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/ms_ad_password_policies.html

ポリシー 設定
適用されるパスワード履歴 24 個のパスワードを記憶
パスワードの最長有効期間 42 日間 *
パスワードの最短有効期間 1 日
パスワードの最小長 7 文字
パスワードに一定の複雑さを要求 有効
可逆的暗号化を使用したパスワードの保存 無効

検証環境の「Default Domain Policy」を確認したところ、ドキュメントに記載があった内容と同じものが設定されているように見えます。

ここで設定されているパスワード最長有効期間に注目してください。

この設定内容を知らないとユーザー作成の43日後に「パスワードの有効期限が急に切れた!?!?」という問い合わせにつながってしまうでしょう。

ちなみにこのパスワードポリシーの設定値は、MSADの実体であるWindows Server 2012 R2のデフォルト値と同じもので、MSADに限らずオンプレミスのActive Directoryでも同様の現象は起きると思われます。ADに詳しい方ならご存知のことかもしれませんね。

MSADでは、利用者側で操作できる管理者ユーザーである「Admin」では、パスワードポリシーを設定できる「Default Domain Policy」の設定変更を行うことができません。

パスワードポリシーを変更したい場合は、後述のPSOを利用を始める必要があります。

MSADのPSO(CustomerPSO-XX)について

Password Setting Object(PSO)は、1つのドメイン内で複数のパスワードおよびアカウントロックアウトを構成できるポリシーで、きめ細かなパスワードポリシー(Fine-Grained Password Policies)とも呼ばれています。

PSOを利用することでドメインを分けずにパスワードポリシーをOU単位で設定できます。

MSADで利用可能なPSOについては、こちらのドキュメントに記載があります

以下のPSOがAWSによって事前に定義されているようです。

ポリシー名 優先順位
CustomerPSO-01 10
CustomerPSO-02 20
CustomerPSO-03 30
CustomerPSO-04 40
CustomerPSO-05 50

このPSOをADセキュリティグループやユーザーと関連付けすることで、個別のパスワードポリシー設定が可能になります。

また、パスワード有効期限などの設定値については「Admin」ユーザー権限で設定変更できるため、MSAD利用者側でポリシーのチューニングも可能です。

MSADのPSOは、Active Directory管理センターからSystemOU配下のPassword Setting Containerで確認できます。

CustomerPSO-01〜05のデフォルトの値はすべてDefault Domain Policyの初期値と同じように見えました。

PSOには優先順位(Precedence)が設定されており、それぞれのパスワードポリシーが設定された複数のADセキュリティグループがユーザーに関連付けされている場合、優先順位の数値の最も低いパスワードポリシーが適用されます。

たとえば、以下の表のようなPSOが設定されたAD環境で、AshisanというユーザーがMANAGERSグループとSALESグループの2つに所属している場合、より優先順位の低いPSOであるCustomerPSO-02が適用されます。

ポリシー名 CustomerPSO-01 CustomerPSO-02 CustomerPSO-03
優先順位(変更不可) 10 20 30
用途 AD管理者用 上級管理職用 一般社員用
関連付けするADセキュリティグループ名 AD-ADMIN MANAGERS HR、SALES

結局、MSADのパスワードポリシー運用をどうしたらいい?

基本的な考え方として、MSADの場合はGPOに設定されたパスワードポリシーの変更ができないという制約があるため、少しでもポリシーに手を加えたい場合は、PSOを利用したパスワードポリシーで運用されることをおすすめします。

PSOを利用したパスワードポリシー運用について、より具体的なユースケースを交えたMSADでのPSO設定例がAWS公式セキュリティブログで紹介されています。

あわせてご確認ください。

最後に

今回は、MSADのパスワードポリシーについて調べてみました。

ブログ執筆を通じて、また1つMSADやActive Directoryについて詳しくなれた気がします。

このブログが誰かの役に立てれば幸いです。

以上、AWS事業本部コンサルティング部の芦沢(@ashi_ssan)でした。

参考資料