Active Directory でのマネージド サービス アカウント (gMSA) のセキュリティ保護
2025/04/08
この技術的および教育的な記事は、セキュリティ アナリスト、IT 管理者、およびシステム エンジニアが Active Directory でグループ管理サービス アカウント (gMSA) を実装およびセキュリティで保護できるようにガイドすることを目的としています。 gMSA は、パスワード管理を自動化し、管理を簡素化することで、サービス アカウントのセキュリティの課題に対する堅牢なソリューションを提供します [1]。
はじめに
静的パスワードを使用する従来のサービス アカウントには、重大なリスクが伴います。 gMSA (グループ管理サービス アカウント) は、MSA (管理サービス アカウント) の機能を拡張し、Active Directory が手動介入なしでパスワードのローテーションとキーの配布を自動的に管理することで、単一のサービス アカウントを複数のサーバーで使用できるようにします [2]。
この実践的なガイドでは、前提条件、gMSA の作成と構成、gMSA をサービスやスケジュールされたタスクに関連付ける方法、サービス アカウントを効率的に保護および管理するためのベスト プラクティスについて説明します。
gMSA が重要なのはなぜですか?
- 自動パスワード管理: 複雑で長いパスワードは、Active Directory によって自動的に生成され、30 日ごとに更新されます。
- 複数のサーバーへの展開: 単一の gMSA を複数のサーバーで使用できるため、分散環境での管理が簡素化されます。
- 最小特権の原則: 必要最小限の権限の付与を促進します。
- 監査の改善: サービス ID が明確に定義され追跡可能であるため、監査が簡素化されます。
前提条件
- Windows Server 2012 以降を搭載したドメイン コントローラー (DC)。
- Windows Server 2012 以降のドメイン機能レベル (DFL)。
- Windows PowerShell 用 Active Directory モジュール。
- gMSA を使用する ドメイン メンバー サーバー。
- ホストのセキュリティ グループ: gMSA を使用するサーバーを含む Active Directory のセキュリティ グループ。
ステップバイステップ: gMSA の実装とセキュリティ保護
1. KDS ルートキーサービスの構成
KDS ルート キー サービスは、Active Directory が gMSA のパスワードを生成できるようにするために必要です。フォレストごとに 1 回構成する必要があります [3]。
- ドメイン コントローラーで管理者として Windows PowerShell を開きます。
- KDS ルート キー サービスがすでに構成されているかどうかを確認します。 ```パワーシェル Get-KdsRootKey 「」
- キーが返されない場合は、新しい KDS ルート キーを作成します。本番環境では、「Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)」を使用してレプリケーションを有効にします。すぐにテストするには、次を使用します。 ```パワーシェル Add-KdsRootKey -EffectiveImmediately 「」
2. ホストのセキュリティグループの作成
このグループには、gMSA パスワードの回復を許可されるサーバーが含まれます。
- Active Directory ユーザーとコンピュータ (dsa.msc) を開きます。
- スコープが「Global」で新しいセキュリティ グループ (例: 「gMSA_Hosts_ServicoX」) を作成し、「Security」と入力します。
- gMSA を使用するコンピューター (サーバー) をこのグループに追加します (例:
ServidorApp01$、ServidorApp02$)。
3. gMSA の作成
次に、PowerShell を使用して gMSA を作成しましょう。
- ドメイン コントローラーで管理者として Windows PowerShell を開きます。
- 「New-ADServiceAccount」コマンドレットを使用します。
```パワーシェル
New-ADServiceAccount -Name gMSA_ServicoX -DNSHostName gMSA_ServicoX.contoso.com -PrincipalsAllowedToRetrieveManagedPassword "gMSA_Hosts_ServicoX"
「」
- 説明:
PrincipalsAllowedToRetrieveManagedPasswordパラメーターは、gMSA パスワードを取得できるセキュリティ グループを指定します。このグループには、サービスを実行するサーバーが含まれている必要があります。
- 説明:
4. ホストサーバーでの gMSA のインストールとテスト
gMSA を使用するサーバーでは、gMSA をインストールし、その機能をテストする必要があります。
- 「gMSA_Hosts_ServicoX」グループの各サーバー メンバーで、Windows PowerShell を管理者として開きます。
- gMSA をインストールします。 ```パワーシェル インストール-ADServiceAccount -Identity gMSA_ServicoX 「」
- gMSA がインストールされ、機能していることをテストします。
```パワーシェル
Test-ADServiceAccount -Identity gMSA_ServicoX
「」
- 期待される結果: 出力は「True」になるはずで、サーバー上で gMSA を使用する準備ができていることを示します。
5. gMSA とサービスの関連付け
- サービスが置かれるサーバー上で実行したら、サービス コンソール (
services.msc) を開きます。 - 設定するサービスを見つけます。
- サービスを右クリックし、プロパティを選択します。
- [ログオン] タブで、このアカウント を選択します。
- [このアカウント] フィールドに、gMSA の名前の後に「$」を付けて入力します (例: 「gMSA_ServicoX$」)。
- パスワードフィールドは空白のままにします。 Active Directory がパスワードを自動的に管理します。
- [適用] および [OK] をクリックします。
- 変更を有効にするためにサービスを再起動します。
6. スケジュールされたタスクでの gMSA の使用
- サーバー上で タスク スケジューラ (
taskschd.msc) を開きます。 - 新しいタスクを作成するか、既存のタスクを編集します。
- [全般] タブで、[ユーザーまたはグループの変更...] をクリックします。
- 「選択するオブジェクトの名前を入力してください」フィールドに、gMSA の名前の後に「$」を入力します (例: 「gMSA_ServicoX$」)。
- [名前の確認] をクリックし、[OK] をクリックします。
- パスワードフィールドは空白のままにします。
- 他のスケジュールされたタスクのオプションを設定し、OK をクリックします。
ベスト プラクティスとセキュリティのヒント
- 最小特権の原則: gMSA には、その機能を実行するために必要な権限のみを付与します。ドメイン管理者権限を持つ gMSA を使用しないでください。
- 専用セキュリティ グループ: 「PrincipalsAllowedToRetrieveManagedPassword」に特定のセキュリティ グループを使用して、どのサーバーが gMSA を使用できるかを制御します。
- 監査: Active Directory セキュリティ ログを通じて gMSA の使用を監視し、異常なアクティビティを検出します。
- KDS ルート キーの保護: KDS ルート キーは gMSA のセキュリティにとって重要であるため、ドメイン コントローラーが安全であることを確認します。
- 古いサービス アカウントを削除: サービスを gMSA に移行し、静的パスワードを使用していた古いサービス アカウントを無効にするか削除します。
- ドキュメント: どの gMSA が使用されているか、どのサービスがどのサーバーで実行されているかを記録してください。
結論
グループ管理サービス アカウント (gMSA) は、特にサービス ID の管理において、Active Directory のセキュリティ体制を向上させるための重要なコンポーネントです。 gMSA は、パスワードのローテーションを自動化し、分散環境での導入を簡素化し、最小権限の原則の適用を容易にすることにより、攻撃対象領域と管理の複雑さを大幅に軽減します。 gMSA の適切な実装と管理は、サービスとアプリケーションをサイバー脅威から保護するための重要な手順です。
参考文献
[1] マイクロソフト。 (2023年)。 Active Directory のグループ管理サービス アカウント (gMSA)。 [2] マイクロソフト。 (2023年)。 マネージド サービス アカウントの概要。 [3] マイクロソフト。 (2023年)。 Active Directory キー配布サービス (KDS)。