gMSA を使用して Defender for Identity のディレクトリ サービス アカウントを構成する
この記事では、Defender for Identity DSA エントリとして使用する グループ管理サービス アカウント (gMSA) を作成する方法について説明します。
詳細については、「Microsoft Defender for Identityのディレクトリ サービス アカウント」を参照してください。
注:
マルチフォレストのマルチドメイン環境では、gMSA を使用する必要があるセンサーは、gMSA が作成されたドメインによって信頼されているコンピューター アカウントを持っている必要があります。 すべてのセンサーが gMSA のパスワードを取得し、クロスドメイン認証を実行できるように、すべてのセンサーのコンピューター アカウントを含むユニバーサル グループを各ドメインに作成することをお勧めします。 また、フォレストまたはドメインごとに一意の名前を持つ gMSA を作成することをお勧めします。
前提条件: gMSA アカウントのパスワードを取得するためのアクセス許可を付与する
gMSA アカウントを作成する前に、アカウントのパスワードを取得するためのアクセス許可を割り当てる方法を検討してください。
gMSA エントリを使用する場合、センサーは Active Directory から gMSA のパスワードを取得する必要があります。 これは、各センサーに割り当てるか、グループを使用して行うことができます。
単一フォレストの単一ドメイン展開で、AD FS/AD CS サーバーにセンサーをインストールする予定がない場合は、組み込みのドメイン コントローラー セキュリティ グループを使用できます。
複数のドメインを持つフォレストでは、1 つの DSA アカウントを使用する場合は、ユニバーサル グループを作成し、各ドメイン コントローラーと AD FS/AD CS サーバーをユニバーサル グループに追加することをお勧めします。
コンピューターが Kerberos チケットを受け取った後にコンピューター アカウントをユニバーサル グループに追加した場合、新しい Kerberos チケットを受け取るまで、gMSA のパスワードを取得できません。 Kerberos チケットには、チケットの発行時にエンティティがメンバーになっているグループの一覧があります。
このようなシナリオでは、次のいずれかの操作を行います。
新しい Kerberos チケットが発行されるまで待ちます。 Kerberos チケットは通常、10 時間有効です。
サーバーを再起動します。 サーバーが再起動されると、新しいグループ メンバーシップを使用して新しい Kerberos チケットが要求されます。
既存の Kerberos チケットを消去します。 これにより、ドメイン コントローラーは新しい Kerberos チケットを要求します。
チケットを消去するには、ドメイン コントローラーの管理者コマンド プロンプトから、次のコマンドを実行します。
klist purge -li 0x3e7
gMSA アカウントを作成する
このセクションでは、アカウントのパスワードを取得し、gMSA アカウントを作成し、アカウントを使用する準備ができていることをテストできる特定のグループを作成する方法について説明します。
注:
これまで gMSA アカウントを使用したことがない場合は、Active Directory 内のMicrosoft グループ キー配布サービス (KdsSvc) の新しいルート キーを生成する必要がある場合があります。 この手順は、フォレストごとに 1 回だけ必要です。
すぐに使用するために新しいルート キーを生成するには、次のコマンドを実行します。
Add-KdsRootKey -EffectiveImmediately
環境の変数値を使用して、次のコードを更新します。 次に、管理者として 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
詳細については、「 削除されたオブジェクト コンテナーに対するアクセス許可の変更」を参照してください。
gMSA アカウントに必要な権限があることを確認する
Defender for Identity センサー サービス である Azure Advanced Threat Protection センサーは 、LocalService として実行され、DSA アカウントの偽装を実行します。 サービス としてのログオン ポリシーが構成されていても、gMSA アカウントにアクセス許可が付与されていない場合、偽装は失敗します。 このような場合は、次の正常性の問題が発生します。 ディレクトリ サービスのユーザー資格情報が正しくありません。
このアラートが表示される場合は、 サービスとしてのログオン ポリシー が構成されているかどうかを確認することをお勧めします。 サービスとしてのログオン ポリシーを構成する必要がある場合は、グループ ポリシー設定またはローカル セキュリティ ポリシーで構成します。
ローカル ポリシーをチェックするには、
secpol.msc
を実行し、[ローカル ポリシー] を選択します。 [ ユーザー権利の割り当て]で、[サービスとしてのログオン] ポリシー設定に 移動します。 以下に例を示します。ポリシーが有効になっている場合は、サービスとしてログオンできるアカウントの一覧に gMSA アカウントを追加します。
グループ ポリシーで設定が構成されているかどうかをチェックするには:
rsop.msc
を実行し、[コンピューターの構成] -> [Windows 設定] -> [セキュリティ設定] -> [ローカル ポリシー] -> [ユーザー権利の割り当て] -> [サービス ポリシーとしてログオン] が選択されているかどうかを確認します。 以下に例を示します。設定が構成されている場合は、グループ ポリシー管理エディターでサービスとしてログオンできるアカウントの一覧に gMSA アカウントを追加します。
注:
グループ ポリシー管理エディターを使用してサービスとしてログオンする設定を構成する場合は、NT Service\All Services と作成した gMSA アカウントの両方を追加してください。
Microsoft Defender XDRでディレクトリ サービス アカウントを構成する
センサーを Active Directory ドメインに接続するには、Microsoft Defender XDRで Directory Service アカウントを構成する必要があります。
Microsoft Defender XDRで、[設定] > [ID] に移動します。 以下に例を示します。
[ ディレクトリ サービス アカウント] を選択します。 どのドメインに関連付けられているアカウントが表示されます。 以下に例を示します。
Directory Service アカウントの資格情報を追加するには、[ 資格情報の追加] を選択し、前に作成した アカウントのアカウント名、 ドメイン、 パスワード を入力します。 また、グループ管理サービス アカウント (gMSA) かどうか、および単一ラベル ドメインに属しているかどうかを選択することもできます。 以下に例を示します。
フィールド 注釈 アカウント名 (必須) 読み取り専用 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 サポート」を参照してください。[保存] を選択します。
(省略可能)アカウントを選択すると、そのアカウントの設定が表示された詳細ウィンドウが開きます。 以下に例を示します。
注:
この同じ手順を使用して、標準の Active Directory ユーザー アカウントのパスワードを変更できます。 gMSA アカウントにパスワードが設定されていません。
トラブルシューティング
詳細については、「 センサーが gMSA 資格情報を取得できませんでした」を参照してください。