Sdílet prostřednictvím


Nasazení služby Strážce hostitele pro SQL Server

platí pro: SQL Server 2019 (15.x) a novější – jenom Windows

Tento článek popisuje, jak nasadit službu Strážce hostitele (HGS) jako službu ověřování pro SQL Server. Než začnete, ujistěte se, že si přečtete článek o plánu ověření služby Strážce hostitele, kde najdete úplný seznam požadavků a pokyny k architektuře.

Poznámka

Správce služby HGS zodpovídá za provádění všech kroků popsaných v tomto článku. Podívejte se na role a zodpovědnosti při konfiguraci ověřování pomocí služby HGS.

Krok 1: Nastavení prvního počítače HGS

Služba Strážce hostitele (HGS) běží jako clusterová služba na jednom nebo více počítačích. V tomto kroku nastavíte nový cluster HGS na prvním počítači. Pokud už máte cluster HGS a přidáváte do něj další počítače pro zajištění vysoké dostupnosti, přejděte ke kroku 2: Přidání dalších počítačů HGS do clusteru.

Než začnete, ujistěte se, že počítač, který používáte, používá Windows Server 2019 nebo novější – Standard nebo Datacenter Edition, máte oprávnění místního správce a počítač ještě není připojený k doméně služby Active Directory.

  1. Přihlaste se k prvnímu počítači HGS jako místní správce a otevřete konzolu Windows PowerShellu se zvýšenými oprávněními. Spuštěním následujícího příkazu nainstalujte roli služby Strážce hostitele. Počítač se automaticky restartuje, aby se změny použily.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Po restartování počítače HGS spusťte v konzole Windows PowerShellu se zvýšenými oprávněními následující příkazy, abyste nainstalovali novou doménovou strukturu služby Active Directory:

    # Select the name for your new Active Directory root domain.
    # Make sure the name does not conflict with, and is not subordinate to, any existing domains on your network.
    $HGSDomainName = 'bastion.local'
    
    # Specify a Directory Services Restore Mode password that can be used to recover your domain in safe mode.
    # This password is not, and will not change, your admin account password.
    # Save this password somewhere safe and include it in your disaster recovery plan.
    $DSRMPassword = Read-Host -AsSecureString -Prompt "Directory Services Restore Mode Password"
    
    Install-HgsServer -HgsDomainName $HgsDomainName -SafeModeAdministratorPassword $DSRMPassword -Restart
    

    Počítač HGS se restartuje znovu, aby se dokončila konfigurace doménové struktury služby Active Directory. Při příštím přihlášení se váš účet správce změní na účet správce domény. Další informace o správě a zabezpečení nové doménové struktury doporučujeme projít si dokumentaci k operacím služby Active Directory Domain Services.

  3. Dále nastavíte cluster HGS a nainstalujete službu ověření identity spuštěním následujícího příkazu v konzole Windows PowerShellu se zvýšenými oprávněními:

    # Note: the name you provide here will be shared by all HGS nodes and used to point your SQL Server computers to the HGS cluster.
    # For example, if you provide "attsvc" here, a DNS record for "attsvc.yourdomain.com" will be created for every HGS computer.
    Initialize-HgsAttestation -HgsServiceName 'hgs'
    

Krok 2: Přidání dalších počítačů HGS do clusteru

Po nastavení prvního počítače a clusteru HGS můžete přidat další servery HGS, které zajistí vysokou dostupnost. Pokud nastavujete jenom jeden server HGS (například v vývojovém/testovacím prostředí), můžete přeskočit na krok 3.

Stejně jako u prvního počítače HGS se ujistěte, že na počítači, ke kterém se připojujete, běží Windows Server 2019 nebo novější – Standard nebo Datacenter Edition, máte oprávnění místního správce a počítač ještě není připojený k doméně služby Active Directory.

  1. Přihlaste se k počítači jako místní správce a otevřete konzolu Windows PowerShellu se zvýšenými oprávněními. Spuštěním následujícího příkazu nainstalujte roli služby Strážce hostitele. Počítač se automaticky restartuje, aby se změny použily.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Zkontrolujte konfiguraci klienta DNS ve vašem počítači a ujistěte se, že dokáže přeložit doménu HGS. Následující příkaz by měl vrátit IP adresu vašeho serveru HGS. Pokud nemůžete vyřešit doménu HGS, možná budete muset aktualizovat údaje o serveru DNS na síťovém adaptéru tak, aby pro řešení názvů používal server DNS HGS.

    # Change 'bastion.local' to the domain name you specified in Step 1.2
    nslookup bastion.local
    
    # If it fails, use sconfig.exe, option 8, to set the first HGS computer as your preferred DNS server.
    
  3. Po restartování počítače spusťte v konzole Windows PowerShellu se zvýšenými oprávněními následující příkaz a připojte počítač k doméně služby Active Directory vytvořené prvním serverem HGS. Ke spuštění tohoto příkazu budete potřebovat přihlašovací údaje správce domény pro doménu AD. Po dokončení příkazu se počítač restartuje a počítač se stane řadičem domény služby Active Directory pro doménu HGS.

    # Provide the fully qualified HGS domain name
    $HGSDomainName = 'bastion.local'
    
    # Provide a domain administrator's credential for the HGS domain
    $DomainAdminCred = Get-Credential
    
    # Specify a Directory Services Restore Mode password that can be used to recover your domain in safe mode.
    # This password is not, and will not change, your admin account password.
    # Save this password somewhere safe and include it in your disaster recovery plan.
    $DSRMPassword = Read-Host -AsSecureString -Prompt "Directory Services Restore Mode Password"
    
    Install-HgsServer -HgsDomainName $HgsDomainName -HgsDomainCredential $DomainAdminCred -SafeModeAdministratorPassword $DSRMPassword -Restart
    
  4. Po restartování počítače se přihlaste pomocí přihlašovacích údajů správce domény. Otevřete konzolu Windows PowerShellu se zvýšenými oprávněními a spuštěním následujících příkazů nakonfigurujte službu ověřování identity. Vzhledem k tomu, že služba ověřování identity si uvědomuje prostředí clusteru, bude replikovat svou konfiguraci od ostatních členů clusteru. Změny zásad ověření identity na všech uzlech HGS se použijí na všechny ostatní uzly.

    # Provide the IP address of an existing, initialized HGS server
    # If you are using separate networks for cluster and application traffic, choose an IP address on the cluster network.
    # You can find the IP address of your HGS server by signing in and running "ipconfig /all"
    Initialize-HgsAttestation -HgsServerIPAddress '172.16.10.20'
    
  5. Opakujte krok 2 pro každý počítač, který chcete přidat do clusteru HGS.

Krok 3: Konfigurace služby předávání DNS do clusteru HGS

Služba HGS spouští vlastní server DNS, který obsahuje záznamy názvů potřebné k překladu služby ověření identity. Počítače s SQL Serverem nebudou moct tyto záznamy přeložit, dokud nenakonfigurujete server DNS vaší sítě tak, aby předával požadavky serverům DNS služby HGS.

Proces konfigurace serverů pro předávání DNS je specifický pro dodavatele, proto doporučujeme obrátit se na správce sítě a požádat o správné pokyny pro vaši konkrétní síť.

Pokud pro podnikovou síť používáte roli Dns Serveru Windows Serveru, může správce DNS vytvořit podmíněný předávací program do domény HGS, aby se předávaly jenom požadavky na doménu HGS. Pokud například servery HGS používají název domény bastion.local a mají IP adresy 172.16.10.20, 172.16.10.21 a 172.16.16.10.22, můžete na podnikovém serveru DNS spustit následující příkaz a nakonfigurovat podmíněný předávací nástroj:

# Tip: make sure to provide every HGS server's IP address
# If you use separate NICs for cluster and application traffic, use the application traffic NIC IP addresses here
Add-DnsServerConditionalForwarderZone -Name 'bastion.local' -ReplicationScope "Forest" -MasterServers "172.16.10.20", "172.16.10.21", "172.16.10.22"

Krok 4: Konfigurace služby ověřování

Služba HGS podporuje dva režimy ověření identity: ověření identity čipu TPM pro kryptografické ověřování integrity a identity každého počítače s SQL Serverem a ověření identity klíče hostitele pro jednoduché ověření identity počítače s SQL Serverem. Pokud jste ještě nevybrali režim ověření identity, podívejte se na informace o ověření identity v průvodci plánováním další podrobnosti o bezpečnostních zárukách a případech použití pro každý režim.

Kroky v této části nakonfigurují základní zásady ověření identity pro konkrétní režim ověření identity. V kroku 4 zaregistrujete informace specifické pro hostitele. Pokud v budoucnu potřebujete změnit režim ověření identity, opakujte krok 3 a 4 pomocí požadovaného režimu ověření identity.

Přepnutí na atestaci TPM

Pokud chcete nakonfigurovat ověření identity TPM na HGS, budete potřebovat počítač s přístupem k internetu a alespoň jeden počítač s SQL Serverem s čipem TPM 2.0 rev 1.16.

Pokud chcete nakonfigurovat HGS tak, aby používal režim TPM, otevřete konzolu PowerShellu se zvýšenými oprávněními a spusťte následující příkaz:

Set-HgsServer -TrustTpm

Všechny počítače HGS ve vašem clusteru nyní budou používat režim TPM, když se počítač se SQL Serverem pokusí provést ověření.

Než budete moct zaregistrovat informace o čipu TPM z počítačů s SQL Serverem v HGS, musíte nainstalovat kořenové certifikáty ověřovacího klíče (EK) od dodavatelů čipu TPM. Každý fyzický čip TPM je nakonfigurovaný v továrně s jedinečným ověřovacím klíčem, který je doprovázen certifikátem ověřovacího klíče, který identifikuje výrobce. Tento certifikát zajistí, že váš čip TPM je pravý. Služba HGS ověří certifikát ověřovacího klíče při registraci nového čipu TPM v HGS porovnáním řetězu certifikátů se seznamem důvěryhodných kořenových certifikátů.

Společnost Microsoft publikuje seznam známých dobrých kořenových certifikátů dodavatele TPM, které můžete importovat do úložiště důvěryhodných kořenových certifikátů TPM HGS. Pokud jsou vaše počítače s SQL Serverem virtualizované, budete muset kontaktovat poskytovatele cloudových služeb nebo dodavatele virtualizační platformy a získat informace o tom, jak získat řetěz certifikátů pro ověřovací klíč virtuálního čipu TPM.

Pokud chcete stáhnout důvěryhodný balíček kořenových certifikátů TPM od Microsoftu pro fyzické čipy TPM, proveďte následující kroky:

  1. Na počítači s přístupem k internetu stáhněte nejnovější balíček kořenových certifikátů TPM z https://go.microsoft.com/fwlink/?linkid=2097925

  2. Ověřte podpis souboru CAB a ujistěte se, že je autentický.

    # Note: replace the path below with the correct one to the file you downloaded in step 1
    Get-AuthenticodeSignature ".\TrustedTpm.cab"
    

    Varování

    Nepokračujte, pokud je podpis neplatný a požádejte o pomoc podporu Microsoftu.

  3. Rozbalte soubor CAB do nového adresáře.

    mkdir .\TrustedTpmCertificates
    expand.exe -F:* ".\TrustedTpm.cab" ".\TrustedTpmCertificates"
    
  4. V novém adresáři uvidíte adresáře pro každého dodavatele čipu TPM. Adresáře pro dodavatele, které nepoužíváte, můžete odstranit.

  5. Zkopírujte celý adresář TrustedTpmCertificates na server HGS.

  6. Otevřete konzolu PowerShellu se zvýšenými oprávněními na serveru HGS a spuštěním následujícího příkazu naimportujte všechny kořenové a zprostředkující certifikáty TPM:

    # Note: replace the path below with the correct location of the TrustedTpmCertificates folder on your HGS computer
    cd "C:\scratch\TrustedTpmCertificates"
    .\setup.cmd
    
  7. Opakujte kroky 5 a 6 pro každý počítač HGS.

Pokud jste od výrobce OEM, poskytovatele cloudových služeb nebo dodavatele virtualizační platformy získali certifikáty zprostředkující a kořenové certifikační autority, můžete certifikáty přímo importovat do příslušného úložiště certifikátů místního počítače: TrustedHgs_RootCA nebo TrustedHgs_IntermediateCA. Například v PowerShellu:

# Imports MyCustomTpmVendor_Root.cer to the local machine's "TrustedHgs_RootCA" store
Import-Certificate -FilePath ".\MyCustomTpmVendor_Root.cer" -CertStoreLocation "Cert:\LocalMachine\TrustedHgs_RootCA"

Přepnout na ověřování klíče hostitele

Pokud chcete použít ověření identity pomocí klíče hostitele, spusťte na serveru HGS v konzole PowerShellu se zvýšenými oprávněními následující příkaz:

Set-HgsServer -TrustHostKey

Všechny počítače HGS ve vašem clusteru nyní budou používat režim klíče hostitele, když se počítač se SQL Serverem pokusí provést atestaci.

Krok 5: Konfigurace vazby HTTPS služby HGS

Ve výchozí instalaci HGS zveřejňuje pouze vazbu HTTP (port 80). Můžete nakonfigurovat vazbu HTTPS (port 443) pro šifrování veškeré komunikace mezi počítači s SQL Serverem a HGS. Doporučujeme, aby všechny produkční instance služby HGS používaly vazbu HTTPS.

  1. Získejte od certifikační autority certifikát TLS s použitím plně kvalifikovaného názvu služby HGS z kroku 1.3 jako názvu subjektu. Pokud název služby neznáte, můžete ho najít spuštěním Get-HgsServer na libovolném počítači HGS. Pokud počítače s SQL Serverem používají jiný název DNS pro přístup ke clusteru HGS (například pokud je služba HGS za nástrojem pro vyrovnávání zatížení sítě s jinou adresou), můžete do seznamu alternativních názvů subjektu přidat alternativní názvy DNS.

  2. Na počítači HGS použijte Set-HgsServer k nastavení vazby HTTPS a zadejte certifikát TLS, který byl získán v předchozím kroku. Pokud je váš certifikát již v počítači v místním úložišti certifikátů nainstalovaný, pomocí následujícího příkazu ho zaregistrujte v HGS:

    # Note: you'll need to know the thumbprint for your certificate to configure HGS this way
    Set-HgsServer -Http -Https -HttpsCertificateThumbprint "54A043386555EB5118DB367CFE38776F82F4A181"
    

    Pokud jste certifikát exportovali (s privátním klíčem) do souboru PFX chráněného heslem, můžete ho zaregistrovat v HGS spuštěním následujícího příkazu:

    $PFXPassword = Read-Host -AsSecureString -Prompt "PFX Password"
    Set-HgsServer -Http -Https -HttpsCertificatePath "C:\path\to\hgs_tls.pfx" -HttpsCertificatePassword $PFXPassword
    
  3. Opakujte kroky 1 a 2 pro každý počítač HGS v clusteru. Certifikáty TLS se mezi uzly HGS automaticky nereplikují. Každý počítač HGS může mít navíc svůj vlastní jedinečný certifikát TLS, pokud předmět odpovídá názvu služby HGS.

Krok 6: Určení a sdílení adresy URL ověření služby HGS

Jako správce služby HGS potřebujete sdílet adresu URL ověření identity služby HGS se správci počítačů SQL Serveru i správci aplikací ve vaší organizaci. Správci počítačů s SQL Serverem budou potřebovat adresu URL ověření identity, aby ověřili, že počítače s SQL Serverem můžou testovat pomocí služby HGS. Správci aplikací budou potřebovat adresu URL ověření identity ke konfiguraci způsobu, jakým se aplikace připojují k SQL Serveru.

Pokud chcete zjistit adresu URL ověření identity, spusťte následující cmdlet.

Get-HGSServer

Výstup příkazu bude vypadat přibližně takto:

Name                           Value                                                                         
----                           -----                                                                         
AttestationOperationMode       HostKey                                                                       
AttestationUrl                 {http://hgs.bastion.local/Attestation}                                        
KeyProtectionUrl               {}         

Adresa URL pro ověření pro vaši službu HGS je hodnota vlastnosti AttestationUrl.

Další kroky