キー配布サービス KDS ルート キーの作成

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

この IT 担当者向けの記事では、Windows Server 2012 以降でグループの管理されたサービス アカウント パスワードを生成するために、Windows PowerShell を使用してドメイン コントローラーで Microsoft キー配布サービス (kdssvc.dll) のルート キーを作成する方法について説明します。

ドメイン コントローラー (DC) では、gMSA パスワードの生成を開始するためにルート キーを必要とします。 ドメイン コントローラーは作成時点から最大で 10 時間待機します。これにより、すべてのコントローラーは gMSA の作成を許可する前に AD レプリケーションを収束させることができます。 最大で 10 時間待機するのは、環境内のすべての DC が gMSA 要求に応答できるようになる前にパスワードの生成が行われるのを防止するための安全対策です。 gMSA をすぐに使用しようとすると、gMSA ホストがパスワードの取得を試みるときにエラーになる可能性があります。これは、キーがすべてのドメイン コントローラーにレプリケートされていない可能性があるためです。 また、制限のあるレプリケーション スケジュールの DC を使用する際に、またはレプリケーションに関する問題がある場合にも、gMSA パスワードの取得が失敗する場合があります。

注意

ルート キーを削除して再作成すると、キーのキャッシュが原因で古いキーが削除後も引き続き使用される問題が発生するおそれがあります。 ルート キーが再作成された場合、すべてのドメイン コントローラーでキー配布サービス (KDC) を再起動する必要があります。

この手順を完了するには、[Domain Admins] または [Enterprise Admins] グループのメンバーシップ、あるいはそれと同等のメンバーシップが最低限必要です。 適切なアカウントおよびグループ メンバーシップの使用方法の詳細については、「ローカルおよびドメインの既定のグループ」を参照してください。

注意

グループの管理されたサービス アカウントを管理するために使用する Windows PowerShell コマンドを実行するには、64 ビット アーキテクチャが必要です。

Add-KdsRootKey コマンドレットを使用して、KDS ルート キーを作成するには

  1. Windows Server 2012 以降のドメイン コントローラーのタスクバーから Windows PowerShell を実行します。

  2. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    Add-KdsRootKey -EffectiveImmediately

    ヒント

    Effective 時間パラメータを使用すれば、使用前にすべての DC にキーを伝達する時刻を指定できます。 Add-KdsRootKey -EffectiveImmediately を使用すると、KDS サービスですぐに使用されるターゲット DC にルート キーが追加されます。 ただし、他のドメイン コントローラーは、レプリケーションが成功するまでルート キーを使用できません。

KDS のルート キーは、Active Directory のコンテナー CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=<forest name>; に格納されます。 これらは、このオブジェクトを作成したドメイン コントローラーのコンピューター アカウントにリンクする属性 msKds-DomainID を保持します。 このドメイン コントローラーが降格され、ドメインから削除されると、値はコンピューター アカウントの廃棄標識を参照します。 この無効になった値は、このオブジェクトが新たに作成されたときに管理者がその追跡に役立てるためにだけ使用されるため、無視してかまいません。 また、属性値を変更して、フォレスト内の別のドメイン コントローラーのコンピューター オブジェクトを参照させることもできます。

DC が 1 つしか存在しないテスト環境では、次の手順を実行して KDS ルート キーを作成し、開始時刻を過去の時刻に設定することで、キー生成における待機を回避することができます。 4004 イベントが KDS のイベント ログに記録されていることを検証してください。

テスト環境で KDS ルート キーを作成してすぐに有効にするには

  1. Windows Server 2012 以降のドメイン コントローラーのタスクバーから Windows PowerShell を実行します。

  2. Windows PowerShell Active Directory モジュールのコマンド プロンプトで、次のコマンドを入力し、ENTER キーを押します。

    $a=Get-Date

    $b=$a.AddHours(-10)

    Add-KdsRootKey -EffectiveTime $b

    または、単一のコマンドを使用します。

    Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))

参照

グループの管理されたサービス アカウントの概要