Active Directory'de Yönetilen Hizmet Hesaplarını (MSA ve gMSA) Kullanma
Yönetilen Hizmet Hesabı (MSA), hizmetleri, uygulamaları ve zamanlanmış görevleri güvenli bir şekilde çalıştırmak için kullanılabilen özel bir Active Directory hesabı türüdür. Temel fikir, bu hesapların şifresinin tamamen Active Directory tarafından yönetilmesidir. Onlar için otomatik olarak değişen (varsayılan olarak her 30 günde bir) 240 karakter uzunluğunda karmaşık bir parola oluşturulur. Kimlik doğrulama için yalnızca Kerberos kullanılır (NTLM güvenlik sorunu yoktur), etkileşimli oturum açmaya izin verilmez, parola kimse tarafından bilinmez ve yerel sistemde depolanmaz (mimikatz veya benzeri ile LSASS sistem sürecinden parolayı çıkaramazsınız) aletler). Bu şekilde, bir hizmeti veya katılımsız işleri başlatmak için AD'de bireysel hizmet kullanıcıları oluşturmanız ve parolalarını yönetmeniz gerekmez.
Yönetilen Hizmet Hesapları, Windows Server 2008 R2'de kullanılmaya başlandı (nesne türü
msDS-ManagedServiceAccount). Başlıca sınırlamaları, böyle bir hesabın yalnızca bir sunucuda kullanılabilmesidir (küme ve NLB hizmetlerinde kullanılamazlar). Bu nedenle, Windows Server 2012, Grup Tarafından Yönetilen Hizmet Hesaplarını/gMSA'yı (tür
msDS-GroupManagedServiceAccount). gMSA hesapları, birden fazla ana bilgisayarda aynı anda kullanılabilir.
Active Directory'deki sunucularda ve iş istasyonunda hizmet ve görevleri başlatmak için MSA ve gMSA kullanmanın özelliklerini ele alalım.
MSA/gMSA hizmet hesaplarını kullanma gereksinimleri:
| Managed Service Account | Group Managed Service Account | |
| AD domain and forest functional level | Windows Server 2008 R2 or newer | Windows Server 2012 or newer |
| KDC | Domain controller with Microsoft Key Distribution Service (KdsSvc) enabled | |
| PowerShell | To create and manage service AD accounts, you need to install the Active Directory module for Windows PowerShell | |
| .Net Framework | .NET Framework 3.5 or newer must be installed on the server | |
| Supported Windows versions | Windows 7/Windows Server 2008 R2 or newer | Windows Server 2012/Windows 8 or newer |
Anahtar Dağıtım Hizmeti (KDS) Anahtarını Oluşturun
Bir MSA/gMSA hesabı oluşturmaya başlamadan önce tek seferlik bir işlem gerçekleştirmeniz ve bir KDS kök anahtarı oluşturmanız gerekir. Bunu yapmak için, etki alanı denetleyicisinde aşağıdaki PowerShell komutunu çalıştırın (Microsoft Anahtar Dağıtım Hizmetlerinin yüklenmiş ve çalışır durumda olması gerekir):
Add-KdsRootKey -EffectiveImmediatelyBu durumda anahtar oluşturulur ve AD replikasyonu bittikten 10 saat sonra kullanılabilir hale gelir.
İpucu. Anahtarı test ortamında hemen kullanmak için şu komutu çalıştırabilirsiniz:
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))KDS kök anahtarının başarıyla oluşturulduğundan emin olun:
Get-KdsRootKeyKDS anahtarını kontrol etmek için komutu kullanın:
Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyIdActive Directory'de Yönetilen MSA Hesabı Nasıl Oluşturulur
AD'de MSA tarafından yönetilen yeni bir hesap oluşturmak için şu komutu kullanın:
New-ADServiceAccount -Name msaMunSrv1 -RestrictToSingleComputerVarsayılan olarak MSA ve gMSA, CN=Yönetilen Hizmet Hesapları kapsayıcısında oluşturulur, ancak Path parametresini kullanarak kuruluş birimini değiştirebilirsiniz.
MSA hizmet hesabınızı hedef bilgisayara bağlayın:
$Identity = Get-ADComputer -identity mun-srv01
Add-ADComputerServiceAccount -Identity $identity -ServiceAccount msaMunSrv1Bir hatırlatma olarak, MSA hesabını yalnızca bir AD ana bilgisayarında kullanabilirsiniz.
ADUC (Active Directory Kullanıcıları ve Bilgisayarları) konsolunu açın ve Yönetilen Hizmet Hesapları kapsayıcısında (OU) msDS-ManagedServiceAccount türünde yeni bir hesabın göründüğünden emin olun.
Bu AD kapsayıcısı varsayılan olarak gizlidir. Görmek için, ek bileşenin Görünüm menüsünde Gelişmiş Özellikler 'i etkinleştirin.
MSA hesap bilgilerini şu komutu kullanarak alabilirsiniz:
Get-ADServiceAccount msaMunSrv1Active Directory'de Grup Tarafından Yönetilen Hizmet Hesabı (gMSA) oluşturun
gMSA hesabını oluşturmadan önce, bir etki alanı güvenlik grubu oluşturun ve bu grup hizmet hesabı için parola kullanmasına izin verilecek sunucuları buna ekleyin. Grup oluşturmanın ve doldurmanın en kolay yolu PowerShell kullanmaktır:
New-ADGroup grMunSQL1 -path 'OU=Groups,OU=Munich,OU=DE,dc=a-d,DC=com' -GroupScope Global -PassThru -Verbose
Add-AdGroupMember -Identity grMunSQL1 -Members mun-sql01$, mun-sql02$, mun-sql03$Grup Tarafından Yönetilen Hizmet Hesabı (gMSA) oluşturmak için şu komutu kullanın:
New-ADServiceAccount -name gmsaMunSQL1 -DNSHostName gmsaMunSQL1.a-d.site -PrincipalsAllowedToRetrieveManagedPassword grMunSQL1 -verbose
gMSA hesabı, varsayılan olarak Yönetilen Hizmet Hesapları kuruluş biriminde de oluşturulur.
Grup Tarafından Yönetilen Hizmet Hesabını Windows'a Yükleme
MSA/gMSA hizmet hesaplarını hedef sunucularda veya iş istasyonlarında kullanmak için öncelikle Active Directory PowerShell modülünü kurmanız gerekir:
Add-WindowsFeature RSAT-AD-PowerShellMSA (gMSA) hizmet hesabını sunucuya kurun:
Install-ADServiceAccount -Identity gmsaMunSQL1Hizmet hesabının doğru yüklenip yüklenmediğini kontrol edin:
Test-ADServiceAccount gmsaMunSQL1Komut True değerini döndürürse, her şey doğru yapılandırılmıştır.
Komut dönerse
False, büyük olasılıkla MSA hesabı sunucuda yüklü değil veya bu bilgisayarın hesabı kullanma izni yok:
WARNING: Test failed for Managed Service Account gmsaMunSQL1. If standalone Managed Service Account, the account is linked to another computer object in the Active Directory. If group Managed Service Account, either this computer does not have permission to use the group MSA or this computer does not support all the Kerberos encryption types required for the gMSA.Hizmetlerinizin ve betiklerinizin MSA hizmet hesabı altında çalışabileceğini doğrulamak için standart RunAs'ı kullanamazsınız. Bunun yerine PsExec aracını kullanın (daha önce size NT Authority\System adına komut istemini çalıştırmak için psexec'i nasıl kullanacağınızı göstermiştik).
Komut istemini yönetici olarak açın;
Komutu çalıştırın:
PsExec64.exe -i -u a-d\gmsaMunSQL1$ -p ~ cmd.exeŞifreyi ~ ile değiştirin. Bu, şifrenin AD'den alınması gerektiği anlamına gelir.
Açılan cmd penceresinde,
whoamikonsolun gMSA hesabı altında çalıştığından emin olmak için komut;
Betiklerin, programların veya hizmetlerin bir Yönetilen Hizmet Hesabı altında doğru şekilde çalıştığını doğrulayın.
Artık MSA/gMSA kullanıcısı olarak çalışmak için gerekli Windows hizmetlerini, görev zamanlayıcı görevlerini, IIS havuzlarını vb. yapılandırmaya devam ediyor.
Yönetilen Hizmet Hesabı Altında Bir Windows Hizmeti Nasıl Çalıştırılır?
Artık gerekli Windows hizmetini bir MSA/gMSA hesabı altında çalışacak şekilde yapılandırabilirsiniz.
Hizmet yönetimi konsolunu açın (
services.msc);
Gerekli hizmetin özelliklerini açın ve "Oturum Aç" sekmesine gidin;
Bu hesap seçeneğini belirleyin ve MSA hesabının adını girin. Hesap adının sonuna $ sembolünü eklediğinizden emin olun (hesap şifresini girmeniz gerekmez);
MSA hizmet hesabına otomatik olarak Hizmet Olarak Oturum Açma izinleri verilecektir;
Değişiklikleri kaydettikten sonra hizmet yeniden başlatılmalıdır.
Karmaşık hizmetleri gMSA ile çalıştırmak için desteklenip desteklenmediğini görmek için belgelere bakın. Şu anda gMSA, SQL Server, IIS, AD LDS, Exchange Server'da desteklenmektedir.
Zamanlanmış Görevi Yönetilen Hizmet Hesabı/gMSA ile Çalıştırma
Windows Görev Zamanlayıcı'yı işleri gMSA hizmet hesabı altında çalıştıracak şekilde yapılandırabilirsiniz. gMSA hesabının şifreleri komut dosyalarında saklanmadığından, bunları şifrelemeniz veya korumanız gerekmediği için bu uygundur. Parola değiştiğinde, görevi yeniden yapılandırmanız gerekmez.
MSA/gMSA hesabına izin vermek için gerekli güvenlik grubuna eklemeniz yeterlidir. Örneğin, yerel Yöneticiler grubuna, Etki Alanı Yöneticilerine, DNS Yöneticilerine vb.
Görevi, PowerShell kullanarak gMSA hesabı olarak çalışacak şekilde yapılandırabilirsiniz. Örneğin, aşağıdaki betik, veritabanını yedeklemek için her gün saat 23:00'te bir PowerShell betiği çalıştıran yeni bir zamanlanmış görev oluşturacaktır:
$action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-file C:\PS\Scripts\DBBackup.ps1 -executionpolicy bypass -NoProfile"
$trigger = New-ScheduledTaskTrigger -At 23:00 -Daily
$principal = New-ScheduledTaskPrincipal -UserID a-d\gmsaMunSQL1$ -LogonType Password
Register-ScheduledTask DBBackup -Action $action -Trigger $trigger -Principal $principalİpucu. Zamanlanmış bir görevi çalıştırmak için, gMSA hesabına "Toplu iş olarak oturum aç" izni vermeniz gerekir.
'
-LogonType Password' bağımsız değişkeni, bu gMSA hesabı için parolanın etki alanı denetleyicisinden alınacağını belirtir.
PowerShell ile zamanlanmış görevleri yönetme hakkında daha fazla bilgi edinin.
kullanarak istediğiniz ayarlarla zamanlanmış bir iş de oluşturabilirsiniz.
taskschd.mscGUI. Ardından, yönetilen bir hizmet hesabı altında çalışacak şekilde schtasks.exe aracını kullanarak yeniden yapılandırabilirsiniz:
schtasks /Change /TN BackupDB /RU "a-d\gmsaMunSQL1$" /RP ""










