Az SQL Server Host Guardian Service üzembe helyezése

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók Windows rendszeren

Ez a cikk bemutatja, hogyan helyezheti üzembe a Host Guardian Szolgáltatást SQL Server mint igazolási szolgáltatás. Mielőtt hozzákezd, mindenképpen olvassa el a Gazdagépőr Szolgáltatás igazolására vonatkozó tervet a cikkben, amely az előfeltételek teljes listáját és az architektúrával kapcsolatos útmutatást tartalmazza.

Jegyzet

A HGS rendszergazdája felelős a cikkben ismertetett lépések végrehajtásáért. Lásd: szerepkörök és felelősségek a HGSigazolásának konfigurálásakor.

1. lépés: Az első HGS-számítógép beállítása

A Gazdagép-őr szolgáltatás (HGS) klaszterszolgáltatásként fut egy vagy több számítógépen. Ebben a lépésben beállít egy új HGS-fürtöt az első számítógépen. Ha már rendelkezik HGS-fürttel, és további számítógépeket ad hozzá a nagyobb rendelkezésre állás érdekében, ugorjon a 2. lépésre: További HGS-számítógépek hozzáadása a fürthöz.

Mielőtt hozzákezd, győződjön meg arról, hogy a használt számítógép Windows Server 2019 vagy újabb verziót futtat – Standard vagy Datacenter kiadás, helyi rendszergazdai jogosultságokkal rendelkezik, és a számítógép még nem csatlakozik Active Directory-tartományhoz.

  1. Jelentkezzen be az első HGS-számítógépre helyi rendszergazdaként, és nyisson meg egy emelt szintű Windows PowerShell-konzolt. Futtassa a következő parancsot a Gazdagép-őrző szolgáltatás szerepkör telepítéséhez. A számítógép automatikusan újraindul a módosítások alkalmazásához.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. A HGS-számítógép újraindítása után futtassa a következő parancsokat egy emelt szintű Windows PowerShell-konzolon az új Active Directory-erdő telepítéséhez:

    # 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
    

    A HGS-számítógép újraindul az Active Directory-erdő konfigurálásának befejezéséhez. A következő bejelentkezéskor a rendszergazdai fiók tartományi rendszergazdai fiók lesz. Javasoljuk, hogy tekintse át az Active Directory Domain Services-műveletek dokumentációját az új erdő kezelésével és biztonságossá tételével kapcsolatos további információkért.

  3. Ezután beállítja a HGS-fürtöt, és telepíti az igazolási szolgáltatást az alábbi parancs futtatásával egy emelt szintű Windows PowerShell-konzolon:

    # 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 "contoso" here, a DNS record for "contoso.onmicrosoft.com" will be created for every HGS computer.
    Initialize-HgsAttestation -HgsServiceName 'hgs'
    

2. lépés: További HGS-számítógépek hozzáadása a klaszterhez

Az első HGS-számítógép és -fürt beállítása után további HGS-kiszolgálókat is hozzáadhat a magas rendelkezésre állás érdekében. Ha csak egy HGS-kiszolgálót állít be (például fejlesztői/tesztelési környezetben), ugorjon a 3. lépésre.

Az első HGS-számítógéphez hasonlóan győződjön meg arról, hogy a fürthöz csatlakozó számítógép a Windows Server 2019 vagy újabb verzióját futtatja, legyen az Standard vagy Datacenter kiadás, rendelkezzen helyi rendszergazdai jogosultságokkal, és a számítógép még ne csatlakozzon Active Directory-tartományhoz.

  1. Jelentkezzen be a számítógépre helyi rendszergazdaként, és nyisson meg egy emelt szintű Windows PowerShell-konzolt. Futtassa a következő parancsot a Gazdagép-őrző szolgáltatás szerepkör telepítéséhez. A számítógép automatikusan újraindul a módosítások alkalmazásához.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Ellenőrizze a dns-ügyfél konfigurációját a számítógépen, hogy meg tudja-e oldani a HGS-tartományt. A következő parancsnak ip-címet kell visszaadnia a HGS-kiszolgálóhoz. Ha nem tudja feloldani a HGS-tartományt, előfordulhat, hogy frissítenie kell a hálózati adapter DNS-kiszolgálójának adatait, hogy a HGS DNS-kiszolgálót használhassa a névfeloldáshoz.

    # 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. A számítógép újraindítása után futtassa a következő parancsot egy emelt szintű Windows PowerShell-konzolon, hogy csatlakozzon a számítógéphez az első HGS-kiszolgáló által létrehozott Active Directory-tartományhoz. A parancs futtatásához tartományi rendszergazdai hitelesítő adatokra lesz szüksége az AD-tartományhoz. A parancs befejeződésekor a számítógép újraindul, és a gép a HGS-tartomány Active Directory-tartományvezérlője lesz.

    # 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. Jelentkezzen be tartományi rendszergazdai hitelesítő adatokkal a számítógép újraindítása után. Nyisson meg egy emelt szintű Windows PowerShell-konzolt, és futtassa az alábbi parancsokat az igazolási szolgáltatás konfigurálásához. Mivel az igazolási szolgáltatás fürtérzékeny, a konfigurációját más fürttagoktól replikálja. A HGS-csomópontok igazolási szabályzatainak módosításai az összes többi csomópontra is érvényesek lesznek.

    # 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. Ismételje meg a 2. lépést a HGS-fürthöz hozzáadni kívánt összes számítógép esetében.

3. lépés: DNS-továbbító konfigurálása a HGS-fürthöz

A HGS saját DNS-kiszolgálót futtat, amely tartalmazza az igazolási szolgáltatás feloldásához szükséges névrekordokat. Az SQL Server-számítógépek nem fogják tudni feloldani ezeket a rekordokat, amíg nem konfigurálja a hálózat DNS-kiszolgálóját a kérések HGS DNS-kiszolgálókra való továbbítására.

A DNS-továbbítók konfigurálásának folyamata szállítóspecifikus, ezért javasoljuk, hogy forduljon a hálózati rendszergazdához a megfelelő útmutatásért az adott hálózathoz.

Ha a vállalati hálózathoz a Windows Server DNS Server szerepkört használja, a DNS-rendszergazda létrehozhat egy feltételes továbbítót a HGS-tartományhoz, hogy csak a HGS-tartományra vonatkozó kérések legyenek továbbítva. Ha például a HGS-kiszolgálók a "bastion.local" tartománynevet használják, és 172.16.10.20,172.16.10.21 és 172.16.10.22 IP-címmel rendelkeznek, a következő parancsot futtathatja a vállalati DNS-kiszolgálón egy feltételes továbbító konfigurálásához:

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

4. lépés: Az igazolási szolgáltatás konfigurálása

A HGS két igazolási módot támogat: TPM-igazolást az egyes SQL Server-számítógépek integritásának és identitásának titkosítási ellenőrzéséhez, valamint a gazdagépkulcs-igazolást az SQL Server-számítógép identitásának egyszerű ellenőrzéséhez. Ha még nem választott igazolási módot, tekintse meg az igazolási információkat az tervezési útmutatójában, további részleteket az egyes módok biztonsági garanciáiról és használati eseteiről.

Az ebben a szakaszban ismertetett lépések egy adott igazolási módhoz konfigurálják az alapvető igazolási szabályzatokat. A 4. lépésben állomásspecifikus információkat fog regisztrálni. Ha a jövőben módosítania kell az igazolási módot, ismételje meg a 3. és a 4. lépést a kívánt igazolási móddal.

Váltás TPM-igazolásra

A TPM-igazolás HGS-en való konfigurálásához szüksége lesz egy internet-hozzáféréssel rendelkező számítógépre és legalább egy TPM 2.0 rev 1.16-os chippel rendelkező SQL Server-számítógépre.

A HGS TPM mód használatára való konfigurálásához nyisson meg egy emelt szintű PowerShell-konzolt, és futtassa a következő parancsot:

Set-HgsServer -TrustTpm

A fürt összes HGS-számítógépe TPM-módot fog használni, amikor egy SQL Server-számítógép megpróbál hitelesíteni.

Mielőtt TPM-adatokat regisztrálhat az SQL Server-számítógépekről a HGS-ben, telepítenie kell a TPM-szállító(k) által kiadott jóváhagyási kulcs (EK) főtanúsítványait. Minden fizikai TPM egy egyedi ellenőrző kulccsal van konfigurálva a gyárban, amelyhez a gyártót azonosító ellenőrzőkulcs-tanúsítvány tartozik. Ez a tanúsítvány biztosítja, hogy a TPM eredeti legyen. A HGS ellenőrzi az ellenőrzőkulcs-tanúsítványt, amikor új TPM-et regisztrál a HGS-ben a tanúsítványlánc és a megbízható főtanúsítványok listájának összehasonlításával.

A Microsoft közzéteszi a HGS Megbízható TPM főtanúsítványok tárolójába importálható ismert TPM-szállítói főtanúsítványok listáját. Ha az SQL Server-számítógépek virtualizálva vannak, kapcsolatba kell lépnie a felhőszolgáltatóval vagy a virtualizálási platform gyártójával, hogy miként szerezheti be a virtuális TPM jóváhagyási kulcsához tartozó tanúsítványláncot.

A megbízható TPM főtanúsítvány-csomag fizikai TPM-ekhez való letöltéséhez hajtsa végre a következő lépéseket:

  1. Internet-hozzáféréssel rendelkező számítógépen töltse le a legújabb TPM főtanúsítvány-csomagot.

  2. Ellenőrizze a CAB fájl aláírását, hogy meggyőződjön annak hitelességéről.

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

    Figyelmeztetés

    Ne folytassa, ha az aláírás érvénytelen, és kérjen segítséget a Microsoft ügyfélszolgálatához.

  3. Bontsa ki a cab-fájlt egy új könyvtárba.

    mkdir .\TrustedTpmCertificates
    expand.exe -F:* ".\TrustedTpm.cab" ".\TrustedTpmCertificates"
    
  4. Az új címtárban az egyes TPM-szállítók címtárai láthatók. Törölheti a nem használt szállítók címtárait.

  5. Másolja a teljes "TrustedTpmCertificates" könyvtárat a HGS-kiszolgálóra.

  6. Nyisson meg egy emelt szintű PowerShell-konzolt a HGS-kiszolgálón, és futtassa a következő parancsot az összes TPM-gyökér- és köztes tanúsítvány importálásához:

    # Note: replace the path below with the correct location of the TrustedTpmCertificates folder on your HGS computer
    cd "C:\scratch\TrustedTpmCertificates"
    .\setup.cmd
    
  7. Ismételje meg az 5. és a 6. lépést minden HGS-számítógépen.

Amennyiben beszerezte az OEM-től, a felhőszolgáltatótól vagy a virtualizációs platform gyártójától a közbenső és gyökér hitelesítésszolgáltatói tanúsítványokat, közvetlenül importálhatja a tanúsítványokat a megfelelő helyi gép tanúsítványtárolójába: TrustedHgs_RootCA vagy TrustedHgs_IntermediateCA. Például a PowerShellben:

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

Váltás gazdagépkulcs-igazolásra

A gazdagépkulcs-igazolás használatához futtassa a következő parancsot egy HGS-kiszolgálón egy emelt szintű PowerShell-konzolon:

Set-HgsServer -TrustHostKey

A fürt összes HGS-számítógépe gazdakulcs-módot fog használni, amikor egy SQL Server-számítógép megpróbál igazolni.

5. lépés: A HGS HTTPS-kötés konfigurálása

Az alapértelmezett telepítésben a HGS csak HTTP-kötést (80-os portot) tesz elérhetővé. HTTPS-kötést (443-os port) konfigurálhat az SQL Server-számítógépek és a HGS közötti kommunikáció titkosításához. Javasoljuk, hogy a HGS összes éles példánya HASZNÁLJON HTTPS-kötést.

  1. Szerezzen be egy TLS-tanúsítványt a hitelesítésszolgáltatójától, az 1.3. lépésben megadott teljes HGS-szolgáltatásnevet használva tárgynévként. Ha nem tudja a szolgáltatás nevét, a Get-HgsServer futtatásával megkeresheti bármelyik HGS-számítógépen. Ha az SQL Server számítógépek más DNS-nevet használnak a HGS-fürt eléréséhez, alternatív DNS-neveket adhat hozzá a Subject Alternate Name listához (például, ha a HGS egy másik címmel rendelkező hálózati terheléselosztó mögött van).

  2. A HGS-számítógépen Set-HgsServer használatával engedélyezze a HTTPS-kötést, és adja meg az előző lépésben beszerzett TLS-tanúsítványt. Ha a tanúsítvány már telepítve van a helyi tanúsítványtárolóban lévő számítógépre, a következő paranccsal regisztrálja azt a HGS-ben:

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

    Ha a tanúsítványt (titkos kulccsal) jelszóval védett PFX-fájlba exportálta, regisztrálhatja a HGS-ben az alábbi parancs futtatásával:

    $PFXPassword = Read-Host -AsSecureString -Prompt "PFX Password"
    Set-HgsServer -Http -Https -HttpsCertificatePath "C:\path\to\hgs_tls.pfx" -HttpsCertificatePassword $PFXPassword
    
  3. Ismételje meg az 1. és a 2. lépést a fürt minden egyes HGS-számítógépéhez. A TLS-tanúsítványok nem replikálódnak automatikusan a HGS-csomópontok között. Emellett minden HGS-számítógép rendelkezhet saját egyedi TLS-tanúsítvánnyal, amennyiben a tulajdonos megegyezik a HGS szolgáltatás nevével.

6. lépés: A HGS igazolási URL-címének meghatározása és megosztása

HGS-rendszergazdaként meg kell osztania a HGS igazolási URL-címét az SQL Server-számítógép rendszergazdáival és a szervezet alkalmazásgazdaival. Az SQL Server-számítógépek rendszergazdáinak szüksége lesz az igazolási URL-címre annak ellenőrzéséhez, hogy az SQL Server-számítógépek képesek-e igazolni a HGS-t. Az alkalmazásgazdáknak az igazolási URL-címre lesz szükségük, hogy konfigurálják az alkalmazások SQL Serverhez való kapcsolódását.

Az igazolási URL-cím meghatározásához futtassa a következő parancsmagot.

Get-HGSServer

A parancs kimenete az alábbihoz hasonlóan fog kinézni:

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

A HGS igazolási URL-címe az AttestationUrl tulajdonság értéke.