Dela via


Distribuera tjänsten Värdskydd för SQL Server

gäller för: SQL Server 2019 (15.x) och senare – endast Windows

I den här artikeln beskrivs hur du distribuerar Host Guardian Service (HGS) som en attesteringstjänst för SQL Server. Innan du börjar bör du läsa artikeln Plan för intygande av Host Guardian Service för en fullständig lista över krav och vägledning för arkitektur.

Not

HGS-administratören ansvarar för att utföra alla steg som beskrivs i den här artikeln. Se roller och ansvarsområden när du konfigurerar attestering med HGS.

Steg 1: Konfigurera den första HGS-datorn

Host Guardian-tjänsten (HGS) körs som en klustertjänst på en eller flera datorer. I det här steget konfigurerar du ett nytt HGS-kluster på den första datorn. Om du redan har ett HGS-kluster och lägger till ytterligare datorer för hög tillgänglighet går du vidare till steg 2: Lägg till fler HGS-datorer i klustret.

Innan du börjar kontrollerar du att datorn som du använder kör Windows Server 2019 eller senare – Standard eller Datacenter edition, du har lokala administratörsbehörigheter och att datorn inte redan är ansluten till en Active Directory-domän.

  1. Logga in på den första HGS-datorn som lokal administratör och öppna en upphöjd Windows PowerShell-konsol. Kör följande kommando för att installera rollen Värdskyddstjänst. Datorn startas om automatiskt för att tillämpa ändringarna.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. När HGS-datorn har startats om kör du följande kommandon i en upphöjd Windows PowerShell-konsol för att installera den nya Active Directory-skogen:

    # 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
    

    HGS-datorn startas om igen för att slutföra konfigurationen av Active Directory-skogen. Nästa gång du loggar in blir ditt administratörskonto ett domänadministratörskonto. Vi rekommenderar att du läser Active Directory Domain Services Operations-dokument för mer information om hur du hanterar och skyddar din nya skog.

  3. Därefter konfigurerar du HGS-klustret och installerar attesteringstjänsten genom att köra följande kommando i en upphöjd Windows PowerShell-konsol:

    # 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'
    

Steg 2: Lägg till fler HGS-datorer i klustret

När den första HGS-datorn och klustret har konfigurerats kan du lägga till ytterligare HGS-servrar för att ge hög tillgänglighet. Om du bara konfigurerar en HGS-server (till exempel i en utvecklings-/testmiljö) kan du gå vidare till steg 3.

Precis som med den första HGS-datorn kontrollerar du att datorn som du ansluter till klustret kör Windows Server 2019 eller senare – Standard eller Datacenter edition, du har lokal administratörsbehörighet och att datorn inte redan är ansluten till en Active Directory-domän.

  1. Logga in på datorn som lokal administratör och öppna en upphöjd Windows PowerShell-konsol. Kör följande kommando för att installera rollen Värdskyddstjänst. Datorn startas om automatiskt för att tillämpa ändringarna.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Kontrollera DNS-klientkonfigurationen på datorn för att se till att den kan matcha HGS-domänen. Följande kommando ska returnera en IP-adress för din HGS-server. Om du inte kan matcha HGS-domänen kan du behöva uppdatera DNS-serverinformationen på nätverkskortet för att använda HGS DNS-servern för namnmatchning.

    # 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. När datorn har startats om kör du följande kommando i en upphöjd Windows PowerShell-konsol för att ansluta datorn till Active Directory-domänen som skapades av den första HGS-servern. Du behöver autentiseringsuppgifter för domänadministratör för ATT AD-domänen ska kunna köra det här kommandot. När kommandot har slutförts startas datorn om och datorn blir en Active Directory-domänkontrollant för HGS-domänen.

    # 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. Logga in med autentiseringsuppgifter för domänadministratör när datorn har startats om. Öppna en upphöjd Windows PowerShell-konsol och kör följande kommandon för att konfigurera attesteringstjänsten. Eftersom attesteringstjänsten är klustermedveten replikeras konfigurationen från andra klustermedlemmar. Ändringar som görs i attesteringsprinciperna på alla HGS-noder gäller för alla andra noder.

    # 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. Upprepa steg 2 för varje dator som du vill lägga till i ditt HGS-kluster.

Steg 3: Konfigurera en DNS-vidarebefordrare till ditt HGS-kluster

HGS kör en egen DNS-server som innehåller de namnposter som behövs för att lösa attesteringstjänsten. Dina SQL Server-datorer kommer inte att kunna matcha dessa poster förrän du har konfigurerat nätverkets DNS-server för att vidarebefordra begäranden till HGS DNS-servrarna.

Processen för att konfigurera DNS-vidarebefordrare är leverantörsspecifik, så vi rekommenderar att du kontaktar nätverksadministratören för att få rätt vägledning för ditt specifika nätverk.

Om du använder Windows Server DNS Server-rollen för ditt företagsnätverk kan DNS-administratören skapa en villkorlig vidarebefordrare till HGS-domänen så att endast begäranden för HGS-domänen vidarebefordras. Om dina HGS-servrar till exempel använder domännamnet "bastion.local" och har IP-adresserna 172.16.10.20, 172.16.10.21 och 172.16.10.22 kan du köra följande kommando på företagets DNS-server för att konfigurera en villkorlig vidarebefordrare:

# 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"

Steg 4: Konfigurera attesteringstjänsten

HGS stöder två attesteringslägen: TPM-attestering för kryptografisk verifiering av integriteten och identiteten för varje SQL Server-dator och värdnyckelattestering för enkel verifiering av SQL Server-datorns identitet. Om du inte redan har valt ett attesteringsläge kan du läsa attesteringsinformationen i planeringsguide för mer information om säkerhetsgarantier och användningsfall för varje läge.

Stegen i det här avsnittet konfigurerar de grundläggande attesteringsprinciperna för ett visst attesteringsläge. Du registrerar värdspecifik information i steg 4. Om du behöver ändra attesteringsläget i framtiden upprepar du steg 3 och 4 med önskat attesteringsläge.

Växla till TPM-attestering

För att konfigurera TPM-attestering på HGS behöver du en dator med Internetåtkomst och minst en SQL Server-dator med ett TPM 2.0 rev 1.16-chip.

Om du vill konfigurera HGS att använda TPM-läge öppnar du en upphöjd PowerShell-konsol och kör följande kommando:

Set-HgsServer -TrustTpm

Alla HGS-datorer i klustret använder nu TPM-läge när en SQL Server-dator försöker attestera.

Innan du kan registrera TPM-information från dina SQL Server-datorer med HGS måste du installera bekräftelsenyckelns (EK) rotcertifikat från dina TPM-leverantörer. Varje fysisk TPM konfigureras i fabriken med en unik bekräftelsenyckel som åtföljs av ett bekräftelsenyckelcertifikat som identifierar tillverkaren. Det här certifikatet säkerställer att TPM är äkta. HGS verifierar certifikatet för endorsementnyckeln när du registrerar en ny TPM hos HGS genom att jämföra certifikatkedjan med en lista över betrodda rotcertifikat.

Microsoft publicerar en lista över kända TPM-leverantörsrotcertifikat som du kan importera till HGS Trusted TPM Root Certificates-arkivet. Om dina SQL Server-datorer virtualiseras måste du kontakta molntjänstleverantören eller virtualiseringsplattformsleverantören för information om hur du hämtar certifikatkedjan för din virtuella TPM-bekräftelsenyckel.

Utför följande steg för att ladda ned det betrodda TPM-rotcertifikatpaketet från Microsoft för fysiska TPM:er:

  1. På en dator med internetåtkomst laddar du ned det senaste TPM-rotcertifikatpaketet från https://go.microsoft.com/fwlink/?linkid=2097925

  2. Verifiera cab-filens signatur för att säkerställa att den är äkta.

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

    Varning

    Fortsätt inte om signaturen är ogiltig och kontakta Microsofts support om du behöver hjälp.

  3. Expandera cab-filen till en ny katalog.

    mkdir .\TrustedTpmCertificates
    expand.exe -F:* ".\TrustedTpm.cab" ".\TrustedTpmCertificates"
    
  4. I den nya katalogen visas kataloger för varje TPM-leverantör. Du kan ta bort katalogerna för leverantörer som du inte använder.

  5. Kopiera hela katalogen "TrustedTpmCertificates" till HGS-servern.

  6. Öppna en upphöjd PowerShell-konsol på HGS-servern och kör följande kommando för att importera alla TPM-rotcertifikat och mellanliggande certifikat:

    # Note: replace the path below with the correct location of the TrustedTpmCertificates folder on your HGS computer
    cd "C:\scratch\TrustedTpmCertificates"
    .\setup.cmd
    
  7. Upprepa steg 5 och 6 för varje HGS-dator.

Om du har fått mellanliggande certifikat och rotcertifikat från din OEM-tillverkare, molntjänstleverantör eller virtualiseringsplattformsleverantör kan du direkt importera certifikaten till respektive certifikatarkiv för den lokala datorn: TrustedHgs_RootCA eller TrustedHgs_IntermediateCA. Till exempel i PowerShell:

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

Växla till värdnyckelattestering

Om du vill använda värdnyckelattestering kör du följande kommando på en HGS-server i en upphöjd PowerShell-konsol:

Set-HgsServer -TrustHostKey

Alla HGS-datorer i klustret använder nu värdnyckelläge när en SQL Server-dator försöker intyga.

Steg 5: Konfigurera HGS HTTPS-bindningen

I en standardinstallation exponerar HGS endast en HTTP-bindning (port 80). Du kan konfigurera en HTTPS-bindning (port 443) för att kryptera all kommunikation mellan SQL Server-datorer och HGS. Vi rekommenderar att alla produktionsinstanser av HGS använder en HTTPS-bindning.

  1. Hämta ett TLS-certifikat från certifikatutfärdare med det fullständigt kvalificerade HGS-tjänstnamnet från steg 1.3 som ämnesnamn. Om du inte känner till tjänstnamnet kan du hitta det genom att köra Get-HgsServer på alla HGS-datorer. Du kan lägga till alternativa DNS-namn i listan för alternativa namn på mottagaren om dina SQL Server-datorer använder ett annat DNS-namn för att nå ditt HGS-kluster (till exempel om HGS är bakom en lastbalanserare med en annan adress).

  2. På HGS-datorn använder du Set-HgsServer- för att aktivera HTTPS-bindningen och ange det TLS-certifikat som erhölls i föregående steg. Om certifikatet redan är installerat på datorn i det lokala certifikatarkivet använder du följande kommando för att registrera det med HGS:

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

    Om du har exporterat certifikatet (med en privat nyckel) till en lösenordsskyddad PFX-fil kan du registrera det med HGS genom att köra följande kommando:

    $PFXPassword = Read-Host -AsSecureString -Prompt "PFX Password"
    Set-HgsServer -Http -Https -HttpsCertificatePath "C:\path\to\hgs_tls.pfx" -HttpsCertificatePassword $PFXPassword
    
  3. Upprepa steg 1 och 2 för varje HGS-dator i klustret. TLS-certifikat replikeras inte automatiskt mellan HGS-noder. Dessutom kan varje HGS-dator ha ett eget unikt TLS-certifikat så länge ämnet matchar HGS-tjänstens namn.

Steg 6: Fastställa och dela HGS-attesterings-URL:en

Som HGS-administratör behöver du dela attesterings-URL:en för HGS med både SQL Server-datoradministratörer och programadministratörer i din organisation. SQL Server-datorernas administratörer behöver attesterings-URL:en för att verifiera att SQL Server-datorer kan intyga med HGS. Programadministratörer behöver attesterings-URL:en för att konfigurera hur deras appar ansluter till SQL Server.

Kör följande cmdlet för att fastställa attesterings-URL:en.

Get-HGSServer

Kommandots utdata ser ut ungefär så här:

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

Attesterings-URL:en för din HGS är värdet för egenskapen AttestationUrl.

Nästa steg