Sebarkan Layanan Wali Host untuk SQL Server

Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru - Hanya Windows

Artikel ini menjelaskan cara menyebarkan Host Guardian Service (HGS) sebagai layanan pengesahan untuk SQL Server. Sebelum memulai, pastikan untuk membaca artikel pengesahan Paket untuk Layanan Wali Host untuk daftar lengkap prasyarat dan panduan arsitektur.

Catatan

Administrator HGS bertanggung jawab untuk menjalankan semua langkah yang dijelaskan dalam artikel ini. Lihat Peran dan tanggung jawab saat mengonfigurasi pengesahan dengan HGS.

Langkah 1: Siapkan komputer HGS pertama

Host Guardian Service (HGS) berjalan sebagai layanan terkluster pada satu atau beberapa komputer. Dalam langkah ini, Anda akan menyiapkan kluster HGS baru di komputer pertama. Jika Anda sudah memiliki kluster HGS dan menambahkan komputer tambahan ke dalamnya untuk ketersediaan tinggi, lewati ke Langkah 2: Tambahkan lebih banyak komputer HGS ke kluster.

Sebelum memulai, pastikan komputer yang Anda gunakan menjalankan Windows Server 2019 atau yang lebih baru - edisi Standar atau Pusat Data, Anda memiliki hak istimewa administrator lokal, dan komputer belum bergabung ke domain Direktori Aktif.

  1. Masuk ke komputer HGS pertama sebagai administrator lokal dan buka konsol Windows PowerShell yang ditinggikan. Jalankan perintah berikut untuk menginstal peran Layanan Wali Host. Komputer akan otomatis dimulai ulang untuk menerapkan perubahan.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Setelah komputer HGS dimulai ulang, jalankan perintah berikut di konsol Windows PowerShell yang ditinggikan untuk menginstal forest Direktori Aktif baru:

    # 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
    

    Komputer HGS Anda akan dimulai ulang lagi untuk menyelesaikan konfigurasi forest Direktori Aktif. Saat berikutnya Anda masuk, akun administrator Anda akan menjadi akun admin domain. Sebaiknya tinjau dokumen Operasi Active Directory Domain Services untuk informasi selengkapnya tentang mengelola dan mengamankan forest baru Anda.

  3. Selanjutnya, Anda akan menyiapkan kluster HGS dan menginstal layanan pengesahan dengan menjalankan perintah berikut di konsol Windows PowerShell yang ditinggikan:

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

Langkah 2: Tambahkan lebih banyak komputer HGS ke kluster

Setelah komputer dan kluster HGS pertama Anda disiapkan, Anda dapat menambahkan server HGS tambahan untuk memberikan ketersediaan tinggi. Jika Anda hanya menyiapkan satu server HGS (di lingkungan dev/test, misalnya), Anda dapat melompat ke Langkah 3.

Seperti halnya komputer HGS pertama, pastikan komputer yang Anda gabungkan ke kluster menjalankan Windows Server 2019 atau yang lebih baru - edisi Standar atau Pusat Data, Anda memiliki hak istimewa administrator lokal, dan komputer belum bergabung ke domain Direktori Aktif.

  1. Masuk ke komputer sebagai administrator lokal dan buka konsol Windows PowerShell yang ditinggikan. Jalankan perintah berikut untuk menginstal peran Layanan Wali Host. Komputer akan dimulai ulang secara otomatis untuk menerapkan perubahan.

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Periksa konfigurasi klien DNS di komputer Anda untuk memastikannya dapat menyelesaikan domain HGS. Perintah berikut harus mengembalikan alamat IP untuk server HGS Anda. Jika Anda tidak dapat mengatasi domain HGS, Anda mungkin perlu memperbarui informasi server DNS di adaptor jaringan Anda untuk menggunakan server DNS HGS untuk resolusi nama.

    # 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. Setelah komputer dimulai ulang, jalankan perintah berikut di konsol Windows PowerShell yang ditinggikan untuk bergabung dengan komputer ke domain Direktori Aktif yang dibuat oleh server HGS pertama. Anda memerlukan kredensial administrator domain untuk domain AD untuk menjalankan perintah ini. Ketika perintah selesai, komputer akan dimulai ulang dan komputer akan menjadi pengontrol domain Direktori Aktif untuk domain 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. Masuk dengan kredensial administrator domain setelah komputer dimulai ulang. Buka konsol Windows PowerShell yang ditingkatkan dan jalankan perintah berikut untuk mengonfigurasi layanan pengesahan. Karena layanan pengesahan sadar kluster, layanan tersebut akan mereplikasi konfigurasinya dari anggota kluster lain. Perubahan yang dilakukan pada kebijakan pengesahan pada node HGS apa pun akan berlaku untuk semua node lainnya.

    # 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. Ulangi Langkah 2 untuk setiap komputer yang ingin Anda tambahkan ke kluster HGS Anda.

Langkah 3: Mengonfigurasi penerus DNS ke kluster HGS Anda

HGS menjalankan server DNS-nya sendiri, yang berisi catatan nama yang diperlukan untuk menyelesaikan layanan pengesahan. Komputer SQL Server Anda tidak akan dapat menyelesaikan rekaman ini sampai Anda mengonfigurasi server DNS jaringan Anda untuk meneruskan permintaan ke server DNS HGS.

Proses untuk mengonfigurasi penerus DNS khusus vendor, jadi sebaiknya hubungi administrator jaringan Anda untuk panduan yang benar untuk jaringan tertentu Anda.

Jika Anda menggunakan peran Server DNS Windows Server untuk jaringan perusahaan Anda, administrator DNS Anda dapat membuat penerus kondisional ke domain HGS sehingga hanya permintaan untuk domain HGS yang diteruskan. Misalnya, jika server HGS Anda menggunakan nama domain "bastion.local" dan memiliki alamat IP 172.16.10.20, 172.16.10.21, dan 172.16.10.22, Anda dapat menjalankan perintah berikut di server DNS perusahaan untuk mengonfigurasi penerus kondisional:

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

Langkah 4: Mengonfigurasi layanan pengesahan

HGS mendukung dua mode pengesahan: Pengesahan TPM untuk verifikasi kriptografi integritas dan identitas setiap komputer SQL Server dan pengesahan Kunci Host untuk verifikasi sederhana identitas komputer SQL Server. Jika Anda belum memilih mode pengesahan, lihat informasi pengesahan dalam panduan perencanaan untuk detail selengkapnya tentang jaminan keamanan dan kasus penggunaan untuk setiap mode.

Langkah-langkah di bagian ini akan mengonfigurasi kebijakan pengesahan dasar untuk mode pengesahan tertentu. Anda akan mendaftarkan informasi khusus host di Langkah 4. Jika Anda perlu mengubah mode pengesahan di masa mendatang, ulangi Langkah 3 dan 4 menggunakan mode pengesahan yang diinginkan.

Beralih ke pengesahan TPM

Untuk mengonfigurasi pengesahan TPM pada HGS, Anda memerlukan komputer dengan akses Internet dan setidaknya satu komputer SQL Server dengan chip TPM 2.0 rev 1.16.

Untuk mengonfigurasi HGS untuk menggunakan mode TPM, buka konsol PowerShell yang ditinggikan dan jalankan perintah berikut:

Set-HgsServer -TrustTpm

Semua komputer HGS di kluster Anda sekarang akan menggunakan mode TPM ketika komputer SQL Server mencoba membuktikan.

Sebelum Anda dapat mendaftarkan informasi TPM dari komputer SQL Server Anda dengan HGS, Anda perlu menginstal sertifikat akar kunci dukungan (EK) dari vendor TPM Anda. Setiap TPM fisik dikonfigurasi di pabrik dengan kunci dukungan unik yang disertai dengan sertifikat kunci dukungan yang mengidentifikasi produsen. Sertifikat ini memastikan bahwa TPM Anda asli. HGS memverifikasi sertifikat kunci dukungan saat Anda mendaftarkan TPM baru dengan HGS dengan membandingkan rantai sertifikat dengan daftar sertifikat akar tepercaya.

Microsoft menerbitkan daftar sertifikat akar vendor TPM yang diketahui bagus yang dapat Anda impor ke penyimpanan Sertifikat Akar TPM Tepercaya HGS. Jika komputer SQL Server Anda divirtualisasi, Anda harus menghubungi penyedia layanan cloud atau vendor platform virtualisasi Untuk informasi tentang cara mendapatkan rantai sertifikat untuk kunci dukungan TPM virtual Anda.

Untuk mengunduh paket sertifikat akar TPM tepercaya dari Microsoft untuk TPM fisik, selesaikan langkah-langkah berikut:

  1. Di komputer dengan akses internet, unduh paket sertifikat akar TPM terbaru dari https://go.microsoft.com/fwlink/?linkid=2097925

  2. Verifikasi tanda tangan file taksi untuk memastikan file tersebut autentik.

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

    Peringatan

    Jangan lanjutkan jika tanda tangan tidak valid dan hubungi dukungan Microsoft untuk bantuan.

  3. Perluas file taksi ke direktori baru.

    mkdir .\TrustedTpmCertificates
    expand.exe -F:* ".\TrustedTpm.cab" ".\TrustedTpmCertificates"
    
  4. Di direktori baru, Anda akan melihat direktori untuk setiap vendor TPM. Anda dapat menghapus direktori untuk vendor yang tidak Anda gunakan.

  5. Salin seluruh direktori "TrustedTpmCertificates" ke server HGS Anda.

  6. Buka konsol PowerShell yang ditinggikan di server HGS dan jalankan perintah berikut untuk mengimpor semua sertifikat akar dan menengah 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. Ulangi langkah 5 dan 6 untuk setiap komputer HGS.

Jika Anda telah mendapatkan sertifikat OS menengah dan akar dari OEM, penyedia layanan cloud, atau vendor platform virtualisasi, Anda dapat langsung mengimpor sertifikat ke penyimpanan sertifikat komputer lokal masing-masing: TrustedHgs_RootCA atau TrustedHgs_IntermediateCA. Misalnya, di PowerShell:

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

Beralih ke pengesahan kunci host

Untuk menggunakan pengesahan kunci host, jalankan perintah berikut pada server HGS di konsol PowerShell yang ditinggikan:

Set-HgsServer -TrustHostKey

Semua komputer HGS di kluster Anda sekarang akan menggunakan mode kunci host ketika komputer SQL Server mencoba membuktikan.

Langkah 5: Mengonfigurasi pengikatan HTTPS HGS

Dalam penginstalan default, HGS hanya mengekspos pengikatan HTTP (port 80). Anda dapat mengonfigurasi pengikatan HTTPS (port 443) untuk mengenkripsi semua komunikasi antara komputer SQL Server dan HGS. Disarankan agar semua instans produksi HGS menggunakan pengikatan HTTPS.

  1. Dapatkan sertifikat TLS dari otoritas sertifikat Anda, menggunakan nama layanan HGS yang sepenuhnya memenuhi syarat dari Langkah 1.3 sebagai nama subjek. Jika Anda tidak tahu nama layanan Anda, Anda dapat menemukannya dengan berjalan Get-HgsServer di komputer HGS apa pun. Anda dapat menambahkan nama DNS alternatif ke daftar Nama Alternatif Subjek jika komputer SQL Server Anda menggunakan nama DNS yang berbeda untuk menjangkau kluster HGS Anda (misalnya, jika HGS berada di belakang penyeimbang beban jaringan dengan alamat yang berbeda).

  2. Pada komputer HGS, gunakan Set-HgsServer untuk mengaktifkan pengikatan HTTPS dan menentukan sertifikat TLS yang diperoleh pada langkah sebelumnya. Jika sertifikat Anda sudah diinstal pada komputer di penyimpanan sertifikat lokal, gunakan perintah berikut untuk mendaftarkannya dengan HGS:

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

    Jika Anda telah mengekspor sertifikat Anda (dengan kunci privat) ke file PFX yang dilindungi kata sandi, Anda dapat mendaftarkannya dengan HGS dengan menjalankan perintah berikut:

    $PFXPassword = Read-Host -AsSecureString -Prompt "PFX Password"
    Set-HgsServer -Http -Https -HttpsCertificatePath "C:\path\to\hgs_tls.pfx" -HttpsCertificatePassword $PFXPassword
    
  3. Ulangi langkah 1 dan 2 untuk setiap komputer HGS dalam kluster. Sertifikat TLS tidak direplikasi secara otomatis antara simpul HGS. Selain itu, setiap komputer HGS dapat memiliki sertifikat TLS uniknya sendiri selama subjek cocok dengan nama layanan HGS.

Langkah 6: Tentukan dan bagikan URL pengesahan HGS

Sebagai administrator HGS, Anda perlu berbagi URL pengesahan HGS dengan administrator komputer SQL Server dan administrator aplikasi di organisasi Anda. Administrator komputer SQL Server akan memerlukan URL pengesahan untuk memverifikasi komputer SQL Server dapat membuktikan dengan HGS. Administrator aplikasi akan memerlukan URL pengesahan untuk mengonfigurasi cara aplikasi mereka terhubung ke SQL Server.

Untuk menentukan URL pengesahan, jalankan cmdlet berikut.

Get-HGSServer

Output perintah akan terlihat mirip dengan di bawah ini:

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

URL pengesahan untuk HGS Anda adalah nilai properti AttestationUrl.

Langkah berikutnya