Delen via


De Host Guardian-service voor SQL Server implementeren

Van toepassing op: SQL Server 2019 (15.x) en hoger - alleen Windows

In dit artikel wordt beschreven hoe u de Host Guardian-service (HGS) implementeert als een attestation-service voor SQL Server. Lees voordat u begint het Plan for Host Guardian Service Attestation artikel voor een volledige lijst met vereisten en architectuurrichtlijnen.

Notitie

De HGS-beheerder is verantwoordelijk voor het uitvoeren van alle stappen die in dit artikel worden beschreven. Zie Rollen en verantwoordelijkheden bij het configureren van attestation met HGS-.

Stap 1: De eerste HGS-computer instellen

De Host Guardian-service (HGS) wordt uitgevoerd als een geclusterde service op een of meer computers. In deze stap stelt u een nieuw HGS-cluster in op de eerste computer. Als u al een HGS-cluster hebt en er extra computers aan toevoegt voor hoge beschikbaarheid, gaat u verder met stap 2: meer HGS-computers toevoegen aan het cluster.

Voordat u begint, controleert u of de computer waarop u werkt Windows Server 2019 of later uitvoert - Standard of Datacenter edition - of u lokale beheerdersbevoegdheden hebt, en of de computer nog niet is toegevoegd aan een Active Directory-domein.

  1. Meld u als lokale beheerder aan bij de eerste HGS-computer en open een Verhoogde Windows PowerShell-console. Voer de volgende opdracht uit om de host guardian-servicerol te installeren. De computer wordt automatisch opnieuw opgestart om de wijzigingen toe te passen.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Nadat de HGS-computer opnieuw is opgestart, voert u de volgende opdrachten uit in een Windows PowerShell-console met verhoogde bevoegdheid om het nieuwe Active Directory-forest te installeren:

    # 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
    

    De HGS-computer wordt opnieuw opgestart om het configureren van het Active Directory-forest te voltooien. De volgende keer dat u zich aanmeldt, is uw beheerdersaccount een domeinbeheerdersaccount. Wij raden u aan de Active Directory Domain Services Operations-documentatie te bekijken voor meer informatie over het beheren en beveiligen van uw nieuwe forestomgeving.

  3. Vervolgens stelt u het HGS-cluster in en installeert u de attestation-service door de volgende opdracht uit te voeren in een Windows PowerShell-console met verhoogde bevoegdheid:

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

Stap 2: meer HGS-computers toevoegen aan het cluster

Zodra uw eerste HGS-computer en -cluster is ingesteld, kunt u extra HGS-servers toevoegen om hoge beschikbaarheid te bieden. Als u slechts één HGS-server instelt (bijvoorbeeld in een ontwikkel-/testomgeving), kunt u doorgaan naar stap 3.

Net als bij de eerste HGS-computer moet u ervoor zorgen dat de computer die u met het cluster verbindt, Windows Server 2019 of hoger draait, Standard of Datacenter edition gebruikt, u lokale beheerdersrechten hebt, en dat de computer nog niet is toegevoegd aan een Active Directory-domein.

  1. Meld u als lokale beheerder aan bij de computer en open een Windows PowerShell-console met verhoogde bevoegdheid. Voer de volgende opdracht uit om de host guardian-servicerol te installeren. De computer wordt automatisch opnieuw opgestart om de wijzigingen toe te passen.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Controleer de DNS-clientconfiguratie op uw computer om ervoor te zorgen dat het HGS-domein kan worden opgelost. Met de volgende opdracht moet een IP-adres voor uw HGS-server worden geretourneerd. Als u het HGS-domein niet kunt omzetten, moet u mogelijk de DNS-servergegevens op uw netwerkadapter bijwerken om de HGS DNS-server te gebruiken voor naamomzetting.

    # 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. Nadat de computer opnieuw is opgestart, voert u de volgende opdracht uit in een Windows PowerShell-console met verhoogde bevoegdheid om de computer toe te voegen aan het Active Directory-domein dat is gemaakt door de eerste HGS-server. U hebt domeinbeheerdersreferenties nodig voor het AD-domein om deze opdracht uit te voeren. Wanneer de opdracht is voltooid, wordt de computer opnieuw opgestart en wordt de computer een Active Directory-domeincontroller voor het HGS-domein.

    # 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. Meld u aan met de referenties van de domeinbeheerder nadat de computer opnieuw is opgestart. Open een Windows PowerShell-console met verhoogde bevoegdheid en voer de volgende opdrachten uit om de Attestation-service te configureren. Omdat de attestation-service clusterbewust is, wordt de configuratie van andere clusterleden gerepliceerd. Wijzigingen die zijn aangebracht in het attestation-beleid op elk HGS-knooppunt, zijn van toepassing op alle andere knooppunten.

    # 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. Herhaal stap 2 voor elke computer die u wilt toevoegen aan uw HGS-cluster.

Stap 3: Een DNS-doorstuurserver configureren voor uw HGS-cluster

HGS voert een eigen DNS-server uit, die de naamrecords bevat die nodig zijn om de attestation-service op te lossen. Uw SQL Server-computers kunnen deze records pas omzetten als u de DNS-server van uw netwerk configureert om aanvragen door te sturen naar de HGS DNS-servers.

Het proces voor het configureren van DNS-doorstuurservers is leverancierspecifiek, dus we raden u aan contact op te leggen met uw netwerkbeheerder voor de juiste richtlijnen voor uw specifieke netwerk.

Als u de Windows Server DNS-serverfunctie voor uw bedrijfsnetwerk gebruikt, kan uw DNS-beheerder een voorwaardelijke doorstuurserver maken naar het HGS-domein, zodat alleen aanvragen voor het HGS-domein worden doorgestuurd. Als uw HGS-servers bijvoorbeeld de domeinnaam bastion.local gebruiken en IP-adressen hebben van 172.16.10.20, 172.16.10.21 en 172.16.10.22, kunt u de volgende opdracht uitvoeren op de bedrijfs-DNS-server om een voorwaardelijke doorstuurserver te configureren:

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

Stap 4: De Attestation-service configureren

HGS ondersteunt twee attestation-modi: TPM-attestation voor cryptografische verificatie van de integriteit en identiteit van elke SQL Server-computer en hostsleutelverklaring voor eenvoudige verificatie van de identiteit van de SQL Server-computer. Als u nog geen attestation-modus hebt geselecteerd, bekijkt u de attestation-informatie in de planningshandleiding voor meer informatie over de beveiligingsgaranties en use cases voor elke modus.

Met de stappen in deze sectie configureert u het basisbeleid voor attestation voor een bepaalde attestation-modus. U registreert hostspecifieke informatie in stap 4. Als u de attestation-modus in de toekomst wilt wijzigen, herhaalt u stap 3 en 4 met behulp van de gewenste attestation-modus.

Overschakelen naar TPM-attestation

Als u TPM-attestation wilt configureren in HGS, hebt u een computer met internettoegang en ten minste één SQL Server-computer met een TPM 2.0 rev 1.16-chip nodig.

Als u HGS wilt configureren voor het gebruik van de TPM-modus, opent u een PowerShell-console met verhoogde bevoegdheid en voert u de volgende opdracht uit:

Set-HgsServer -TrustTpm

Alle HGS-computers in uw cluster gebruiken nu de TPM-modus wanneer een SQL Server-computer probeert te bevestigen.

Voordat u TPM-gegevens van uw SQL Server-computers met HGS kunt registreren, moet u de EK-basiscertificaten (goedkeuringssleutel) van uw TPM-leverancier(s) installeren. Elke fysieke TPM wordt geconfigureerd in de fabriek met een unieke goedkeuringssleutel die vergezeld gaat van een goedkeuringssleutelcertificaat dat de fabrikant identificeert. Dit certificaat zorgt ervoor dat uw TPM echt is. HGS controleert het goedkeuringssleutelcertificaat wanneer u een nieuwe TPM bij HGS registreert door de certificaatketen te vergelijken met een lijst met vertrouwde basiscertificaten.

Microsoft publiceert een lijst met bekende basiscertificaten van tpm-leveranciers die u kunt importeren in het archief met vertrouwde TPM-basiscertificaten van HGS. Als uw SQL Server-computers zijn gevirtualiseerd, moet u contact opnemen met uw cloudserviceprovider of virtualisatieplatformleverancier voor informatie over het verkrijgen van de certificaatketen voor de goedkeuringssleutel van uw virtuele TPM.

Voer de volgende stappen uit om het pakket met vertrouwde TPM-basiscertificaten van Microsoft voor fysieke TPM's te downloaden:

  1. Download op een computer met internettoegang het meest recente TPM-basiscertificatenpakket van https://go.microsoft.com/fwlink/?linkid=2097925

  2. Controleer de handtekening van het cab-bestand om ervoor te zorgen dat het authentiek is.

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

    Waarschuwing

    Ga niet verder als de handtekening ongeldig is en neem contact op met Microsoft Ondersteuning voor hulp.

  3. Vouw het cab-bestand uit naar een nieuwe map.

    mkdir .\TrustedTpmCertificates
    expand.exe -F:* ".\TrustedTpm.cab" ".\TrustedTpmCertificates"
    
  4. In de nieuwe map ziet u mappen voor elke TPM-leverancier. U kunt de mappen verwijderen voor leveranciers die u niet gebruikt.

  5. Kopieer de volledige map TrustedTpmCertificates naar uw HGS-server.

  6. Open een PowerShell-console met verhoogde bevoegdheid op de HGS-server en voer de volgende opdracht uit om alle TPM-basis- en tussenliggende certificaten te importeren:

    # Note: replace the path below with the correct location of the TrustedTpmCertificates folder on your HGS computer
    cd "C:\scratch\TrustedTpmCertificates"
    .\setup.cmd
    
  7. Herhaal stap 5 en 6 voor elke HGS-computer.

Als u tussenliggende en basis-CA-certificaten hebt verkregen van uw OEM- of cloudserviceprovider of virtualisatieplatformleverancier, kunt u de certificaten rechtstreeks importeren in het respectieve certificaatarchief voor lokale machines: TrustedHgs_RootCA of TrustedHgs_IntermediateCA. Bijvoorbeeld in PowerShell:

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

Overschakelen naar hostsleutelattestatie

Als u attestation voor hostsleutels wilt gebruiken, voert u de volgende opdracht uit op een HGS-server in een PowerShell-console met verhoogde bevoegdheid:

Set-HgsServer -TrustHostKey

Alle HGS-computers in uw cluster gebruiken nu de hostsleutelmodus wanneer een SQL Server-computer probeert te bevestigen.

Stap 5: de HGS HTTPS-binding configureren

In een standaardinstallatie maakt HGS alleen een HTTP-binding (poort 80) beschikbaar. U kunt een HTTPS-binding (poort 443) configureren om alle communicatie tussen SQL Server-computers en HGS te versleutelen. Het wordt aanbevolen dat alle productie-exemplaren van HGS een HTTPS-binding gebruiken.

  1. Haal een TLS-certificaat van uw certificeringsinstantie op met behulp van de volledig gekwalificeerde HGS-servicenaam uit stap 1.3 als onderwerpnaam. Als u uw servicenaam niet weet, kunt u deze vinden door Get-HgsServer uit te voeren op een HGS-computer. U kunt alternatieve DNS-namen toevoegen aan de lijst met alternatieve onderwerpenamen als uw SQL Server-computers een andere DNS-naam gebruiken om het HGS-cluster te bereiken (bijvoorbeeld als HGS zich achter een netwerk-loadbalancer met een ander adres bevindt).

  2. Gebruik op de HGS-computer Set-HgsServer om de HTTPS-binding in te schakelen en het TLS-certificaat op te geven dat u in de vorige stap hebt verkregen. Als uw certificaat al is geïnstalleerd op de computer in het lokale certificaatarchief, gebruikt u de volgende opdracht om het te registreren bij HGS:

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

    Als u uw certificaat (met een persoonlijke sleutel) hebt geëxporteerd naar een PFX-bestand dat met een wachtwoord is beveiligd, kunt u dit registreren bij HGS door de volgende opdracht uit te voeren:

    $PFXPassword = Read-Host -AsSecureString -Prompt "PFX Password"
    Set-HgsServer -Http -Https -HttpsCertificatePath "C:\path\to\hgs_tls.pfx" -HttpsCertificatePassword $PFXPassword
    
  3. Herhaal stap 1 en 2 voor elke HGS-computer in het cluster. TLS-certificaten worden niet automatisch gerepliceerd tussen HGS-knooppunten. Bovendien kan elke HGS-computer een eigen uniek TLS-certificaat hebben, zolang het onderwerp overeenkomt met de HGS-servicenaam.

Stap 6: de HGS-attestation-URL bepalen en delen

Als HGS-beheerder moet u de attestation-URL van HGS delen met zowel SQL Server-computerbeheerders als toepassingsbeheerders in uw organisatie. Beheerders van SQL Server-computers hebben de attestation-URL nodig om te controleren of SQL Server-computers kunnen worden bevestigd met HGS. Toepassingsbeheerders hebben de attestation-URL nodig om te configureren hoe hun apps verbinding maken met SQL Server.

Voer de volgende cmdlet uit om de attestation-URL te bepalen.

Get-HGSServer

De uitvoer van de opdracht ziet er ongeveer als volgt uit:

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

De attestatie-URL voor uw HGS is de waarde van de eigenschap AttestationUrl.

Volgende stappen