Aracılığıyla paylaş


Konak Koruyucu Hizmeti sorunlarını giderme

Bu makalede, korunan bir yapıda Konak Koruyucu Hizmeti (HGS) sunucusu dağıtılırken veya çalıştırılırken karşılaşılan yaygın sorunların çözümleri açıklanmaktadır.

Şunlar için geçerlidir: Windows Server 2022, Windows Server 2019, Windows Server 2016

Sorununuzun doğasından emin değilseniz, olası nedenleri daraltmak için önce HGS sunucularınızda ve Hyper-V konaklarınızda korumalı doku tanılamasını çalıştırmayı deneyin.

Sertifikalar

HGS' nin çalışması için yönetici tarafından yapılandırılmış şifreleme ve imzalama sertifikasının yanı sıra HGS tarafından yönetilen bir kanıtlama sertifikası da dahil olmak üzere çeşitli sertifikalar gerekir. Bu sertifikalar yanlış yapılandırılırsa, HGS korumalı VM'ler için anahtar koruyucuları doğrulamak veya kilidini açmak isteyen Hyper-V konaklarından gelen isteklere hizmet veremez. Aşağıdaki bölümlerde HGS'de yapılandırılan sertifikalarla ilgili yaygın sorunlar ele alınıyor.

Sertifika izinleri

HGS'nin, sertifika parmak iziyle HGS'ye eklenen şifreleme ve imzalama sertifikalarının hem genel hem de özel anahtarlarına erişebilmesi gerekir. Özellikle, HGS hizmetini çalıştıran grup tarafından yönetilen hizmet hesabının (gMSA) anahtarlara erişmesi gerekir. HGS tarafından kullanılan gMSA'yı bulmak için HGS sunucunuzdaki yükseltilmiş bir PowerShell isteminde aşağıdaki komutu çalıştırın:

(Get-IISAppPool -Name KeyProtection).ProcessModel.UserName

GMSA hesabına özel anahtarı kullanmak için nasıl erişim verebileceğiniz, anahtarın nerede depolandığına bağlıdır: yerel sertifika dosyası olarak makinede, donanım güvenlik modülünde (HSM) veya özel bir üçüncü taraf anahtar depolama sağlayıcısı kullanma.

Yazılım destekli özel anahtarlara erişim izni verme

Otomatik olarak imzalanan bir sertifika veya donanım güvenlik modülünde veya özel anahtar depolama sağlayıcısında depolanmayan bir sertifika yetkilisi tarafından verilen bir sertifika kullanıyorsanız, aşağıdaki adımları uygulayarak özel anahtar izinlerini değiştirebilirsiniz:

  1. Yerel sertifika yöneticisini (certlm.msc) açın.
  2. Kişisel>Sertifikalar'ı genişletin ve güncelleştirmek istediğiniz imzalama veya şifreleme sertifikasını bulun.
  3. Sertifikaya sağ tıklayın ve Tüm Görevler>Özel Anahtarları Yönet'i seçin.
  4. Sertifikanın özel anahtarına yeni bir kullanıcı erişimi vermek için Ekle'yi seçin.
  5. Nesne seçicide, daha önce bulunan HGS için gMSA hesap adını girin ve Tamam'ı seçin.
  6. gMSA'nın sertifikaya Okuma erişimi olduğundan emin olun.
  7. İzin penceresini kapatmak için Tamam'ı seçin.

HGS'yi Sunucu Çekirdeği üzerinde çalıştırıyorsanız veya sunucuyu uzaktan yönetiyorsanız, yerel sertifika yöneticisini kullanarak özel anahtarları yönetemezsiniz. Bunun yerine, PowerShell'deki izinleri yönetmenizi sağlayacak Korumalı Doku Araçları PowerShell modülünü indirmeniz gerekir.

  1. Sunucu Çekirdeği makinesinde yükseltilmiş bir PowerShell konsolu açın veya HGS üzerinde yerel yönetici izinlerine sahip bir hesapla PowerShell Uzaktan İletişimi'ni kullanın.
  2. Guarded Fabric Tools PowerShell modülünü yüklemek ve gMSA hesabına özel anahtara erişim vermek için aşağıdaki komutları çalıştırın.
$certificateThumbprint = '<ENTER CERTIFICATE THUMBPRINT HERE>'

# Install the Guarded Fabric Tools module, if necessary
Install-Module -Name GuardedFabricTools -Repository PSGallery

# Import the module into the current session
Import-Module -Name GuardedFabricTools

# Get the certificate object
$cert = Get-Item "Cert:\LocalMachine\My\$certificateThumbprint"

# Get the gMSA account name
$gMSA = (Get-IISAppPool -Name KeyProtection).ProcessModel.UserName

# Grant the gMSA read access to the certificate
$cert.Acl = $cert.Acl | Add-AccessRule $gMSA Read Allow

HSM veya özel sağlayıcı destekli özel anahtarlara erişim verme

Sertifikanızın özel anahtarları bir donanım güvenlik modülü (HSM) veya özel anahtar depolama sağlayıcısı (KSP) tarafından destekleniyorsa, izin modeli belirli yazılım satıcınıza bağlıdır. En iyi sonuçlar için, özel anahtar izinlerinin belirli bir cihazınız/yazılımınız için nasıl işleneceğini öğrenmek için satıcınızın belgelerine veya destek sitesine başvurun. Her durumda, HGS tarafından kullanılan gMSA, imzalama ve şifreleme işlemlerini gerçekleştirebilmesi için şifreleme, imzalama ve iletişim sertifikası özel anahtarları üzerinde okuma izinleri gerektirir.

Bazı donanım güvenlik modülleri, belirli kullanıcı hesaplarına özel anahtara erişim verilmesini desteklemez; bunun yerine, bilgisayar hesabının belirli bir anahtar kümesindeki tüm anahtarlara erişmesine izin verir. Bu tür cihazlar için, bilgisayara anahtarlarınıza erişim vermek genellikle yeterlidir ve HGS bu bağlantıdan yararlanabilir.

HSM'ler için ipuçları

Aşağıda, Microsoft ve iş ortaklarının deneyimlerini temel alan HSM destekli anahtarları HGS ile başarıyla kullanmanıza yardımcı olacak önerilen yapılandırma seçenekleri yer almaktadır. Bu ipuçları size kolaylık sağlamak için sağlanır ve okuma sırasında doğru olduğu garanti edilmediği gibi HSM üreticileri tarafından da onaylanmamıştır. Başka sorularınız varsa belirli bir cihazınızla ilgili doğru bilgiler için HSM üreticinize başvurun.

HSM Markası/Serisi Öneri
Gemalto SafeNet Sertifika isteği dosyasındaki Anahtar Kullanımı Özelliğinin 0xa0 olarak ayarlandığından emin olun; böylece sertifika imzalama ve şifreleme için kullanılabilir. Ayrıca, yerel sertifika yöneticisi aracını kullanarak gMSA hesabına özel anahtara okuma erişimi vermelisiniz (yukarıdaki adımlara bakın).
nCipher nShield Her HGS düğümünü imzalama ve şifreleme anahtarlarını içeren güvenlik dünyasına erişimi olduğundan emin olun. Ayrıca yerel sertifika yöneticisini kullanarak gMSA'ya özel anahtara okuma erişimi vermeniz gerekebilir (yukarıdaki adımlara bakın).
Utimaco CryptoServers Sertifika isteği dosyasındaki Anahtar Kullanımı Özelliğinin 0x13 olarak ayarlandığından emin olun ve sertifikanın şifreleme, şifre çözme ve imzalama için kullanılmasına izin verin.

Sertifika istekleri

Sertifikalarınızı ortak anahtar altyapısı (PKI) ortamında vermek için bir sertifika yetkilisi kullanıyorsanız, sertifika isteğinizin HGS'nin bu anahtarları kullanımına yönelik en düşük gereksinimleri içerdiğinden emin olmanız gerekir.

İmzalama sertifikaları

CSR özelliği Gerekli değer
Algoritma RSA
Key size En az 2048 bit
Anahtar kullanımı signature/sign/digitalsignature

Şifreleme sertifikaları

CSR özelliği Gerekli değer
Algoritma RSA
Key size En az 2048 bit
Anahtar kullanımı Şifreleme/Şifreleme/DataEncipherment

Active Directory Sertifika Hizmetleri şablonları

Sertifikaları oluşturmak için Active Directory Sertifika Hizmetleri (ADCS) sertifika şablonları kullanıyorsanız, aşağıdaki ayarlara sahip bir şablon kullanmanızı öneririz:

ADCS şablon özelliği Gerekli değer
Sağlayıcı kategorisi Anahtar depolama sağlayıcısı
Algoritma adı RSA
En küçük anahtar boyutu 2048
Purpose İmza ve şifreleme
Anahtar kullanımı uzantısı Dijital İmza, Anahtar Şifreleme, Veri Şifreleme ("Kullanıcı verilerinin şifrelenmesini izin ver")

Zaman kayma

Sunucunuzun zamanı korunan dokunuzdaki diğer HGS düğümlerinden veya Hyper-V konaklarından önemli ölçüde kaydıysa, kanıtlama imzalayan sertifika geçerliliğiyle ilgili sorunlarla karşılaşabilirsiniz. Kanıtlama imzalayan sertifikası HGS'de arka planda oluşturulur ve yenilenir ve Kanıtlama Hizmeti tarafından korunan konaklara verilen sistem durumu sertifikalarını imzalamak için kullanılır.

Kanıtlama imzalayan sertifikasını yenilemek için yükseltilmiş bir PowerShell isteminde aşağıdaki komutu çalıştırın.

Start-ScheduledTask -TaskPath \Microsoft\Windows\HGSServer -TaskName
AttestationSignerCertRenewalTask

Alternatif olarak, Görev Zamanlayıcı'yı (taskschd.msc) açarak, Görev Zamanlayıcı Kitaplığı>Microsoft>Windows>HGSServer'a gidip AttestationSignerCertRenewalTask adlı görevi çalıştırarak zamanlanmış görevi el ile çalıştırabilirsiniz.

Kanıtlama modlarını değiştirme

HGS'yi SET-HgsServer cmdlet'ini kullanarak TPM modundan Active Directory moduna geçirirseniz, HGS kümenizdeki her düğümün yeni kanıtlama modunu zorlamaya başlaması 10 dakika kadar sürebilir.

Bu normal davranıştır.

Tüm konakların yeni kanıtlama modunu başarıyla kullandığını doğrulayana kadar konaklara izin veren hiçbir ilkeyi önceki kanıtlama modundan kaldırmamanızı tavsiye edilir.

TPM'den AD moduna geçerken bilinen sorun

HGS kümenizi TPM modunda başlatıp daha sonra Active Directory moduna geçtiyseniz, HGS kümenizdeki diğer düğümlerin yeni kanıtlama moduna geçmesini engelleyen bilinen bir sorun vardır. Tüm HGS sunucularının doğru kanıtlama modunu zorunlu tutmasını sağlamak için HGS kümenizin her düğümünde komutunu çalıştırın Set-HgsServer -TrustActiveDirectory .

TPM modundan AD moduna geçiyorsanız ve küme başlangıçta AD modunda ayarlandıysa bu sorun geçerli değildir.

Get-HgsServer komutunu çalıştırarak HGS sunucunuzun kanıtlama modunu doğrulayabilirsiniz.

Bellek dökümü şifreleme ilkeleri

Bellek dökümü şifreleme ilkelerini yapılandırmaya çalışıyorsanız ve varsayılan HGS döküm ilkelerini (Hgs_NoDumps, Hgs_DumpEncryption ve Hgs_DumpEncryptionKey) veya döküm ilkesi cmdlet'ini (Add-HgsAttestationDumpPolicy) görmüyorsanız, büyük olasılıkla en son toplu güncelleştirmeyi yüklememişsinizdir.

Bunu düzeltmek için HGS sunucunuzu en son toplu Windows güncelleştirmesi ile güncelleştirin ve yeni kanıtlama ilkelerini etkinleştirin.

Yeni kanıtlama ilkelerini etkinleştirmeden önce Hyper-V konaklarınızı aynı toplu güncelleştirmeyle güncelleştirdiğinizden emin olun çünkü yeni döküm şifreleme özellikleri yüklü olmayan konaklar HGS ilkesi etkinleştirildikten sonra büyük olasılıkla kanıtlama başarısız olur.

Onay Anahtarı Sertifikası hata iletileri

Add-HgsAttestationTpmHost cmdlet'ini kullanarak bir konağı kaydettiğinizde, sağlanan platform tanımlayıcı dosyasından iki TPM tanımlayıcısı ayıklanır: onay anahtarı sertifikası (EKcert) ve genel onay anahtarı (EKpub). EKcert, TPM üreticisini tanımlayarak TPM'nin orijinal olduğuna ve normal tedarik zinciri aracılığıyla üretildiğine dair güvence sağlar. EKpub, belirli TPM'yi benzersiz olarak tanımlar ve HGS'nin korumalı VM'leri çalıştırmak için konak erişimi vermek için kullandığı ölçülerden biridir.

İki koşuldan biri doğruysa BIR TPM konağı kaydettiğinizde bir hata alırsınız:

  • Platform tanımlayıcı dosyası onay anahtarı sertifikası içermiyor.
  • Platform tanımlayıcı dosyası bir onay anahtarı sertifikası içeriyor, ancak bu sertifikaya sisteminizde güvenilmiyor.

Bazı TPM üreticileri, TPM'lerine EKcert içermez.

TPM'nizde bu durumdan şüpheleniyorsanız, OEM'nize TPM'lerinizin EKcert'i olmaması gerektiğini onaylayın ve konağı HGS'ye el ile kaydetmek için bayrağını kullanın -Force . TPM'nizin bir EKcert'i olması gerekiyorsa ancak platform tanımlayıcı dosyasında bir tane bulunamadıysa, konakta Get-PlatformIdentifier'ı çalıştırırken bir yönetici (yükseltilmiş) PowerShell konsolu kullandığınızdan emin olun.

EKcert'inize güvenilmediğini belirten bir hata aldıysanız , her HGS sunucusuna güvenilen TPM kök sertifikaları paketini yüklediğinizden ve TPM satıcınızın kök sertifikasının yerel makinenin "TrustedTPM_RootCA" deposunda bulunduğundan emin olun. Geçerli ara sertifikaların yerel makinedeki "TrustedTPM_IntermediateCA" deposuna da yüklenmesi gerekir. Kök ve ara sertifikaları yükledikten sonra başarıyla çalıştırabilmeniz Add-HgsAttestationTpmHost gerekir.

Grup yönetilen hizmet hesabı (gMSA) ayrıcalıkları

HGS hizmet hesabına (IIS'de Anahtar Koruma Hizmeti uygulama havuzu için kullanılan gMSA) Güvenlik denetimleri oluşturma ayrıcalığı (olarak SeAuditPrivilegeda bilinir) verilmelidir. Bu ayrıcalık yoksa, ilk HGS yapılandırması başarılı olur ve IIS başlatılır, ancak Anahtar Koruma Hizmeti işlevsel değildir ve HTTP hatası 500 ("/KeyProtection Uygulamasında Sunucu Hatası") döndürür. Uygulama olay günlüğünde aşağıdaki uyarı iletilerini de gözlemleyebilirsiniz.

System.ComponentModel.Win32Exception (0x80004005): A required privilege is not held by the client
at Microsoft.Windows.KpsServer.Common.Diagnostics.Auditing.NativeUtility.RegisterAuditSource(String pszSourceName, SafeAuditProviderHandle& phAuditProvider)
at Microsoft.Windows.KpsServer.Common.Diagnostics.Auditing.SecurityLog.RegisterAuditSource(String sourceName)

veya

Failed to register the security event source.
   at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
   at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
   at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
   at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
   at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

Failed to register the security event source.
   at Microsoft.Windows.KpsServer.Common.Diagnostics.Auditing.SecurityLog.RegisterAuditSource(String sourceName)
   at Microsoft.Windows.KpsServer.Common.Diagnostics.Auditing.SecurityLog.ReportAudit(EventLogEntryType eventType, UInt32 eventId, Object[] os)
   at Microsoft.Windows.KpsServer.KpsServerHttpApplication.Application_Start()

A required privilege is not held by the client
   at Microsoft.Windows.KpsServer.Common.Diagnostics.Auditing.NativeUtility.RegisterAuditSource(String pszSourceName, SafeAuditProviderHandle& phAuditProvider)
   at Microsoft.Windows.KpsServer.Common.Diagnostics.Auditing.SecurityLog.RegisterAuditSource(String sourceName)

Ayrıca, Anahtar Koruma Hizmeti cmdlet'lerinden hiçbirinin (örneğin, Get-HgsKeyProtectionCertificate) çalışmadığını ve bunun yerine hata döndürmediğini fark edebilirsiniz.

Bu sorunu çözmek için gMSA'ya "Güvenlik denetimleri oluştur" (SeAuditPrivilege) vermeniz gerekir. Bunu yapmak için HGS kümesinin her düğümünde Yerel güvenlik ilkesi SecPol.msc veya Grup İlkesi kullanabilirsiniz. Alternatif olarak, geçerli Güvenlik ilkesini dışarı aktarmak, yapılandırma dosyasında gerekli düzenlemeleri yapmak (düz metindir) ve sonra geri içeri aktarmak için SecEdit.exe aracını kullanabilirsiniz.

Not

Bu ayarı yapılandırırken, bir ayrıcalık için tanımlanan güvenlik ilkeleri listesi varsayılanları tamamen geçersiz kılar (birleştirmez). Bu nedenle, bu ilke ayarını tanımlarken, eklediğiniz gMSA'ya ek olarak bu ayrıcalığı (Ağ hizmeti ve Yerel hizmet) her iki varsayılan sahibi de eklediğinizden emin olun.