GMSA - Group managed service accounts

Gruppen verwaltete Dienstkonten sind eine im Active Directory verankerte Technik, die verwaltete und server zuweisbare Dienstkonten zu verwalten.

Mit dieser Technik werden sichere Passwörter erzeugt und automatisch erneuert. Ausserdem werden die Dienstkonten nur den berechtigten Servern zugewiesen, was die Sicherheit nochmal erhöht. Diese Technik sollte ein integraler Bestandteil der Einrichtung eines sicheren Active Directory sein.

Damit diese Technologie funktioniert muss ein Kerberos Schlüssel in der Domain existieren. Diesen initial zu erstellen ist grundsätzlich notwendig. Das Anlegen dauert allerdings mehrere Stunden - um das zu beschleunigen (und nur auszuführen, wenn es notwendig ist) wird der Befehl wie folgt ausgeführt:

if (-not (Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyId)) {
  # Erstellen eines KDS Root Key
  Write-Host 'KDS Root Key wird erzeugt' -ForegroundColor Blue
  Add-KdsRootKey -EffectiveImmediately | Out-Null
} else {
  Write-Host 'KDS Root Key ist bereits vorhanden' -ForegroundColor Green
}

GMSA anlegen

Das Skript ist auf einem Domaincontroller oder über eine PSSession auf einem Domaincontroller auszuführen. Alternativ von einem Domain Client (Server oder Client) mit installierten Tools: Install-WindowsFeature RSAT-AD-PowerShell.

Import-Module ActiveDirectory
# Gruppe
$gsgmsa = 'gsg_gMSA_01'
# Service Account
$gmsa = 'gMSA_01'
# Domain
$domain = 'domain.local'
# Zielserver - mehrere mit Komma trennen
$server = 'srv-app-01$'
# Automatischer Passwortwechsel alle X Tage
$pwdays = 30

# Importieren des AD Moduls
$serviceAcccount = New-ADServiceAccount -Name $gmsa -PrincipalsAllowedToRetrieveManagedPassword $gsgmsa -Enabled:$true -DNSHostName "$gmsa.$domain" -SamAccountName $gmsa -ManagedPasswordIntervalInDays $pwdays -PassThru

# Bswp. Für SQL muss dem Account das Recht zum erstellen eines SPN gewährt werden
#dsacls $serviceAcccount.DistinguishedName /G "SELBST:RPWP;servicePrincipalName"

# Ausgeben der vorhandenen ServiceAccounts
#Get-ADServiceAccount -Filter *

GMSA auf einem Server lokal einrichten

Das Dienstkonto muss zuerst installiert werden, um auf einem Server verwendet werden zu können.

Install-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
Install-ADServiceAccount "gMSA_Veeam_Srv$"
Add-LocalGroupMember -Group "Administratoren" -Member "gMSA_01_Srv$"

Man kann das Dienstkonto wie jedes normale Konto verwenden, nachdem das Dienstkonto installiert wurde.