Bagikan melalui


Mengelola Layanan Wali Host

Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016

Host Guardian Service (HGS) adalah pusat dari solusi fabric yang dijaga. Ini bertanggung jawab untuk memastikan bahwa host Hyper-V dalam fabric diketahui oleh hoster atau perusahaan dan menjalankan perangkat lunak tepercaya dan untuk mengelola kunci yang digunakan untuk memulai VM terlindungi. Ketika penyewa memutuskan untuk memercayai Anda untuk menghosting VM terlindungi mereka, mereka menempatkan kepercayaan mereka pada konfigurasi dan manajemen Layanan Wali Host Anda. Oleh karena itu, sangat penting untuk mengikuti praktik terbaik saat mengelola Layanan Wali Host untuk memastikan keamanan, ketersediaan, dan keandalan fabric yang dijaga. Panduan di bagian berikut membahas masalah operasional paling umum yang dihadapi administrator HGS.

Membatasi akses admin ke HGS

Karena sifat HGS yang sensitif terhadap keamanan, penting untuk memastikan bahwa administratornya adalah anggota organisasi Anda yang sangat tepercaya dan, idealnya, terpisah dari administrator sumber daya fabric Anda. Selain itu, disarankan agar Anda hanya mengelola HGS dari stasiun kerja yang aman menggunakan protokol komunikasi yang aman, seperti WinRM melalui HTTPS.

Pemisahan Tugas

Saat menyiapkan HGS, Anda diberi opsi untuk membuat forest Direktori Aktif yang terisolasi hanya untuk HGS atau untuk bergabung dengan HGS ke domain tepercaya yang ada. Keputusan ini, serta peran yang Anda tetapkan admin di organisasi Anda, menentukan batas kepercayaan untuk HGS. Siapa ever memiliki akses ke HGS, baik secara langsung sebagai admin atau tidak langsung sebagai admin sesuatu yang lain (misalnya Direktori Aktif) yang dapat memengaruhi HGS, memiliki kontrol atas fabric yang dijaga. Admin HGS memilih host Hyper-V mana yang berwenang untuk menjalankan VM terlindungi dan mengelola sertifikat yang diperlukan untuk memulai VM terlindungi. Penyerang atau admin jahat yang memiliki akses ke HGS dapat menggunakan kekuatan ini untuk mengotorisasi host yang disusupi untuk menjalankan VM terlindungi, memulai serangan penolakan layanan dengan menghapus materi kunci, dan banyak lagi.

Untuk menghindari risiko ini, sangat disarankan agar Anda membatasi tumpang tindih antara admin HGS Anda (termasuk domain tempat HGS bergabung) dan lingkungan Hyper-V. Dengan memastikan tidak ada admin yang memiliki akses ke kedua sistem, penyerang perlu membahayakan 2 akun yang berbeda dari 2 individu untuk menyelesaikan misinya untuk mengubah kebijakan HGS. Ini juga berarti bahwa domain dan admin perusahaan untuk dua lingkungan Direktori Aktif tidak boleh menjadi orang yang sama, juga tidak boleh HGS menggunakan forest Direktori Aktif yang sama dengan host Hyper-V Anda. Siapa pun yang dapat memberi diri mereka akses ke lebih banyak sumber daya menimbulkan risiko keamanan.

Menggunakan Administrasi Just Enough

HGS dilengkapi dengan peran Just Enough Administration (JEA) bawaan untuk membantu Anda mengelolanya dengan lebih aman. JEA membantu dengan memungkinkan Anda mendelegasikan tugas admin ke pengguna non-admin, yang berarti orang-orang yang mengelola kebijakan HGS sebenarnya tidak perlu menjadi admin seluruh komputer atau domain. JEA bekerja dengan membatasi perintah apa yang dapat dijalankan pengguna dalam sesi PowerShell dan menggunakan akun lokal sementara di belakang layar (unik untuk setiap sesi pengguna) untuk menjalankan perintah yang biasanya memerlukan elevasi.

HGS dikirim dengan 2 peran JEA yang telah dikonfigurasi sebelumnya:

  • Administrator HGS yang memungkinkan pengguna mengelola semua kebijakan HGS, termasuk mengotorisasi host baru untuk menjalankan VM terlindungi.
  • Peninjau HGS yang hanya memungkinkan pengguna untuk mengaudit kebijakan yang ada. Mereka tidak dapat membuat perubahan apa pun pada konfigurasi HGS.

Untuk menggunakan JEA, Pertama-tama Anda perlu membuat pengguna standar baru dan menjadikannya anggota admin HGS atau grup peninjau HGS. Jika Anda biasa Install-HgsServer menyiapkan forest baru untuk HGS, grup ini akan diberi nama "Administrator namalayanan" dan "Peninjau namalayanan", di mana nama layanan adalah nama jaringan kluster HGS. Jika Anda bergabung dengan HGS ke domain yang ada, Anda harus merujuk ke nama grup yang Anda tentukan di Initialize-HgsServer.

Membuat pengguna standar untuk peran administrator dan peninjau HGS

$hgsServiceName = (Get-ClusterResource HgsClusterResource | Get-ClusterParameter DnsName).Value
$adminGroup = $hgsServiceName + "Administrators"
$reviewerGroup = $hgsServiceName + "Reviewers"

New-ADUser -Name 'hgsadmin01' -AccountPassword (Read-Host -AsSecureString -Prompt 'HGS Admin Password') -ChangePasswordAtLogon $false -Enabled $true
Add-ADGroupMember -Identity $adminGroup -Members 'hgsadmin01'

New-ADUser -Name 'hgsreviewer01' -AccountPassword (Read-Host -AsSecureString -Prompt 'HGS Reviewer Password') -ChangePasswordAtLogon $false -Enabled $true
Add-ADGroupMember -Identity $reviewerGroup -Members 'hgsreviewer01'

Mengaudit kebijakan dengan peran peninjau

Pada komputer jarak jauh yang memiliki konektivitas jaringan ke HGS, jalankan perintah berikut di PowerShell untuk memasuki sesi JEA dengan kredensial peninjau. Penting untuk dicatat bahwa karena akun peninjau hanya pengguna standar, akun tersebut tidak dapat digunakan untuk remoting Windows PowerShell reguler, akses Desktop Jarak Jauh ke HGS, dll.

Enter-PSSession -ComputerName <hgsnode> -Credential '<hgsdomain>\hgsreviewer01' -ConfigurationName 'microsoft.windows.hgs'

Anda kemudian dapat memeriksa perintah mana yang diizinkan dalam sesi dengan Get-Command dan menjalankan perintah yang diizinkan untuk mengaudit konfigurasi. Dalam contoh di bawah ini, kami memeriksa kebijakan mana yang diaktifkan pada HGS.

Get-Command

Get-HgsAttestationPolicy

Ketik perintah Exit-PSSession atau aliasnya, exit, setelah Anda selesai bekerja dengan sesi JEA.

Menambahkan kebijakan baru ke HGS menggunakan peran administrator

Untuk benar-benar mengubah kebijakan, Anda perlu terhubung ke titik akhir JEA dengan identitas milik grup 'hgsAdministrators'. Dalam contoh di bawah ini, kami menunjukkan bagaimana Anda dapat menyalin kebijakan integritas kode baru ke HGS dan mendaftarkannya menggunakan JEA. Sintaks mungkin berbeda dari apa yang biasa Anda gunakan. Ini untuk mengakomodasi beberapa pembatasan di JEA seperti tidak memiliki akses ke sistem file lengkap.

$cipolicy = Get-Item "C:\temp\cipolicy.p7b"
$session = New-PSSession -ComputerName <hgsnode> -Credential '<hgsdomain>\hgsadmin01' -ConfigurationName 'microsoft.windows.hgs'
Copy-Item -Path $cipolicy -Destination 'User:' -ToSession $session

# Now that the file is copied, we enter the interactive session to register it with HGS
Enter-PSSession -Session $session
Add-HgsAttestationCiPolicy -Name 'New CI Policy via JEA' -Path 'User:\cipolicy.p7b'

# Confirm it was added successfully
Get-HgsAttestationPolicy -PolicyType CiPolicy

# Finally, remove the PSSession since it is no longer needed
Exit-PSSession
Remove-PSSession -Session $session

Memantau HGS

Sumber peristiwa dan penerusan

Peristiwa dari HGS akan muncul di log peristiwa Windows di bawah 2 sumber:

  • HostGuardianService-Attestation
  • HostGuardianService-KeyProtection

Anda dapat melihat peristiwa ini dengan membuka Pemantau Peristiwa dan menavigasi ke Microsoft-Windows-HostGuardianService-Attestation dan Microsoft-Windows-HostGuardianService-KeyProtection.

Dalam lingkungan yang besar, seringkali lebih disukai untuk meneruskan peristiwa ke Pengumpul Peristiwa Windows pusat untuk membuat analisis peristiwa lebih mudah. Untuk informasi selengkapnya, lihat dokumentasi Penerusan Peristiwa Windows.

Menggunakan Manajer Operasi Pusat Sistem

Anda juga dapat menggunakan System Center 2016 - Operations Manager untuk memantau HGS dan host yang dijaga. Paket manajemen fabric yang dijaga memiliki pemantauan peristiwa untuk memeriksa kesalahan konfigurasi umum yang dapat menyebabkan waktu henti pusat data, termasuk host yang tidak melewati pengesahan dan server HGS melaporkan kesalahan.

Untuk memulai, instal dan konfigurasikan SCOM 2016 dan unduh paket manajemen fabric yang dijaga. Panduan paket manajemen yang disertakan menjelaskan cara mengonfigurasi paket manajemen dan memahami cakupan monitornya.

Mencadangkan dan memulihkan HGS

Perencanaan pemulihan bencana

Saat menyusun rencana pemulihan bencana Anda, penting untuk mempertimbangkan persyaratan unik Layanan Wali Host dalam kain yang dijaga. Jika Anda kehilangan beberapa atau semua simpul HGS Anda, Anda mungkin menghadapi masalah ketersediaan langsung yang akan mencegah pengguna memulai VM terlindungi mereka. Dalam skenario di mana Anda kehilangan seluruh kluster HGS, Anda harus memiliki pencadangan lengkap konfigurasi HGS di tangan untuk memulihkan kluster HGS Anda dan melanjutkan operasi normal. Bagian ini mencakup langkah-langkah yang diperlukan untuk mempersiapkan skenario seperti itu.

Pertama, penting untuk memahami bagaimana dengan HGS penting untuk dicadangkan. HGS mempertahankan beberapa informasi yang membantunya menentukan host mana yang berwenang untuk menjalankan VM terlindungi. Drive ini termasuk:

  1. Pengidentifikasi keamanan Direktori Aktif untuk grup yang berisi host tepercaya (saat menggunakan pengesahan Direktori Aktif);
  2. Pengidentifikasi TPM unik untuk setiap host di lingkungan Anda;
  3. Kebijakan TPM untuk setiap konfigurasi unik host; Dan
  4. Kebijakan integritas kode yang menentukan perangkat lunak mana yang diizinkan untuk dijalankan pada host Anda.

Artefak pengesahan ini memerlukan koordinasi dengan admin fabric hosting Anda untuk mendapatkan, berpotensi menyulitkan untuk mendapatkan informasi ini lagi setelah bencana.

Selain itu, HGS memerlukan akses ke 2 sertifikat atau lebih yang digunakan untuk mengenkripsi dan menandatangani informasi yang diperlukan untuk memulai VM terlindungi (pelindung kunci). Sertifikat ini terkenal (digunakan oleh pemilik VM terlindung untuk mengotorisasi fabric Anda untuk menjalankan VM mereka) dan harus dipulihkan setelah bencana untuk pengalaman pemulihan yang mulus. Jika Anda tidak memulihkan HGS dengan sertifikat yang sama setelah bencana, setiap VM perlu diperbarui untuk mengotorisasi kunci baru Anda untuk mendekripsi informasi mereka. Untuk alasan keamanan, hanya pemilik VM yang dapat memperbarui konfigurasi VM untuk mengotorisasi kunci baru ini, yang berarti kegagalan untuk memulihkan kunci Anda setelah bencana akan mengakibatkan setiap pemilik VM perlu mengambil tindakan untuk membuat VM mereka berjalan lagi.

Bersiap untuk yang terburuk

Untuk mempersiapkan kehilangan HGS sepenuhnya, ada 2 langkah yang harus Anda lakukan:

  1. Mencadangkan kebijakan pengesahan HGS
  2. Mencadangkan kunci HGS

Panduan tentang cara melakukan kedua langkah ini disediakan di bagian Mencadangkan HGS .

Disarankan juga, tetapi tidak diperlukan, bahwa Anda mencadangkan daftar pengguna yang berwenang untuk mengelola HGS di domain Direktori Aktif atau Direktori Aktif itu sendiri.

Pencadangan harus diambil secara teratur untuk memastikan informasi sudah diperbarui dan disimpan dengan aman untuk menghindari perubahan atau pencurian.

Tidak disarankan untuk mencadangkan atau mencoba memulihkan seluruh citra sistem simpul HGS. Jika Anda kehilangan seluruh kluster, praktik terbaik adalah menyiapkan simpul HGS baru dan memulihkan hanya status HGS, bukan seluruh OS server.

Pulih dari hilangnya satu simpul

Jika Anda kehilangan satu atau beberapa simpul (tetapi tidak setiap node) di kluster HGS Anda, Anda cukup menambahkan simpul ke kluster Anda mengikuti panduan dalam panduan penyebaran. Kebijakan pengesahan akan disinkronkan secara otomatis, seperti halnya sertifikat apa pun yang disediakan untuk HGS sebagai file PFX dengan kata sandi yang menyertainya. Untuk sertifikat yang ditambahkan ke HGS menggunakan thumbprint (sertifikat yang tidak dapat diekspor dan didukung perangkat keras, umumnya), Anda harus memastikan setiap simpul baru memiliki akses ke kunci privat setiap sertifikat.

Memulihkan dari hilangnya seluruh kluster

Jika seluruh kluster HGS Anda tidak berfungsi dan Anda tidak dapat membuatnya kembali online, Anda harus memulihkan HGS dari cadangan. Memulihkan HGS dari cadangan melibatkan terlebih dahulu menyiapkan kluster HGS baru per panduan dalam panduan penyebaran. Sangat disarankan, tetapi tidak diperlukan, untuk menggunakan nama kluster yang sama saat menyiapkan lingkungan HGS pemulihan untuk membantu resolusi nama dari host. Menggunakan nama yang sama menghindari harus mengonfigurasi ulang host dengan pengesahan baru dan URL perlindungan kunci. Jika Anda memulihkan objek ke HGS dukungan domain Direktori Aktif, disarankan agar Anda menghapus objek yang mewakili kluster HGS, komputer, akun layanan, dan grup JEA sebelum menginisialisasi server HGS.

Setelah Anda menyiapkan node HGS pertama Anda (misalnya telah diinstal dan diinisialisasi), Anda akan mengikuti prosedur di bawah Memulihkan HGS dari cadangan untuk memulihkan kebijakan pengesahan dan bagian publik dari sertifikat perlindungan kunci. Anda harus memulihkan kunci privat untuk sertifikat Anda secara manual sesuai dengan panduan penyedia sertifikat Anda (misalnya mengimpor sertifikat di Windows, atau mengonfigurasi akses ke sertifikat yang didukung HSM). Setelah simpul pertama disiapkan, Anda dapat terus menginstal simpul tambahan ke kluster sampai Anda mencapai kapasitas dan ketahanan yang Anda inginkan.

Mencadangkan HGS

Administrator HGS harus bertanggung jawab untuk mencadangkan HGS secara teratur. Pencadangan lengkap akan berisi materi kunci sensitif yang harus diamankan dengan tepat. Jika entitas yang tidak tepercaya mendapatkan akses ke kunci ini, mereka dapat menggunakan materi tersebut untuk menyiapkan lingkungan HGS berbahaya untuk tujuan mengorbankan VM terlindungi.

Mencadangkan kebijakan pengesahan Untuk mencadangkan kebijakan pengesahan HGS, jalankan perintah berikut pada simpul server HGS yang berfungsi. Anda akan diminta untuk memberikan kata sandi. Kata sandi ini digunakan untuk mengenkripsi sertifikat apa pun yang ditambahkan ke HGS menggunakan file PFX (bukan thumbprint sertifikat).

Export-HgsServerState -Path C:\temp\HGSBackup.xml

Catatan

Jika Anda menggunakan pengesahan tepercaya admin, Anda harus mencadangkan keanggotaan secara terpisah dalam grup keamanan yang digunakan oleh HGS untuk mengotorisasi host yang dijaga. HGS hanya akan mencadangkan SID kelompok keamanan, bukan keanggotaan di dalamnya. Jika grup ini hilang selama bencana, Anda harus membuat ulang grup dan menambahkan setiap host yang dijaga lagi.

Mencadangkan sertifikat

Perintah Export-HgsServerState akan mencadangkan sertifikat berbasis PFX apa pun yang ditambahkan ke HGS pada saat perintah dijalankan. Jika Anda menambahkan sertifikat ke HGS menggunakan thumbprint (khas untuk sertifikat yang tidak dapat diekspor dan didukung perangkat keras), Anda harus mencadangkan kunci privat secara manual untuk sertifikat Anda. Untuk mengidentifikasi sertifikat mana yang terdaftar di HGS dan perlu dicadangkan secara manual, jalankan perintah PowerShell berikut pada simpul server HGS yang berfungsi.

Get-HgsKeyProtectionCertificate | Where-Object { $_.CertificateData.GetType().Name -eq 'CertificateReference' } | Format-Table Thumbprint, @{ Label = 'Subject'; Expression = { $_.CertificateData.Certificate.Subject } }

Untuk setiap sertifikat yang tercantum, Anda harus mencadangkan kunci privat secara manual. Jika Anda menggunakan sertifikat berbasis perangkat lunak yang tidak dapat diekspor, Anda harus menghubungi otoritas sertifikat Anda untuk memastikan mereka memiliki cadangan sertifikat Anda dan/atau dapat mengirimkannya kembali sesuai permintaan. Untuk sertifikat yang dibuat dan disimpan dalam modul keamanan perangkat keras, Anda harus berkonsultasi dengan dokumentasi untuk perangkat Anda untuk panduan tentang perencanaan pemulihan bencana.

Anda harus menyimpan cadangan sertifikat bersama cadangan kebijakan pengesahan Anda di lokasi yang aman sehingga kedua bagian dapat dipulihkan bersama-sama.

Konfigurasi tambahan untuk dicadangkan

Status server HGS yang dicadangkan tidak akan menyertakan nama kluster HGS Anda, informasi apa pun dari Direktori Aktif, atau sertifikat SSL apa pun yang digunakan untuk mengamankan komunikasi dengan API HGS. Pengaturan ini penting untuk konsistensi tetapi tidak penting untuk membuat kluster HGS Anda kembali online setelah bencana.

Untuk mengambil nama layanan HGS, jalankan Get-HgsServer dan catat nama datar dalam URL Pengesahan dan Perlindungan Kunci. Misalnya, jika URL Pengesahan adalah "https://hgs.contoso.com/Attestation", "hgs" adalah nama layanan HGS.

Domain Direktori Aktif yang digunakan oleh HGS harus dikelola seperti domain Direktori Aktif lainnya. Saat memulihkan HGS setelah bencana, Anda tidak perlu membuat ulang objek yang tepat yang ada di domain saat ini. Namun, itu akan mempermudah pemulihan jika Anda mencadangkan Direktori Aktif dan menyimpan daftar pengguna JEA yang berwenang untuk mengelola sistem serta keanggotaan grup keamanan apa pun yang digunakan oleh pengesahan tepercaya admin untuk mengotorisasi host yang dijaga.

Untuk mengidentifikasi thumbprint sertifikat SSL yang dikonfigurasi untuk HGS, jalankan perintah berikut di PowerShell. Anda kemudian dapat mencadangkan sertifikat SSL tersebut sesuai dengan instruksi penyedia sertifikat Anda.

Get-WebBinding -Protocol https | Select-Object certificateHash

Memulihkan HGS dari cadangan

Langkah-langkah berikut menjelaskan cara memulihkan pengaturan HGS dari cadangan. Langkah-langkah ini relevan dengan kedua situasi di mana Anda mencoba membatalkan perubahan yang dilakukan pada instans HGS yang sudah berjalan dan ketika Anda berdiri di kluster HGS baru setelah kehilangan kluster sebelumnya sepenuhnya.

Menyiapkan kluster HGS pengganti

Sebelum Anda dapat memulihkan HGS, Anda harus memiliki kluster HGS yang diinisialisasi yang dapat Anda pulihkan konfigurasinya. Jika Anda hanya mengimpor pengaturan yang secara tidak sengaja dihapus ke kluster yang ada (berjalan), Anda dapat melewati langkah ini. Jika Anda pulih dari hilangnya HGS sepenuhnya, Anda harus menginstal dan menginisialisasi setidaknya satu node HGS mengikuti panduan dalam panduan penyebaran.

Khususnya, Anda harus:

  1. Menyiapkan domain HGS atau bergabung dengan HGS ke domain yang sudah ada
  2. Inisialisasi server HGS menggunakan kunci yang ada atau sekumpulan kunci sementara. Anda dapat menghapus kunci sementara setelah mengimpor kunci aktual Anda dari file cadangan HGS.
  3. Impor pengaturan HGS dari cadangan Anda untuk memulihkan grup host tepercaya, kebijakan integritas kode, garis besar TPM, dan pengidentifikasi TPM

Tip

Kluster HGS baru tidak perlu menggunakan sertifikat, nama layanan, atau domain yang sama dengan instans HGS tempat file cadangan Anda diekspor.

Mengimpor pengaturan dari cadangan

Untuk memulihkan kebijakan pengesahan, sertifikat berbasis PFX, dan kunci publik sertifikat non-PFX ke simpul HGS Anda dari file cadangan, jalankan perintah berikut pada simpul server HGS yang diinisialisasi. Anda akan diminta untuk memasukkan kata sandi yang Anda tentukan saat membuat cadangan.

Import-HgsServerState -Path C:\Temp\HGSBackup.xml

Jika Anda hanya ingin mengimpor kebijakan pengesahan tepercaya admin atau kebijakan pengesahan tepercaya TPM, Anda dapat melakukannya dengan menentukan -ImportActiveDirectoryModeState bendera atau -ImportTpmModeState ke Import-HgsServerState.

Pastikan pembaruan kumulatif terbaru untuk Windows Server 2016 diinstal sebelum menjalankan Import-HgsServerState. Kegagalan untuk melakukannya dapat mengakibatkan kesalahan impor.

Catatan

Jika Anda memulihkan kebijakan pada simpul HGS yang sudah memiliki satu atau beberapa kebijakan yang diinstal, perintah impor akan menampilkan kesalahan untuk setiap kebijakan duplikat. Ini adalah perilaku yang diharapkan dan dapat diabaikan dengan aman dalam banyak kasus.

Menginstal ulang kunci privat untuk sertifikat

Jika salah satu sertifikat yang digunakan pada HGS tempat cadangan dibuat ditambahkan menggunakan thumbprint, hanya kunci publik sertifikat tersebut yang akan disertakan dalam file cadangan. Ini berarti Bahwa Anda harus menginstal dan/atau memberikan akses secara manual ke kunci privat untuk setiap sertifikat tersebut sebelum HGS dapat melayani permintaan dari host Hyper-V. Tindakan yang diperlukan untuk menyelesaikan langkah tersebut bervariasi tergantung pada bagaimana sertifikat Anda awalnya dikeluarkan. Untuk sertifikat yang didukung perangkat lunak yang dikeluarkan oleh otoritas sertifikat, Anda harus menghubungi CA Anda untuk mendapatkan kunci privat dan menginstalnya pada setiap simpul HGS sesuai instruksi mereka. Demikian pula, jika sertifikat Anda didukung perangkat keras, Anda harus berkonsultasi dengan dokumentasi vendor modul keamanan perangkat keras Anda untuk menginstal driver yang diperlukan pada setiap simpul HGS untuk terhubung ke HSM dan memberikan setiap komputer akses ke kunci privat.

Sebagai pengingat, sertifikat yang ditambahkan ke HGS menggunakan thumbprint memerlukan replikasi manual kunci privat ke setiap simpul. Anda harus mengulangi langkah ini pada setiap simpul tambahan yang Anda tambahkan ke kluster HGS yang dipulihkan.

Meninjau kebijakan pengesahan yang diimpor

Setelah Anda mengimpor pengaturan dari cadangan, disarankan untuk meninjau dengan cermat semua kebijakan yang diimpor menggunakan Get-HgsAttestationPolicy untuk memastikan hanya host yang Anda percayai untuk menjalankan VM terlindungi yang akan berhasil membuktikan. Jika Anda menemukan kebijakan apa pun yang tidak lagi cocok dengan postur keamanan, Anda dapat menonaktifkan atau menghapusnya.

Jalankan diagnostik untuk memeriksa status sistem

Setelah Anda selesai menyiapkan dan memulihkan status simpul HGS Anda, Anda harus menjalankan alat diagnostik HGS untuk memeriksa status sistem. Untuk melakukan ini, jalankan perintah berikut pada simpul HGS tempat Anda memulihkan konfigurasi:

Get-HgsTrace -RunDiagnostics

Jika "Hasil Keseluruhan" bukan "Pass", langkah tambahan diperlukan untuk menyelesaikan konfigurasi sistem. Periksa pesan yang dilaporkan dalam halus yang gagal untuk informasi lebih lanjut.

Patching HGS

Penting untuk menjaga simpul Layanan Wali Host Anda tetap terbarui dengan menginstal pembaruan kumulatif terbaru ketika keluar. Jika Anda menyiapkan node HGS baru, sangat disarankan agar Anda menginstal pembaruan yang tersedia sebelum menginstal peran HGS atau mengonfigurasinya. Ini akan memastikan fungsionalitas baru atau yang diubah akan segera berlaku.

Saat menambal kain yang dijaga, sangat disarankan agar Anda terlebih dahulu meningkatkan semua host Hyper-V sebelum meningkatkan HGS. Ini untuk memastikan bahwa setiap perubahan pada kebijakan pengesahan pada HGS dilakukan setelah host Hyper-V diperbarui untuk memberikan informasi yang diperlukan untuk mereka. Jika pembaruan akan mengubah perilaku kebijakan, pembaruan tersebut tidak akan diaktifkan secara otomatis untuk menghindari gangguan pada fabric Anda. Pembaruan tersebut mengharuskan Anda mengikuti panduan di bagian berikut untuk mengaktifkan kebijakan pengesahan baru atau yang diubah. Kami mendorong Anda untuk membaca catatan rilis untuk Windows Server dan pembaruan kumulatif apa pun yang Anda instal untuk memeriksa apakah pembaruan kebijakan diperlukan.

Pembaruan yang memerlukan aktivasi kebijakan

Jika pembaruan untuk HGS memperkenalkan atau secara signifikan mengubah perilaku kebijakan pengesahan, langkah tambahan diperlukan untuk mengaktifkan kebijakan yang diubah. Perubahan kebijakan hanya diberlakukan setelah mengekspor dan mengimpor status HGS. Anda hanya boleh mengaktifkan kebijakan baru atau yang diubah setelah menerapkan pembaruan kumulatif ke semua host dan semua simpul HGS di lingkungan Anda. Setelah setiap komputer diperbarui, jalankan perintah berikut pada simpul HGS apa pun untuk memicu proses peningkatan:

$password = Read-Host -AsSecureString -Prompt "Enter a temporary password"
Export-HgsServerState -Path .\temporaryExport.xml -Password $password
Import-HgsServerState -Path .\temporaryExport.xml -Password $password

Jika kebijakan baru diperkenalkan, kebijakan tersebut akan dinonaktifkan secara default. Untuk mengaktifkan kebijakan baru, pertama-tama temukan dalam daftar kebijakan Microsoft (diawali dengan 'HGS_') lalu aktifkan menggunakan perintah berikut:

Get-HgsAttestationPolicy

Enable-HgsAttestationPolicy -Name <Hgs_NewPolicyName>

Mengelola kebijakan pengesahan

HGS mempertahankan beberapa kebijakan pengesahan yang menentukan serangkaian persyaratan minimum yang harus dipenuhi host agar dianggap "sehat" dan diizinkan untuk menjalankan VM terlindungi. Beberapa kebijakan ini ditentukan oleh Microsoft, yang lain ditambahkan oleh Anda untuk menentukan kebijakan integritas kode yang diizinkan, garis besar TPM, dan host di lingkungan Anda. Pemeliharaan rutin kebijakan ini diperlukan untuk memastikan host dapat terus membuktikan dengan benar saat Anda memperbarui dan menggantinya, dan untuk memastikan host atau konfigurasi yang tidak tepercaya diblokir agar tidak berhasil membuktikan.

Untuk pengesahan tepercaya admin, hanya ada satu kebijakan yang menentukan apakah host sehat: keanggotaan dalam grup keamanan tepercaya yang diketahui. Pengesahan TPM lebih rumit, dan melibatkan berbagai kebijakan untuk mengukur kode dan konfigurasi sistem sebelum menentukan apakah itu sehat.

Satu HGS dapat dikonfigurasi dengan kebijakan Direktori Aktif dan TPM sekaligus, tetapi layanan hanya akan memeriksa kebijakan untuk mode saat ini yang dikonfigurasi ketika host mencoba membuktikan. Untuk memeriksa mode server HGS Anda, jalankan Get-HgsServer.

Kebijakan default

Untuk pengesahan tepercaya TPM, ada beberapa kebijakan bawaan yang dikonfigurasi pada HGS. Beberapa kebijakan ini "dikunci" - yang berarti bahwa kebijakan tersebut tidak dapat dinonaktifkan karena alasan keamanan. Tabel di bawah ini menjelaskan tujuan setiap kebijakan default.

Nama Kebijakan Tujuan
Hgs_SecureBootEnabled Mengharuskan host mengaktifkan Boot Aman. Ini diperlukan untuk mengukur biner startup dan pengaturan lain yang dikunci UEFI.
Hgs_UefiDebugDisabled Memastikan host tidak mengaktifkan debugger kernel. Debugger mode pengguna diblokir dengan kebijakan integritas kode.
Hgs_SecureBoot Pengaturan Kebijakan negatif untuk memastikan host cocok dengan setidaknya satu garis besar TPM (yang ditentukan admin).
Hgs_CiPolicy Kebijakan negatif untuk memastikan host menggunakan salah satu kebijakan CI yang ditentukan admin.
Hgs_HypervisorEnforcedCiPolicy Mengharuskan kebijakan integritas kode diberlakukan oleh hypervisor. Menonaktifkan kebijakan ini melemahkan perlindungan Anda terhadap serangan kebijakan integritas kode mode kernel.
Hgs_FullBoot Memastikan host tidak dilanjutkan dari tidur atau hibernasi. Host harus dimulai ulang atau dimatikan dengan benar untuk meneruskan kebijakan ini.
Hgs_VsmIdkPresent Mengharuskan keamanan berbasis virtualisasi berjalan pada host. IDK mewakili kunci yang diperlukan untuk mengenkripsi informasi yang dikirim kembali ke ruang memori aman host.
Hgs_PageFileEncryptionEnabled Memerlukan pagefiles untuk dienkripsi pada host. Menonaktifkan kebijakan ini dapat mengakibatkan paparan informasi jika pagefile yang tidak terenkripsi diperiksa untuk rahasia penyewa.
Hgs_BitLockerEnabled Mengharuskan BitLocker diaktifkan pada host Hyper-V. Kebijakan ini dinonaktifkan secara default karena alasan performa dan tidak disarankan untuk diaktifkan. Kebijakan ini tidak memiliki bantalan pada enkripsi VM terlindungi itu sendiri.
Hgs_IommuEnabled Mengharuskan host memiliki perangkat IOMMU yang digunakan untuk mencegah serangan akses memori langsung. Menonaktifkan kebijakan ini dan menggunakan host tanpa mengaktifkan IOMMU dapat mengekspos rahasia VM penyewa untuk mengarahkan serangan memori.
Hgs_NoHibernation Mengharuskan hibernasi dinonaktifkan pada host Hyper-V. Menonaktifkan kebijakan ini dapat memungkinkan host menyimpan memori VM terlindungi ke file hibernasi yang tidak terenkripsi.
Hgs_NoDumps Mengharuskan cadangan memori dinonaktifkan pada host Hyper-V. Jika Anda menonaktifkan kebijakan ini, disarankan agar Anda mengonfigurasi enkripsi cadangan untuk mencegah memori VM terlindungi disimpan ke file crash dump yang tidak terenkripsi.
Hgs_DumpEncryption Memerlukan cadangan memori, jika diaktifkan pada host Hyper-V, untuk dienkripsi dengan kunci enkripsi yang dipercaya oleh HGS. Kebijakan ini tidak berlaku jika cadangan tidak diaktifkan pada host. Jika kebijakan ini dan Hgs_NoDumps keduanya dinonaktifkan, memori VM terlindungi dapat disimpan ke file cadangan yang tidak terenkripsi.
Hgs_DumpEncryptionKey Kebijakan negatif untuk memastikan host yang dikonfigurasi untuk memungkinkan cadangan memori menggunakan kunci enkripsi file cadangan yang ditentukan admin yang diketahui oleh HGS. Kebijakan ini tidak berlaku ketika Hgs_DumpEncryption dinonaktifkan.

Mengotorisasi host baru yang dijaga

Untuk mengotorisasi host baru agar menjadi host yang dijaga (misalnya pengesahan berhasil), HGS harus mempercayai host dan (ketika dikonfigurasi untuk menggunakan pengesahan tepercaya TPM) perangkat lunak yang berjalan di atasnya. Langkah-langkah untuk mengotorisasi host baru berbeda berdasarkan mode pengesahan yang saat ini dikonfigurasi HGS. Untuk memeriksa mode pengesahan untuk fabric yang dijaga, jalankan Get-HgsServer pada node HGS apa pun.

Konfigurasi perangkat lunak

Pada host Hyper-V baru, pastikan bahwa edisi Pusat Data Windows Server 2016 diinstal. Windows Server 2016 Standard tidak dapat menjalankan VM terlindungi dalam fabric yang dijaga. Host mungkin diinstal Pengalaman Desktop atau Server Core.

Di server dengan pengalaman desktop dan Server Core, Anda perlu menginstal peran server Hyper-V dan Host Guardian Hyper-V Support:

Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart

Pengesahan tepercaya admin

Untuk mendaftarkan host baru di HGS saat menggunakan pengesahan tepercaya admin, Anda harus terlebih dahulu menambahkan host ke grup keamanan di domain tempat host bergabung. Biasanya, setiap domain akan memiliki satu grup keamanan untuk host yang dijaga. Jika Anda telah mendaftarkan grup tersebut dengan HGS, satu-satunya tindakan yang perlu Anda ambil adalah memulai ulang host untuk me-refresh keanggotaan grupnya.

Anda dapat memeriksa grup keamanan mana yang dipercaya oleh HGS dengan menjalankan perintah berikut:

Get-HgsAttestationHostGroup

Untuk mendaftarkan grup keamanan baru dengan HGS, pertama-tama tangkap pengidentifikasi keamanan (SID) grup di domain host dan daftarkan SID dengan HGS.

Add-HgsAttestationHostGroup -Name "Contoso Guarded Hosts" -Identifier "S-1-5-21-3623811015-3361044348-30300820-1013"

Instruksi tentang cara menyiapkan kepercayaan antara domain host dan HGS tersedia dalam panduan penyebaran.

Pengesahan tepercaya TPM

Ketika HGS dikonfigurasi dalam mode TPM, host harus melewati semua kebijakan terkunci dan kebijakan "diaktifkan" yang diawali dengan "Hgs_", serta setidaknya satu garis besar TPM, pengidentifikasi TPM, dan kebijakan integritas kode. Setiap kali Anda menambahkan host baru, Anda harus mendaftarkan pengidentifikasi TPM baru dengan HGS. Selama host menjalankan perangkat lunak yang sama (dan memiliki kebijakan integritas kode yang sama yang diterapkan) dan garis besar TPM sebagai host lain di lingkungan Anda, Anda tidak perlu menambahkan kebijakan atau garis besar CI baru.

Menambahkan pengidentifikasi TPM untuk host baru Pada host baru, jalankan perintah berikut untuk menangkap pengidentifikasi TPM. Pastikan untuk menentukan nama unik untuk host yang akan membantu Anda mencarinya di HGS. Anda akan memerlukan informasi ini jika Anda menonaktifkan host atau ingin mencegahnya menjalankan VM terlindungi di HGS.

(Get-PlatformIdentifier -Name "Host01").InnerXml | Out-File C:\temp\host01.xml -Encoding UTF8

Salin file ini ke server HGS Anda, lalu jalankan perintah berikut untuk mendaftarkan host dengan HGS.

Add-HgsAttestationTpmHost -Name 'Host01' -Path C:\temp\host01.xml

Menambahkan garis besar TPM baru Jika host baru menjalankan konfigurasi perangkat keras atau firmware baru untuk lingkungan Anda, Anda mungkin perlu mengambil garis besar TPM baru. Untuk melakukan ini, jalankan perintah berikut pada host.

Get-HgsAttestationBaselinePolicy -Path 'C:\temp\hardwareConfig01.tcglog'

Catatan

Jika Anda menerima kesalahan yang mengatakan bahwa host Anda gagal validasi dan tidak akan berhasil membuktikan, jangan khawatir. Ini adalah pemeriksaan prasyarat untuk memastikan host Anda dapat menjalankan VM terlindungi, dan kemungkinan berarti Anda belum menerapkan kebijakan integritas kode atau pengaturan lain yang diperlukan. Baca pesan kesalahan, buat perubahan apa pun yang disarankan olehnya, lalu coba lagi. Atau, Anda dapat melewati validasi saat ini dengan menambahkan -SkipValidation bendera ke perintah .

Salin garis besar TPM ke server HGS Anda, lalu daftarkan dengan perintah berikut. Kami mendorong Anda untuk menggunakan konvensi penamaan yang membantu Anda memahami konfigurasi perangkat keras dan firmware dari kelas host Hyper-V ini.

Add-HgsAttestationTpmPolicy -Name 'HardwareConfig01' -Path 'C:\temp\hardwareConfig01.tcglog'

Menambahkan kebijakan integritas kode baru Jika Anda telah mengubah kebijakan integritas kode yang berjalan pada host Hyper-V Anda, Anda harus mendaftarkan kebijakan baru dengan HGS sebelum host tersebut berhasil membuktikan. Pada host referensi, yang berfungsi sebagai gambar master untuk komputer Hyper-V tepercaya di lingkungan Anda, ambil kebijakan CI baru menggunakan New-CIPolicy perintah . Kami mendorong Anda untuk menggunakan tingkat FilePublisher dan Fallback Hash untuk kebijakan CI host Hyper-V. Anda harus terlebih dahulu membuat kebijakan CI dalam mode audit untuk memastikan bahwa semuanya berfungsi seperti yang diharapkan. Setelah memvalidasi beban kerja sampel pada sistem, Anda dapat menerapkan kebijakan dan menyalin versi yang diberlakukan ke HGS. Untuk daftar lengkap opsi konfigurasi kebijakan integritas kode, lihat dokumentasi Device Guard.

# Capture a new CI policy with the FilePublisher primary level and Hash fallback and enable user mode code integrity protections
New-CIPolicy -FilePath 'C:\temp\ws2016-hardware01-ci.xml' -Level FilePublisher -Fallback Hash -UserPEs

# Apply the CI policy to the system
ConvertFrom-CIPolicy -XmlFilePath 'C:\temp\ws2016-hardware01-ci.xml' -BinaryFilePath 'C:\temp\ws2016-hardware01-ci.p7b'
Copy-Item 'C:\temp\ws2016-hardware01-ci.p7b' 'C:\Windows\System32\CodeIntegrity\SIPolicy.p7b'
Restart-Computer

# Check the event log for any untrusted binaries and update the policy if necessary
# Consult the Device Guard documentation for more details

# Change the policy to be in enforced mode
Set-RuleOption -FilePath 'C:\temp\ws2016-hardare01-ci.xml' -Option 3 -Delete

# Apply the enforced CI policy on the system
ConvertFrom-CIPolicy -XmlFilePath 'C:\temp\ws2016-hardware01-ci.xml' -BinaryFilePath 'C:\temp\ws2016-hardware01-ci.p7b'
Copy-Item 'C:\temp\ws2016-hardware01-ci.p7b' 'C:\Windows\System32\CodeIntegrity\SIPolicy.p7b'
Restart-Computer

Setelah kebijakan Anda dibuat, diuji, dan diberlakukan, salin file biner (.p7b) ke server HGS Anda dan daftarkan kebijakan.

Add-HgsAttestationCiPolicy -Name 'WS2016-Hardware01' -Path 'C:\temp\ws2016-hardware01-ci.p7b'

Menambahkan kunci enkripsi cadangan memori

Ketika kebijakan Hgs_NoDumps dinonaktifkan dan kebijakan Hgs_DumpEncryption diaktifkan, host yang dijaga diizinkan untuk memiliki cadangan memori (termasuk crash dump) untuk diaktifkan selama cadangan tersebut dienkripsi. Host yang dijaga hanya akan meneruskan pengesahan jika mereka menonaktifkan cadangan memori atau mengenkripsinya dengan kunci yang diketahui HGS. Secara default, tidak ada kunci enkripsi cadangan yang dikonfigurasi pada HGS.

Untuk menambahkan kunci enkripsi cadangan ke HGS, gunakan Add-HgsAttestationDumpPolicy cmdlet untuk menyediakan HGS dengan hash kunci enkripsi cadangan Anda. Jika Anda mengambil garis besar TPM pada host Hyper-V yang dikonfigurasi dengan enkripsi cadangan, hash disertakan dalam tcglog dan dapat diberikan ke Add-HgsAttestationDumpPolicy cmdlet.

Add-HgsAttestationDumpPolicy -Name 'DumpEncryptionKey01' -Path 'C:\temp\TpmBaselineWithDumpEncryptionKey.tcglog'

Atau, Anda dapat langsung memberikan representasi string hash ke cmdlet.

Add-HgsAttestationDumpPolicy -Name 'DumpEncryptionKey02' -PublicKeyHash '<paste your hash here>'

Pastikan untuk menambahkan setiap kunci enkripsi cadangan unik ke HGS jika Anda memilih untuk menggunakan kunci yang berbeda di seluruh fabric yang dijaga. Host yang mengenkripsi cadangan memori dengan kunci yang tidak diketahui HGS tidak akan melewati pengesahan.

Lihat dokumentasi Hyper-V untuk informasi selengkapnya tentang mengonfigurasi enkripsi cadangan pada host.

Periksa apakah sistem melewati pengesahan

Setelah mendaftarkan informasi yang diperlukan dengan HGS, Anda harus memeriksa apakah host melewati pengesahan. Pada host Hyper-V yang baru ditambahkan, jalankan Set-HgsClientConfiguration dan berikan URL yang benar untuk kluster HGS Anda. URL ini dapat diperoleh dengan menjalankan Get-HgsServer pada simpul HGS apa pun.

Set-HgsClientConfiguration -KeyProtectionServerUrl 'https://hgs.bastion.local/KeyProtection' -AttestationServerUrl 'https://hgs.bastion.local/Attestation'

Jika status yang dihasilkan tidak menunjukkan "IsHostGuarded : True" Anda harus memecahkan masalah konfigurasi. Pada host yang gagal mengesahkan, jalankan perintah berikut untuk mendapatkan laporan terperinci tentang masalah yang dapat membantu Anda menyelesaikan pengesahan yang gagal.

Get-HgsTrace -RunDiagnostics -Detailed

Penting

Jika Anda menggunakan Windows Server 2019 atau Windows 10, versi 1809 dan menggunakan kebijakan integritas kode, Get-HgsTrace dapat mengembalikan kegagalan untuk diagnostik Aktif Kebijakan Integritas Kode. Anda dapat dengan aman mengabaikan hasil ini ketika itu adalah satu-satunya diagnostik yang gagal.

Meninjau kebijakan pengesahan

Untuk meninjau status kebijakan saat ini yang dikonfigurasi pada HGS, jalankan perintah berikut pada simpul HGS apa pun:

# List all trusted security groups for admin-trusted attestation
Get-HgsAttestationHostGroup

# List all policies configured for TPM-trusted attestation
Get-HgsAttestationPolicy

Jika Anda menemukan kebijakan yang diaktifkan yang tidak lagi memenuhi persyaratan keamanan Anda (misalnya kebijakan integritas kode lama yang sekarang dianggap tidak aman), Anda dapat menonaktifkannya dengan mengganti nama kebijakan dalam perintah berikut:

Disable-HgsAttestationPolicy -Name 'PolicyName'

Demikian pula, Anda dapat menggunakan Enable-HgsAttestationPolicy untuk mengaktifkan kembali kebijakan.

Jika Anda tidak lagi memerlukan kebijakan dan ingin menghapusnya dari semua simpul HGS, jalankan Remove-HgsAttestationPolicy -Name 'PolicyName' untuk menghapus kebijakan secara permanen.

Mengubah mode pengesahan

Jika Anda memulai fabric yang dijaga menggunakan pengesahan tepercaya admin, Anda mungkin ingin meningkatkan ke mode pengesahan TPM yang jauh lebih kuat segera setelah Anda memiliki host yang kompatibel dengan TPM 2.0 yang cukup di lingkungan Anda. Ketika Anda siap untuk beralih, Anda dapat memuat sebelumnya semua artefak pengesahan (kebijakan CI, garis besar TPM, dan pengidentifikasi TPM) di HGS sambil terus menjalankan HGS dengan pengesahan tepercaya admin. Untuk melakukan ini, cukup ikuti instruksi di bagian otorisasi host yang dijaga baru.

Setelah Anda menambahkan semua kebijakan ke HGS, langkah selanjutnya adalah menjalankan upaya pengesahan sintetis pada host Anda untuk melihat apakah kebijakan tersebut akan melewati pengesahan dalam mode TPM. Ini tidak memengaruhi status operasional HGS saat ini. Perintah di bawah ini harus dijalankan pada komputer yang memiliki akses ke semua host di lingkungan dan setidaknya satu simpul HGS. Jika firewall atau kebijakan keamanan lainnya mencegah hal ini, Anda dapat melewati langkah ini. Jika memungkinkan, sebaiknya jalankan pengesahan sintetis untuk memberi Anda indikasi yang baik tentang apakah "membalik" ke mode TPM akan menyebabkan waktu henti untuk VM Anda.

# Get information for each host in your environment
$hostNames = 'host01.contoso.com', 'host02.contoso.com', 'host03.contoso.com'
$credential = Get-Credential -Message 'Enter a credential with admin privileges on each host'
$targets = @()
$hostNames | ForEach-Object { $targets += New-HgsTraceTarget -Credential $credential -Role GuardedHost -HostName $_ }

$hgsCredential = Get-Credential -Message 'Enter an admin credential for HGS'
$targets += New-HgsTraceTarget -Credential $hgsCredential -Role HostGuardianService -HostName 'HGS01.bastion.local'

# Initiate the synthetic attestation attempt
Get-HgsTrace -RunDiagnostics -Target $targets -Diagnostic GuardedFabricTpmMode

Setelah diagnostik selesai, tinjau informasi yang dihasilkan untuk menentukan apakah ada host yang akan gagal mengesahkan dalam mode TPM. Jalankan kembali diagnostik hingga Anda mendapatkan "pass" dari setiap host, lalu lanjutkan untuk mengubah HGS ke mode TPM.

Mengubah ke mode TPM hanya membutuhkan waktu satu detik untuk menyelesaikannya. Jalankan perintah berikut pada simpul HGS apa pun untuk memperbarui mode pengesahan.

Set-HgsServer -TrustTpm

Jika Anda mengalami masalah dan perlu beralih kembali ke mode Direktori Aktif, Anda dapat melakukannya dengan menjalankan Set-HgsServer -TrustActiveDirectory.

Setelah Anda mengonfirmasi semuanya berfungsi seperti yang diharapkan, Anda harus menghapus semua grup host Direktori Aktif tepercaya dari HGS dan menghapus kepercayaan antara domain HGS dan fabric. Jika Anda meninggalkan kepercayaan Direktori Aktif, Anda berisiko seseorang mengaktifkan kembali kepercayaan dan mengalihkan HGS ke mode Direktori Aktif, yang dapat memungkinkan kode yang tidak tepercaya untuk menjalankan tidak dicentang pada host yang dijaga.

Manajemen kunci

Solusi fabric yang dijaga menggunakan beberapa pasangan kunci publik/privat untuk memvalidasi integritas berbagai komponen dalam solusi dan mengenkripsi rahasia penyewa. Layanan Wali Host dikonfigurasi dengan setidaknya dua sertifikat (dengan kunci publik dan privat), yang digunakan untuk menandatangani dan mengenkripsi kunci yang digunakan untuk memulai VM terlindungi. Kunci tersebut harus dikelola dengan hati-hati. Jika kunci privat diperoleh oleh seterusnya, mereka akan dapat melepaskan VM apa pun yang berjalan pada fabric Anda atau menyiapkan kluster HGS peniru yang menggunakan kebijakan pengesahan yang lebih lemah untuk melewati perlindungan yang Anda terapkan. Jika Anda kehilangan kunci privat selama bencana dan tidak menemukannya dalam cadangan, Anda harus menyiapkan sepasang kunci baru dan membuat setiap VM dikotak ulang untuk mengotorisasi sertifikat baru Anda.

Bagian ini mencakup topik manajemen kunci umum untuk membantu Anda mengonfigurasi kunci sehingga berfungsi dan aman.

Menambahkan kunci baru

Meskipun HGS harus diinisialisasi dengan satu set kunci, Anda dapat menambahkan lebih dari satu enkripsi dan kunci penandatanganan ke HGS. Dua alasan paling umum mengapa Anda akan menambahkan kunci baru ke HGS adalah:

  1. Untuk mendukung skenario "bawa kunci Anda sendiri" di mana penyewa menyalin kunci privat mereka ke modul keamanan perangkat keras Anda dan hanya mengotorisasi kunci mereka untuk memulai VM terlindungi mereka.
  2. Untuk mengganti kunci yang ada untuk HGS dengan terlebih dahulu menambahkan kunci baru dan menyimpan kedua set kunci hingga setiap konfigurasi VM telah diperbarui untuk menggunakan kunci baru.

Proses untuk menambahkan kunci baru Anda berbeda berdasarkan jenis sertifikat yang Anda gunakan.

Opsi 1: Menambahkan sertifikat yang disimpan dalam HSM

Pendekatan kami yang direkomendasikan untuk mengamankan kunci HGS adalah dengan menggunakan sertifikat yang dibuat dalam modul keamanan perangkat keras (HSM). HSM memastikan penggunaan kunci Anda terkait dengan akses fisik ke perangkat sensitif keamanan di pusat data Anda. Setiap HSM berbeda dan memiliki proses unik untuk membuat sertifikat dan mendaftarkannya dengan HGS. Langkah-langkah di bawah ini dimaksudkan untuk memberikan panduan kasar untuk menggunakan sertifikat yang didukung HSM. Lihat dokumentasi vendor HSM Anda untuk langkah dan kemampuan yang tepat.

  1. Instal perangkat lunak HSM pada setiap simpul HGS di kluster Anda. Bergantung pada apakah Anda memiliki jaringan atau perangkat HSM lokal, Anda mungkin perlu mengonfigurasi HSM untuk memberikan akses komputer Anda ke penyimpanan kuncinya.

  2. Membuat 2 sertifikat di HSM dengan kunci RSA 2048 bit untuk enkripsi dan penandatanganan

    1. Membuat sertifikat enkripsi dengan properti penggunaan kunci Encipherment Data di HSM Anda
    2. Membuat sertifikat penandatanganan dengan properti penggunaan kunci Tanda Tangan Digital di HSM Anda
  3. Instal sertifikat di setiap penyimpanan sertifikat lokal simpul HGS sesuai panduan vendor HSM Anda.

  4. Jika HSM Anda menggunakan izin terperinci untuk memberikan izin kepada aplikasi atau pengguna tertentu untuk menggunakan kunci privat, Anda harus memberikan akses akun layanan terkelola grup HGS Anda ke sertifikat. Anda dapat menemukan nama akun HGS gMSA dengan menjalankan (Get-IISAppPool -Name KeyProtection).ProcessModel.UserName

  5. Tambahkan sertifikat penandatanganan dan enkripsi ke HGS dengan mengganti thumbprint dengan sertifikat Anda' dalam perintah berikut:

    Add-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint "AABBCCDDEEFF00112233445566778899"
    Add-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint "99887766554433221100FFEEDDCCBBAA"
    

Opsi 2: Menambahkan sertifikat perangkat lunak yang tidak dapat diekspor

Jika Anda memiliki sertifikat yang didukung perangkat lunak yang dikeluarkan oleh perusahaan Anda atau otoritas sertifikat publik yang memiliki kunci privat yang tidak dapat diekspor, Anda harus menambahkan sertifikat Anda ke HGS menggunakan thumbprint-nya.

  1. Instal sertifikat di komputer Anda sesuai dengan instruksi otoritas sertifikat Anda.

  2. Berikan akses baca akun layanan terkelola grup HGS ke kunci privat sertifikat. Anda dapat menemukan nama akun HGS gMSA dengan menjalankan (Get-IISAppPool -Name KeyProtection).ProcessModel.UserName

  3. Daftarkan sertifikat dengan HGS menggunakan perintah berikut dan ganti thumbprint sertifikat Anda (ubah Enkripsi ke Penandatanganan untuk sertifikat penandatanganan):

    Add-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint "AABBCCDDEEFF00112233445566778899"
    

Penting

Anda harus menginstal kunci privat secara manual dan memberikan akses baca ke akun gMSA pada setiap simpul HGS. HGS tidak dapat secara otomatis mereplikasi kunci privat untuk sertifikat apa pun yang terdaftar oleh thumbprint-nya.

Opsi 3: Menambahkan sertifikat yang disimpan dalam file PFX

Jika Anda memiliki sertifikat yang didukung perangkat lunak dengan kunci privat yang dapat diekspor yang dapat disimpan dalam format file PFX dan diamankan dengan kata sandi, HGS dapat mengelola sertifikat Anda secara otomatis untuk Anda. Sertifikat yang ditambahkan dengan file PFX secara otomatis direplikasi ke setiap simpul kluster HGS Anda dan HGS mengamankan akses ke kunci privat. Untuk menambahkan sertifikat baru menggunakan file PFX, jalankan perintah berikut pada simpul HGS apa pun (ubah Enkripsi ke Penandatanganan untuk sertifikat penandatanganan):

$certPassword = Read-Host -AsSecureString -Prompt "Provide the PFX file password"
Add-HgsKeyProtectionCertificate -CertificateType Encryption -CertificatePath "C:\temp\encryptionCert.pfx" -CertificatePassword $certPassword

Mengidentifikasi dan mengubah sertifikat utama Sementara HGS dapat mendukung beberapa sertifikat penandatanganan dan enkripsi, HGS menggunakan satu pasangan sebagai sertifikat "utama". Ini adalah sertifikat yang akan digunakan jika seseorang mengunduh metadata wali untuk kluster HGS tersebut. Untuk memeriksa sertifikat mana yang saat ini ditandai sebagai sertifikat utama Anda, jalankan perintah berikut:

Get-HgsKeyProtectionCertificate -IsPrimary $true

Untuk mengatur enkripsi utama atau sertifikat penandatanganan baru, temukan thumbprint sertifikat yang diinginkan dan tandai sebagai utama menggunakan perintah berikut:

Get-HgsKeyProtectionCertificate
Set-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint "AABBCCDDEEFF00112233445566778899" -IsPrimary
Set-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint "99887766554433221100FFEEDDCCBBAA" -IsPrimary

Memperbarui atau mengganti kunci

Saat Anda membuat sertifikat yang digunakan oleh HGS, sertifikat akan diberi tanggal kedaluwarsa sesuai dengan kebijakan otoritas sertifikat Anda dan informasi permintaan Anda. Biasanya, dalam skenario di mana validitas sertifikat penting seperti mengamankan komunikasi HTTP, sertifikat harus diperbarui sebelum kedaluwarsa untuk menghindari gangguan layanan atau pesan kesalahan yang mengkhawatirkan. HGS tidak menggunakan sertifikat dalam pengertian tersebut. HGS hanya menggunakan sertifikat sebagai cara mudah untuk membuat dan menyimpan pasangan kunci asimetris. Enkripsi atau sertifikat penandatanganan yang kedaluwarsa pada HGS tidak menunjukkan kelemahan atau hilangnya perlindungan untuk VM terlindungi. Selanjutnya, pemeriksaan pencabutan sertifikat tidak dilakukan oleh HGS. Jika sertifikat HGS atau sertifikat otoritas penerbit dicabut, sertifikat tersebut tidak akan berdampak pada penggunaan sertifikat HGS.

Satu-satunya waktu Anda perlu khawatir tentang sertifikat HGS adalah jika Anda memiliki alasan untuk percaya bahwa kunci privatnya telah dicuri. Dalam hal ini, integritas VM terlindungi Anda berisiko karena kepemilikan setengah privat dari enkripsi HGS dan pasangan kunci penandatanganan sudah cukup untuk menghapus perlindungan perisai pada VM atau berdiri di server HGS palsu yang memiliki kebijakan pengesahan yang lebih lemah.

Jika Anda menemukan diri Anda dalam situasi itu, atau diharuskan oleh standar kepatuhan untuk menyegarkan kunci sertifikat secara teratur, langkah-langkah berikut menguraikan proses untuk mengubah kunci di server HGS. Harap dicatat bahwa panduan berikut mewakili upaya signifikan yang akan mengakibatkan gangguan layanan pada setiap VM yang dilayani oleh kluster HGS. Perencanaan yang tepat untuk mengubah kunci HGS diperlukan untuk meminimalkan gangguan layanan dan memastikan keamanan VM penyewa.

Pada simpul HGS, lakukan langkah-langkah berikut untuk mendaftarkan sepasang sertifikat enkripsi dan penandatanganan baru. Lihat bagian tentang menambahkan kunci baru untuk informasi terperinci berbagai cara untuk menambahkan kunci baru ke HGS.

  1. Buat sepasang sertifikat enkripsi dan penandatanganan baru untuk server HGS Anda. Idealnya, ini akan dibuat dalam modul keamanan perangkat keras.

  2. Daftarkan sertifikat enkripsi dan penandatanganan baru dengan Add-HgsKeyProtectionCertificate

    Add-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint>
    Add-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint>
    
  3. Jika Anda menggunakan thumbprint, Anda harus membuka setiap simpul di kluster untuk menginstal kunci privat dan memberikan akses GMSA HGS ke kunci.

  4. Jadikan sertifikat baru sebagai sertifikat default di HGS

    Set-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint> -IsPrimary
    Set-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint> -IsPrimary
    

Pada titik ini, melindungi data yang dibuat dengan metadata yang diperoleh dari simpul HGS akan menggunakan sertifikat baru, tetapi VM yang ada akan terus berfungsi karena sertifikat yang lebih lama masih ada.

Untuk memastikan semua VM yang ada akan berfungsi dengan kunci baru, Anda harus memperbarui pelindung kunci pada setiap VM.

Ini adalah tindakan yang mengharuskan pemilik VM (orang atau entitas yang memiliki wali "pemilik") untuk terlibat. Untuk setiap VM terlindungi, lakukan langkah-langkah berikut:

  1. Matikan VM-nya. VM tidak dapat diaktifkan kembali sampai langkah-langkah yang tersisa selesai atau Anda harus memulai proses lagi.

  2. Simpan pelindung kunci saat ini ke file: Get-VMKeyProtector -VMName 'VM001' | Out-File '.\VM001.kp'

  3. Mentransfer KP ke pemilik VM

  4. Minta pemilik mengunduh info wali yang diperbarui dari HGS dan mengimpornya ke sistem lokal mereka

  5. Baca KP saat ini ke dalam memori, berikan akses wali baru ke KP, dan simpan ke file baru dengan menjalankan perintah berikut:

    $kpraw = Get-Content -Path .\VM001.kp
    $kp = ConvertTo-HgsKeyProtector -Bytes $kpraw
    $newGuardian = Get-HgsGuardian -Name 'UpdatedHgsGuardian'
    $updatedKP = Grant-HgsKeyProtectorAccess -KeyProtector $kp -Guardian $newGuardian
    $updatedKP.RawData | Out-File .\updatedVM001.kp
    
  6. Salin KP yang diperbarui kembali ke fabric hosting.

  7. Terapkan KP ke VM asli:

    $updatedKP = Get-Content -Path .\updatedVM001.kp
    Set-VMKeyProtector -VMName VM001 -KeyProtector $updatedKP
    
  8. Terakhir, mulai VM dan pastikan VM berjalan dengan sukses.

    Catatan

    Jika pemilik VM menetapkan pelindung kunci yang salah pada VM dan tidak mengotorisasi fabric Anda untuk menjalankan VM, Anda tidak akan dapat memulai VM terlindung. Untuk kembali ke pelindung kunci baik terakhir yang diketahui, jalankan Set-VMKeyProtector -RestoreLastKnownGoodKeyProtector

    Setelah semua VM diperbarui untuk mengotorisasi kunci wali baru, Anda dapat menonaktifkan dan menghapus kunci lama.

  9. Dapatkan thumbprint sertifikat lama dari Get-HgsKeyProtectionCertificate -IsPrimary $false

  10. Nonaktifkan setiap sertifikat dengan menjalankan perintah berikut:

    Set-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint> -IsEnabled $false
    Set-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint> -IsEnabled $false
    
  11. Setelah memastikan VM masih dapat dimulai dengan sertifikat yang dinonaktifkan, hapus sertifikat dari HGS dengan menjalankan perintah berikut:

    Remove-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint>`
    Remove-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint>`
    

Penting

Cadangan VM akan berisi informasi pelindung kunci lama yang memungkinkan sertifikat lama digunakan untuk memulai VM. Jika Anda menyadari bahwa kunci privat Anda telah disusupi, Anda harus berasumsi bahwa cadangan VM juga dapat disusupi, dan mengambil tindakan yang sesuai. Menghancurkan konfigurasi VM dari cadangan (.vmcx) akan menghapus pelindung kunci, dengan biaya perlu menggunakan kata sandi pemulihan BitLocker untuk mem-boot VM di lain waktu.

Replikasi kunci antar simpul

Setiap simpul dalam kluster HGS harus dikonfigurasi dengan enkripsi, penandatanganan, dan (saat dikonfigurasi) sertifikat SSL yang sama. Ini diperlukan untuk memastikan host Hyper-V yang menjangkau node apa pun di kluster dapat berhasil melayani permintaan mereka.

Jika Anda menginisialisasi server HGS dengan sertifikat berbasis PFX, maka HGS akan secara otomatis mereplikasi kunci publik dan privat sertifikat tersebut di setiap simpul dalam kluster. Anda hanya perlu menambahkan kunci pada satu simpul.

Jika Anda menginisialisasi server HGS dengan referensi sertifikat atau thumbprint, maka HGS hanya akan mereplikasi kunci publik dalam sertifikat ke setiap simpul. Selain itu, HGS tidak dapat memberikan akses sendiri ke kunci privat pada node apa pun dalam skenario ini. Oleh karena itu, Anda bertanggung jawab untuk:

  1. Pasang kunci privat pada setiap simpul HGS
  2. Berikan akses akun layanan terkelola grup HGS (gMSA) ke kunci privat pada setiap simpul Tugas ini menambahkan beban operasional ekstra, namun diperlukan untuk kunci dan sertifikat yang didukung HSM dengan kunci privat yang tidak dapat diekspor.

Sertifikat SSL tidak pernah direplikasi dalam bentuk apa pun. Anda bertanggung jawab untuk menginisialisasi setiap server HGS dengan sertifikat SSL yang sama dan memperbarui setiap server setiap kali Anda memilih untuk memperbarui atau mengganti sertifikat SSL. Saat mengganti sertifikat SSL, disarankan agar Anda melakukannya menggunakan cmdlet Set-HgsServer .

Tidak mengonfigurasi HGS

Jika Anda perlu menonaktifkan atau mengonfigurasi ulang server HGS secara signifikan, Anda dapat melakukannya menggunakan cmdlet Clear-HgsServer atau Uninstall-HgsServer .

Menghapus konfigurasi HGS

Untuk menghapus simpul dari kluster HGS, gunakan cmdlet Clear-HgsServer . Cmdlet ini akan membuat perubahan berikut pada server tempat cmdlet dijalankan:

  • Membatalkan pendaftaran layanan pengesahan dan perlindungan kunci
  • Menghapus titik akhir manajemen JEA "microsoft.windows.hgs"
  • Menghapus komputer lokal dari kluster failover HGS

Jika server adalah simpul HGS terakhir dalam kluster, kluster dan sumber daya Nama Jaringan Terdistribusi yang sesuai juga akan dihancurkan.

# Removes the local computer from the HGS cluster
Clear-HgsServer

Setelah operasi yang jelas selesai, server HGS dapat diinisialisasi ulang dengan Initialize-HgsServer. Jika Anda menggunakan Install-HgsServer untuk menyiapkan domain Active Directory Domain Services, domain tersebut akan tetap dikonfigurasi dan beroperasi setelah operasi yang jelas.

Menghapus instalan HGS

Jika Anda ingin menghapus simpul dari kluster HGS dan menurunkan Active Directory Domain Controller yang berjalan di atasnya, gunakan cmdlet Uninstall-HgsServer . Cmdlet ini akan membuat perubahan berikut pada server tempat cmdlet dijalankan:

  • Membatalkan pendaftaran layanan pengesahan dan perlindungan kunci
  • Menghapus titik akhir manajemen JEA "microsoft.windows.hgs"
  • Menghapus komputer lokal dari kluster failover HGS
  • Demotes Active Directory Domain Controller, jika dikonfigurasi

Jika server adalah simpul HGS terakhir dalam kluster, domain, kluster failover, dan sumber daya Nama Jaringan Terdistribusi kluster juga akan dihancurkan.

# Removes the local computer from the HGS cluster and demotes the ADDC (restart required)
$newLocalAdminPassword = Read-Host -AsSecureString -Prompt "Enter a new password for the local administrator account"
Uninstall-HgsServer -LocalAdministratorPassword $newLocalAdminPassword -Restart

Setelah operasi penghapusan instalasi selesai dan komputer telah dimulai ulang, Anda dapat menginstal ulang ADDC dan HGS menggunakan Install-HgsServer atau menggabungkan komputer ke domain dan menginisialisasi server HGS di domain tersebut dengan Initialize-HgsServer.

Jika Anda tidak lagi berniat menggunakan komputer sebagai simpul HGS, Anda dapat menghapus peran dari Windows.

Uninstall-WindowsFeature HostGuardianServiceRole