gMSA を使用して Defender for Identity のディレクトリ サービス アカウントを設定する

この記事では、Defender for Identity DSA のエントリとして使用するグループ管理サービス アカウント (gMSA) を作成する方法について説明します。

詳細については、「Microsoft Defender for Identity のディレクトリ サービス アカウント」を参照してください。

ヒント

マルチフォレストやマルチドメイン環境では、フォレストまたはドメインごとに一意の名前を持つ gMSA を作成することをお勧めします。 また、すべてのセンサーが gMSA のパスワードを取得し、クロスドメイン認証を実行できるように、すべてのセンサーのコンピューター アカウントを含むユニバーサル グループを各ドメインに作成します。

前提条件: gMSA アカウントのパスワードを取得するためのアクセス許可を付与する

gMSA アカウントを作成する前に、アカウントのパスワードを取得するアクセス許可を割り当てる方法を検討します。

gMSA エントリを使用する場合、センサーは Active Directory から gMSA のパスワードを取得する必要があります。 これは、各センサーに割り当てるか、グループを使用して行うことができます。

  • 単一フォレストで単一ドメインのデプロイでは、AD FS サーバーや AD CS サーバーにセンサーをインストールする予定がない場合は、ビルトインのドメイン コントローラー セキュリティ グループを使用できます。

  • 複数のドメインがあるフォレストで単一の DSA アカウントを使用している場合は、ユニバーサル グループを作成し、各ドメイン コントローラーおよび AD FS サーバーまたは AD CS サーバーをユニバーサル グループに追加することをお勧めします。

コンピューターが Kerberos チケットを受信した後にコンピューター アカウントをユニバーサル グループに追加した場合、新しい Kerberos チケットを受け取るまで、gMSA のパスワードを取得できません。 Kerberos チケットには、エンティティがチケットの発行時にメンバーであるグループの一覧があります。

このようなシナリオでは、次のいずれかの操作を行います。

  • 新しい Kerberos チケットが発行されるまで待ちます。 Kerberos チケットは通常 10 時間有効です。

  • サーバーを再起動します。 サーバーを再起動します。サーバーが再起動されると、新しいグループ メンバーシップを使用して新しい Kerberos チケットが要求されます。

  • 既存の Kerberos チケットを消去します。 これにより、ドメイン コントローラーは新しい Kerberos チケットを要求します。

    チケットを消去するには、ドメイン コントローラーの管理者コマンド プロンプトから、次のコマンドを実行します: klist purge -li 0x3e7

gMSA アカウントを作成する

このセクションでは、アカウントのパスワードを取得し、gMSA アカウントを作成し、アカウントを使用する準備ができていることをテストできる特定のグループを作成する方法を説明します。

使用環境の変数値を使用して、次のコードを更新します。 その後、管理者として PowerShell コマンドを実行します。

# Variables:
# Specify the name of the gMSA you want to create:
$gMSA_AccountName = 'mdiSvc01'
# Specify the name of the group you want to create for the gMSA,
# or enter 'Domain Controllers' to use the built-in group when your environment is a single forest, and will contain only domain controller sensors.
$gMSA_HostsGroupName = 'mdiSvc01Group'
# Specify the computer accounts that will become members of the gMSA group and have permission to use the gMSA. 
# If you are using the 'Domain Controllers' group in the $gMSA_HostsGroupName variable, then this list is ignored
$gMSA_HostNames = 'DC1', 'DC2', 'DC3', 'DC4', 'DC5', 'DC6', 'ADFS1', 'ADFS2'

# Import the required PowerShell module:
Import-Module ActiveDirectory

# Set the group
if ($gMSA_HostsGroupName -eq 'Domain Controllers') {
    $gMSA_HostsGroup = Get-ADGroup -Identity 'Domain Controllers'
} else {
    $gMSA_HostsGroup = New-ADGroup -Name $gMSA_HostsGroupName -GroupScope DomainLocal -PassThru
    $gMSA_HostNames | ForEach-Object { Get-ADComputer -Identity $_ } |
        ForEach-Object { Add-ADGroupMember -Identity $gMSA_HostsGroupName -Members $_ }
}

# Create the gMSA:
New-ADServiceAccount -Name $gMSA_AccountName -DNSHostName "$gMSA_AccountName.$env:USERDNSDOMAIN" `
 -PrincipalsAllowedToRetrieveManagedPassword $gMSA_HostsGroup

必要な DSA アクセス許可を付与する

DSA には、Active Directory 内のすべてのオブジェクト (削除済みオブジェクト コンテナを含む) に対する読み取り専用のアクセス許可が必要です。

削除済みオブジェクト コンテナーに対する読み取り専用アクセス許可により、Defender for Identity は Active Directory からのユーザーの削除を検出できます。

gMSA アカウントを使用しているかどうかに関係なく、削除済みオブジェクト コンテナーに必要な読み取りアクセス許可を付与するには、次のコード サンプルを使用します。

ヒント

アクセス許可を付与する DSA がグループ管理サービス アカウント (gMSA) の場合は、まずセキュリティ グループを作成し、gMSA をメンバーとして追加し、そのグループにアクセス許可を追加する必要があります。 詳細については、「gMSA を使用して Defender for Identity のディレクトリ サービス アカウントを設定する」を参照してください。

# Declare the identity that you want to add read access to the deleted objects container:
$Identity = 'mdiSvc01'

# If the identity is a gMSA, first to create a group and add the gMSA to it:
$groupName = 'mdiUsr01Group'
$groupDescription = 'Members of this group are allowed to read the objects in the Deleted Objects container in AD'
if(Get-ADServiceAccount -Identity $Identity -ErrorAction SilentlyContinue) {
    $groupParams = @{
        Name           = $groupName
        SamAccountName = $groupName
        DisplayName    = $groupName
        GroupCategory  = 'Security'
        GroupScope     = 'Universal'
        Description    = $groupDescription
    }
    $group = New-ADGroup @groupParams -PassThru
    Add-ADGroupMember -Identity $group -Members ('{0}$' -f $Identity)
    $Identity = $group.Name
}

# Get the deleted objects container's distinguished name:
$distinguishedName = ([adsi]'').distinguishedName.Value
$deletedObjectsDN = 'CN=Deleted Objects,{0}' -f $distinguishedName

# Take ownership on the deleted objects container:
$params = @("$deletedObjectsDN", '/takeOwnership')
C:\Windows\System32\dsacls.exe $params

# Grant the 'List Contents' and 'Read Property' permissions to the user or group:
$params = @("$deletedObjectsDN", '/G', ('{0}\{1}:LCRP' -f ([adsi]'').name.Value, $Identity))
C:\Windows\System32\dsacls.exe $params
  
# To remove the permissions, uncomment the next 2 lines and run them instead of the two prior ones:
# $params = @("$deletedObjectsDN", '/R', ('{0}\{1}' -f ([adsi]'').name.Value, $Identity))
# C:\Windows\System32\dsacls.exe $params

詳細については、「Changing permissions on a deleted object container (削除されたオブジェクト コンテナーのアクセス許可を変更する)」を参照してください。

gMSA アカウントに必要な権限があることを確認する

Defender for Identity センサー サービスである、Azure Advanced Threat Protection センサーLocalService として実行され、DSA アカウントの偽装を実行します。 サービスとしてのログオン ポリシーが構成されているが、アクセス許可が gMSA アカウントに付与されていない場合、偽装は失敗します。 このような場合は、次の正常性の問題が発生します: ディレクトリ サービスのユーザー資格情報が正しくありません。

このアラートが表示された場合は、サービスとしてのログオン ポリシーが設定されているか確認することをお勧めします。 サービスとしてのログオン ポリシーを設定する必要がある場合、[グループ ポリシー] 設定または [ローカル セキュリティ ポリシー] で設定できます。

  • ローカル ポリシーを確認するにはsecpol.msc を実行し、[ローカル ポリシー] を選択します。 ユーザー権利の指定で、[サービスとしてログオン] ポリシー設定に進みます。 次に例を示します。

    [サービスとしてログオン] のプロパティのスクリーンショット。

    ポリシーが有効になっている場合は、サービスとしてログオンできるアカウントの一覧に gMSA アカウントを追加します。

  • グループ ポリシーで設定が構成されているかを確認するには: rsop.msc を実行し、[コンピューターの構成] -> [Windows 設定] -> [セキュリティ設定] -> [ローカル ポリシー] -> [ユーザー権限の指定] -> [サービスとしてログオン] ポリシーが選択されているかを確認します。 次に例を示します。

    グループ ポリシー管理エディターに表示された [サービスとしてログオン] のポリシーのスクリーンショット。

    この設定が構成されている場合は、グループ ポリシー管理エディターでサービスとしてログオンできるアカウントの一覧に gMSA アカウントを追加します。

Note

グループ ポリシー管理エディターを使用して [サービスとしてのログオン] 設定を構成する場合は、NT Service\All Services と作成した gMSA アカウントの両方を必ず追加します。

Microsoft Defender XDR でディレクトリ サービス アカウントを構成する

センサーを Active Directory ドメイン に接続するには、Microsoft Defender XDR でディレクトリ サービス アカウントを構成する必要があります。

  1. Microsoft Defender XDR で、[設定] > [ID] の順に進みます。 次に例を示します。

    Microsoft Defender XDR の [ID] 設定のスクリーンショット。

  2. ディレクトリ サービス アカウントを選択します。 どのアカウントがどのドメインに関連付けられているかが表示されます。 次に例を示します。

    [ディレクトリ サービス アカウント] ページのスクリーンショット。

  3. ディレクトリ サービス アカウントの資格情報を追加するには、[資格情報の追加] を選択し、前に作成したアカウントのアカウント名ドメインパスワードを入力します。 また、グループ管理サービス アカウント (gMSA) であるかを選択し、単一ラベル ドメインに属するかを選択することもできます。 次に例を示します。

    [資格情報の追加] ペインのスクリーンショット。

    フィールド Comments
    アカウント名 (必須) 読み取り専用 AD ユーザー名を入力します。 例: DefenderForIdentityUser

    - 標準の AD ユーザー アカウントか gMSA アカウントを使用する必要があります。
    - ユーザー名に UPN 形式を使用しないでください
    - gMSA を使用する場合、ユーザー文字列は $ 記号で終わる必要があります。 例: mdisvc$

    注意: 特定のユーザーに割り当てられたアカウントは使用しないことをお勧めします。
    パスワード (標準 AD ユーザー アカウントには必須) AD ユーザー アカウントの場合のみ、読み取り専用ユーザーの強力なパスワードを生成します。 (例: PePR!BZ&}Y54UpC3aB)。
    グループ管理サービス アカウント (gMSA アカウントには必須) gMSA アカウントのみの場合は、[グループ管理サービス アカウント] を選択します。
    ドメイン (必須) 読み取り専用ユーザーのドメインを入力します。 たとえば、「contoso.com」と入力します。

    ユーザーが属するドメインの完全な FQDN を入力することが重要です。 たとえば、ユーザーのアカウントがドメイン corp.contoso.com に属する場合、contoso.com ではなく、corp.contoso.com を入力する必要があります。

    詳細については、「単一ラベル ドメインについての Microsoft サポート」を参照してください。
  4. [保存] を選択します。

  5. (オプション) アカウントを選択すると、そのアカウントの設定を表示する詳細ウィンドウが開きます。 次に例を示します。

    アカウントの詳細ペインのスクリーンショット。

Note

この同じ手順を使用して、標準の Active Directory ユーザー アカウントのパスワードを変更できます。 gMSA アカウントにパスワードが設定されていません。

トラブルシューティング

詳細については、「センサーが gMSA 資格情報の取得に失敗しました」を参照してください。

次のステップ