管理主機守護者服務
主機守護者服務 (HGS) 是受防護網狀架構解決方案的核心。 其除了負責確保網狀架構中的 Hyper-V 主機會被主機服務提供者或企業所知道並執行受信任的軟體,還要負責管理用來啟動受防護 VM 的金鑰。 當租用戶決定信任您而由您裝載其受防護的 VM 時,他們所信任的是您的主機守護者服務組態和管理。 因此,請務必遵循最佳做法來管理主機守護者服務,以確保受防護網狀架構的安全性、可用性和可靠性。 下列各節中的指導方針可解決 HGS 系統管理員最常面臨的操作問題。
限制系統管理員對 HGS 的存取
由於 HGS 對安全性極其敏感,因此請務必確保其系統管理員是組織高度信任的成員,而且最好是與網狀架構資源的系統管理員不同的人。 此外,建議您只使用 WinRM over HTTPS 等安全的通訊協定,從安全的工作站管理 HGS。
職責區分
在設定 HGS 時,您可以選擇只針對 HGS 建立隔離的 Active Directory 樹系,也可以選擇將 HGS 加入現有的受信任網域。 您所做的選擇以及您指派給組織中系統管理員的角色會決定 HGS 的信任界限。 任何人只要能夠存取 HGS,無論是以系統管理員的身分直接存取,還是以能夠影響 HGS 的其他項目 (例如 Active Directory) 的系統管理員身分間接存取,就能控制受防護的網狀架構。 HGS 系統管理員可以選擇哪些 Hyper-V 主機有權執行受防護的 VM,並管理要啟動受防護的 VM 所需的憑證。 因此,能夠存取 HGS 的攻擊者或惡意系統管理員可以利用這個權力,授權遭入侵的主機執行受防護的 VM、藉由移除金鑰資料來發起阻斷服務攻擊,以及進行其他操作。
為了避免此風險,「強烈」建議您限制 HGS 系統管理員 (包括 HGS 所加入的網域) 和 Hyper-V 環境之間的重疊。 藉由確保沒有任何一位管理員可以同時存取兩個系統,攻擊者必須入侵 2 個人所擁有的 2 個不同帳戶,才能完成變更 HGS 原則的任務。 這也表示兩個 Active Directory 環境的網域和企業系統管理員不該是同一人,而 HGS 也不應該使用與 Hyper-V 主機相同的 Active Directory 樹系。 任何能夠向自己授與更多資源存取權的人都會帶來安全性風險。
使用 Just Enough Administration
HGS 隨附內建的 Just Enough Administration (JEA) 角色以協助您更安全地管理 HGS。 JEA 的協助方式是讓您能夠將系統管理員的工作委派給非系統管理員的使用者,這表示管理 HGS 原則的人不一定需要是整個電腦或網域的系統管理員。 JEA 的運作方式是限制使用者可以在 PowerShell 工作階段中執行的命令,並在幕後使用臨時的本機帳戶 (每個使用者工作階段的臨時帳戶是唯一的) 來執行一般來說需要提高權限的命令。
HGS 隨附 2 個已預先設定的 JEA 角色:
- HGS 系統管理員,可讓使用者管理所有 HGS 原則,包括授權新主機執行受防護的 VM。
- HGS 檢閱者,只允許使用者有稽核現有原則的權利。 其無法變更 HGS 組態。
若要使用 JEA,您必須先建立新的標準使用者,並將其設為 HGS 系統管理員或 HGS 檢閱者群組的成員。
如果您使用 Install-HgsServer
為 HGS 設定新的樹系,這些群組會分別命名為「servicenameAdministrators」和「servicenameReviewers」,其中「servicename」是 HGS 叢集的網路名稱。
如果您將 HGS 加入現有網域,則請參考您在 Initialize-HgsServer
中指定的群組名稱。
為 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'
使用檢閱者角色來稽核原則
在可以透過網路連線到 HGS 的遠端電腦上,於 PowerShell 中執行下列命令便可使用檢閱者認證進入 JEA 工作階段。 請務必注意,由於檢閱者帳戶只是標準使用者,因此無法用於一般的 Windows PowerShell 遠端執行功能、HGS 的遠端桌面存取等作業。
Enter-PSSession -ComputerName <hgsnode> -Credential '<hgsdomain>\hgsreviewer01' -ConfigurationName 'microsoft.windows.hgs'
接著,您可以使用 Get-Command
檢查工作階段中允許的命令,並執行任何允許的命令來稽核組態。
在下列範例中,我們會檢查 HGS 上已啟用哪些原則。
Get-Command
Get-HgsAttestationPolicy
當您使用完 JEA 工作階段時,請輸入命令 Exit-PSSession
或其別名 exit
。
使用系統管理員角色將新原則增加至 HGS
若要實際變更原則,您必須使用屬於「hgsAdministrators」群組的身分識別連線到 JEA 端點。 在下列範例中,我們會示範如何將新的程式碼完整性原則複製到 HGS,並使用 JEA 註冊這個原則。 此語法可能與您所使用的語法不同。 這是為了配合 JEA 中的某些限制,例如無法存取完整的檔案系統。
$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
監視 HGS
事件來源和轉送
來自 HGS 的事件會顯示在 Windows 事件記錄中的 2 個來源底下:
- HostGuardianService-Attestation
- HostGuardianService-KeyProtection
您可以開啟事件檢視器並瀏覽至 Microsoft-Windows-HostGuardianService-Attestation 和 Microsoft-Windows-HostGuardianService-KeyProtection 以檢視這些事件。
在大型環境中,往往會將事件轉送至中央 Windows 事件收集器,以方便分析事件。 如需詳細資訊,請參閱 Windows 事件轉送文件。
使用 System Center Operations Manager
您也可以使用 System Center 2016 - Operations Manager 來監視 HGS 和受防護主機。 受防護網狀架構管理組件具有事件監視器,可檢查會導致資料中心停機的常見錯誤組態,包括主機未通過證明和 HGS 伺服器報告錯誤。
若要開始使用,請安裝和設定 SCOM 2016,並下載受防護網狀架構管理組件。 內含的管理組件指南會說明如何設定管理組件和了解其監視範圍。
備份和還原 HGS
規劃災害復原
在草擬災害復原計劃時,請務必考慮您受防護網狀架構中主機守護者服務的獨特需求。 如果您失去部分或全部 HGS 節點,您可能會立即面臨將導致使用者無法啟動其受防護 VM 的可用性問題。 在失去整個 HGS 叢集的情況下,您手上必須有完整的 HGS 組態備份,才能還原 HGS 叢集並繼續正常作業。 本節會說明要為這類案例做好準備所需進行的步驟。
首先,請務必了解關於 HGS 有什麼應該備份的重要項目。 HGS 會保留好幾項有助於決定哪些主機有權執行受防護 VM 的資訊。 這包括:
- 受信任主機所屬群組的 Active Directory 安全性識別碼 (使用 Active Directory 證明時);
- 環境中每個主機的唯一 TPM 識別碼;
- 每個唯一主機組態的 TPM 原則;以及
- 可決定哪些軟體可在您主機上執行的程式碼完整性原則。
這些證明成品需要與裝載網狀架構的系統管理員協調才能取得,因此可能會導致您難以在災害發生後再次取得此資訊。
此外,HGS 還需要存取 2 個以上的憑證,以使用這些憑證來加密和簽署要啟動受防護 VM 所需的資訊 (金鑰保護裝置)。 這些憑證是已知的 (以供受防護 VM 擁有者用來授權網狀架構執行其 VM),而且必須在災害發生後加以還原,才能獲得順暢的復原體驗。 如果您未在災害發生後使用相同的憑證還原 HGS,則必須更新每個 VM,以授權用來解密其資訊的新金鑰。 為求安全,只有 VM 擁有者可以更新 VM 組態來授權這些新的金鑰,這表示若災害發生後無法還原金鑰,將會導致每個 VM 擁有者必須採取動作,才能讓其 VM 再次執行。
為最糟糕的情況做好準備
若要為徹底失去 HGS 的情況做好準備,您必須採取 2 個步驟:
- 備份 HGS 證明原則
- 備份 HGS 金鑰
如需如何執行這兩個步驟的指導方針,請參閱備份 HGS 一節。
雖非必要,但另外建議您備份有權在其 Active Directory 網域或 Active Directory 本身中管理 HGS 的使用者清單。
請定期備份,以確保資訊是最新狀態並已安全儲存,以免遭到竄改或竊取。
不建議您備份或嘗試還原 HGS 節點的整個系統映像。 如果您失去整個叢集,最佳做法是設定全新的 HGS 節點,並只還原 HGS 狀態,而不是整個伺服器 OS。
從失去一個節點的情況下復原
如果您失去 HGS 叢集中的一或多個節點 (而非失去每個節點),則可以遵循部署指南中的指導方針,直接將節點新增至叢集。 證明原則以及以具有隨附密碼的 PFX 檔案形式提供給 HGS 的任何憑證都會自動同步。 若為使用指紋新增至 HGS 的憑證 (一般是不可匯出且由硬體支援的憑證),則必須確保每個新節點都能存取每個憑證的私密金鑰。
從失去整個叢集的情況下復原
如果整個 HGS 叢集關閉,且無法使其恢復上線,則必須從備份還原 HGS。 從備份還原 HGS 的程序牽涉到先按照部署指南中的指導方針設定新的 HGS 叢集。 雖非必要,但強烈建議您在設定復原 HGS 環境時使用相同的叢集名稱,以利於從主機解析名稱。 使用相同的名稱就不必使用新的證明和金鑰保護 URL 重新設定主機。 如果您將物件還原至由 Active Directory 網域支援的 HGS,建議您先移除代表 HGS 叢集、電腦、服務帳戶和 JEA 群組的物件,再初始化 HGS 伺服器。
在設定了第一個 HGS 節點 (例如已安裝並初始化節點) 之後,請遵循從備份還原 HGS 底下的程序,以還原證明原則和金鑰保護憑證的公開那一半。 您必須根據憑證提供者的指導方針 (例如在 Windows 中匯入憑證,或設定 HSM 所支援憑證的存取權) 手動還原憑證的私密金鑰。 第一個節點設定好之後,您可以繼續將其他節點安裝到叢集,直到達到所需的容量和復原能力為止。
備份 HGS
HGS 系統管理員應該負責定期備份 HGS。 完整備份會包含必須妥善保護的敏感性金鑰資料。 如果未受信任的實體獲得這些金鑰的存取權,便可以使用該資料來設定惡意的 HGS 環境以入侵受防護的 VM。
備份證明原則 若要備份 HGS 證明原則,請在任何正常運作的 HGS 伺服器節點上執行下列命令。 系統會提示您提供密碼。 透過此密碼,您可以使用 PFX 檔案 (而不是憑證指紋) 來加密任何新增至 HGS 的憑證。
Export-HgsServerState -Path C:\temp\HGSBackup.xml
注意
如果您使用系統管理員信任的證明,則必須個別備份 HGS 用來授權受防護主機的安全性群組中的成員資格。 HGS 只會備份安全性群組的 SID,而不會備份其中的成員資格。 如果在災害期間失去這些群組,則必須重新建立群組,然後在群組中重新新增每個受防護主機。
備份憑證
Export-HgsServerState
命令會在命令執行時,對新增至 HGS 的任何 PFX 型憑證進行備份。
如果您之前是使用指紋將憑證新增至 HGS (一般會針對不可匯出且由硬體支援的憑證這麼做),則必須手動備份憑證的私密金鑰。
若要識別已向 HGS 註冊哪些憑證並予以手動備份,請在任何正常運作的 HGS 伺服器節點上執行下列 PowerShell 命令。
Get-HgsKeyProtectionCertificate | Where-Object { $_.CertificateData.GetType().Name -eq 'CertificateReference' } | Format-Table Thumbprint, @{ Label = 'Subject'; Expression = { $_.CertificateData.Certificate.Subject } }
您必須針對所列出的每個憑證手動備份私密金鑰。 如果您使用不可匯出的軟體型憑證,則請連絡憑證授權單位,以確定其有您憑證的備份且/或可視需要重新發行該憑證。 若為建立並儲存在硬體安全性模組中的憑證,則請參閱裝置的文件,以取得有關災害復原規劃的指導方針。
請將憑證備份連同證明原則備份儲存在安全的地方,以便能夠一起還原這兩項。
要備份的其他組態
所備份的 HGS 伺服器狀態不會包含 HGS 叢集的名稱、來自 Active Directory 的任何資訊,或任何用來保護與 HGS API 之通訊的 SSL 憑證。 這些設定對實現一致性來說很重要,但對於讓 HGS 叢集在災害發生後恢復上線來說則不重要。
若要擷取 HGS 服務的名稱,請執行 Get-HgsServer
,並記下證明和金鑰保護 URL 中的一般名稱。
例如,如果證明 URL 是「https://hgs.contoso.com/Attestation」,則「hgs」就是 HGS 服務名稱。
HGS 所使用的 Active Directory 網域應該以和任何其他 Active Directory 網域一樣的方式來管理。 在災害發生後還原 HGS 時,您不一定需要重新建立和目前網域中完全一樣的物件。 不過,如果您備份 Active Directory,並保留有權管理系統的 JEA 使用者清單,以及系統管理員信任的證明用來授權受防護主機的任何安全性群組成員資格,則復原工作會變得更容易。
若要識別針對 HGS 所設定的 SSL 憑證指紋,請在 PowerShell 中執行下列命令。 然後,您可以根據憑證提供者的指示來備份這些 SSL 憑證。
Get-WebBinding -Protocol https | Select-Object certificateHash
從備份還原 HGS
下列步驟說明如何從備份還原 HGS 設定。 這些步驟與兩種情況同時有關:您嘗試復原對已經執行中的 HGS 執行個體所做的變更,以及當您在完全失去先前的 HGS 叢集後建立全新的 HGS 叢集時。
設定取代 HGS 叢集
您必須先有可作為組態還原目的地的已初始化 HGS 叢集,才能還原 HGS。 如果您只是要將意外刪除的設定匯入到現有的 (執行中) 叢集,則可以略過此步驟。 如果您要從完全失去 HGS 的情況下復原,則必須遵循部署指南中的指導方針,安裝並初始化至少一個 HGS 節點。
具體來說,您必須:
- 設定 HGS 網域或將 HGS 加入現有網域
- 使用現有金鑰 或一組臨時金鑰 ,初始化 HGS 伺服器。 從 HGS 備份檔案匯入實際的金鑰後,便可以移除臨時金鑰。
- 從備份匯入 HGS 設定,以還原受信任的主機群組、程式碼完整性原則、TPM 基準和 TPM 識別碼
提示
新的 HGS 叢集不需要使用與從中匯出備份檔案的 HGS 執行個體相同的憑證、服務名稱或網域。
從備份匯入設定
若要從備份檔案將證明原則、PFX 型憑證和非 PFX 憑證的公開金鑰還原至 HGS 節點,請在已初始化的 HGS 伺服器節點上執行下列命令。 系統會提示您輸入您在建立備份時所指定的密碼。
Import-HgsServerState -Path C:\Temp\HGSBackup.xml
如果您只想要匯入系統管理員信任的證明原則或 TPM 信任的證明原則,則可以藉由指定 -ImportActiveDirectoryModeState
或 -ImportTpmModeState
旗標給 Import-HgsServerState 來執行此動作。
在執行 Import-HgsServerState
之前,請先確定您已安裝 Windows Server 2016 的最新累計更新。
不這麼做可能會導致匯入錯誤。
注意
如果您在已安裝一或多個原則的現有 HGS 節點上還原原則,匯入命令會針對每個重複原則顯示錯誤。 這是符合預期的行為,大部分情況下都可以放心地忽略。
重新安裝憑證的私密金鑰
如果從中建立備份的 HGS 上所使用的任何憑證是使用指紋加以新增的,則備份檔案中只會包含這些憑證的公開金鑰。 這表示您必須手動安裝及/或授與每個憑證的私密金鑰存取權,HGS 才能服務來自 Hyper-V 主機的要求。 完成該步驟所需的動作會因您最初發行憑證的方式而有所不同。 針對憑證授權單位所發行的軟體支援憑證,您必須連絡 CA 以取得私密金鑰,並按照其指示安裝到每個 HGS 節點上。 同樣地,如果您的憑證是硬體支援憑證,則必須參閱硬體安全性模組廠商的文件,以在每個 HGS 節點上安裝必要的驅動程式,從而連線到 HSM,並向每部電腦授與私密金鑰的存取權。
提醒您,使用指紋新增至 HGS 的憑證需要將私密金鑰手動複寫至每個節點。 您必須在新增至所還原 HGS 叢集的每個額外節點上重複此步驟。
檢閱匯入的證明原則
從備份匯入設定後,建議您使用 Get-HgsAttestationPolicy
仔細檢閱所有匯入的原則,以確定只有您信任可以執行受防護 VM 的主機才會成功證明。
如果您發現任何不再符合安全性狀態的原則,則可以停用或移除這些原則。
執行診斷以檢查系統狀態
完成 HGS 節點的狀態設定和還原之後,請執行 HGS 診斷工具來檢查系統的狀態。 若要這樣做,請在還原組態時所在的 HGS 節點上執行下列命令:
Get-HgsTrace -RunDiagnostics
如果「整體結果」不是「通過」,則需要執行額外的步驟才能完成系統的設定工作。 如需詳細資訊,請檢查失敗的子測試中所回報的訊息。
修補 HGS
請務必在最新的累計更新推出時就加以安裝,以讓主機守護者服務節點保持最新狀態。如果您要設定全新的 HGS 節點,強烈建議您先安裝任何可用的更新,再安裝 HGS 角色或進行設定。 這可確保新功能或變更的功能會立即生效。
在修補受防護網狀架構時,強烈建議您先升級「所有」Hyper-V 主機再升級 HGS。 這是為了確保在更新 Hyper-V 主機「之後」再對 HGS 上的證明原則進行變更,以提供主機所需的資訊。 如果更新會變更原則的行為,則不會自動啟用這些更新,以免中斷網狀架構。 這類更新會要求您遵循下一節中的指導方針,以啟用新的或變更後的證明原則。 建議您閱讀 Windows Server 的版本資訊,以及您安裝的任何累計更新,以檢查是否需要更新原則。
需要啟用原則的更新
如果 HGS 的更新會引進或大幅變更證明原則的行為,則需要進行額外的步驟以啟用變更後的原則。 只有在匯出和匯入 HGS 狀態之後,才會展開原則變更。 請只在將累計更新套用至環境中的所有主機和所有 HGS 節點之後,才啟用新的或變更後的原則。 每部電腦都更新後,請在任何 HGS 節點上執行下列命令以觸發升級程序:
$password = Read-Host -AsSecureString -Prompt "Enter a temporary password"
Export-HgsServerState -Path .\temporaryExport.xml -Password $password
Import-HgsServerState -Path .\temporaryExport.xml -Password $password
如果引進新的原則,其預設會停用。 若要啟用新的原則,請先在 Microsoft 原則清單中找到它 (有前置詞「HGS_」),然後使用下列命令加以啟用:
Get-HgsAttestationPolicy
Enable-HgsAttestationPolicy -Name <Hgs_NewPolicyName>
管理證明原則
主機想要被視為「狀況良好」且得以執行受防護的 VM,就必須符合一組最低需求,而 HGS 會維護數個證明原則來定義這些需求。 其中的某些原則由 Microsoft 定義,其他原則則由您新增,以定義環境中允許的程式碼完整性原則、TPM 基準和主機。 您必須定期維護這些原則,以確保主機可以在您的更新和替換下繼續正確證明,以及確保任何未受信任的主機或組態會遭到封鎖而無法成功證明。
針對系統管理員信任的證明,只有一個原則會確定主機是否狀況良好:已知受信任的安全性群組中的成員資格。 TPM 證明比較複雜,而且牽涉到用各種原則來測量系統的程式碼和組態,再確定其是否狀況良好。
您可以一次為單一 HGS 同時設定 Active Directory 和 TPM 原則,但該服務只會針對主機在嘗試證明時用來設定主機的目前模式來檢查原則。
若要檢查 HGS 伺服器的模式,請執行 Get-HgsServer
。
預設原則
針對 TPM 信任的證明,HGS 上設定了數個內建原則。 其中的某些原則會「鎖定」起來,也就是為求安全而無法加以停用。 下表會說明每個預設原則的用途。
原則名稱 | 目標 |
---|---|
Hgs_SecureBootEnabled | 要求主機必須啟用安全開機。 必須有此原則才能測量啟動二進位檔和其他 UEFI 鎖定的設定。 |
Hgs_UefiDebugDisabled | 確保主機未啟用核心偵錯工具。 程式碼完整性原則會封鎖使用者模式的偵錯工具。 |
Hgs_SecureBootSettings | 用來確保主機至少符合一個 (系統管理員定義的) TPM 基準的否定原則。 |
Hgs_CiPolicy | 用來確保主機使用其中一個系統管理員定義的 CI 原則的否定原則。 |
Hgs_HypervisorEnforcedCiPolicy | 要求 Hypervisor 必須強制執行程式碼完整性原則。 停用此原則會讓您較無法防範核心模式的程式碼完整性原則攻擊。 |
Hgs_FullBoot | 確保主機不會從睡眠或休眠中恢復。 主機必須正確重新啟動或關閉,才能通過此原則。 |
Hgs_VsmIdkPresent | 要求主機上必須執行虛擬化型的安全性。 IDK 代表要加密傳回主機安全記憶體空間的資訊所需使用的金鑰。 |
Hgs_PageFileEncryptionEnabled | 要求主機上必須加密分頁檔。 停用此原則可能會導致在有人檢查未加密的分頁檔而取得租用戶秘密的情況下洩漏資訊。 |
Hgs_BitLockerEnabled | 要求 Hyper-V 主機上必須啟用 BitLocker。 為確保效能,此原則預設為停用,不建議加以啟用。 此原則不會影響受防護 VM 本身的加密。 |
Hgs_IommuEnabled | 要求主機必須使用 IOMMU 裝置以防止受到直接記憶體存取攻擊。 停用此原則並使用未啟用 IOMMU 的主機,可能會向直接記憶體攻擊公開租用戶 VM 的秘密。 |
Hgs_NoHibernation | 要求 Hyper-V 主機上必須停用休眠。 停用此原則會允許主機將受防護 VM 的記憶體儲存至未加密的休眠檔案。 |
Hgs_NoDumps | 要求 Hyper-V 主機上必須停用記憶體傾印。 如果停用此原則,建議您設定傾印加密,以防止受防護 VM 的記憶體儲存到未加密的損毀傾印檔案。 |
Hgs_DumpEncryption | 要求記憶體傾印 (如果已在 Hyper-V 主機上啟用) 必須使用 HGS 信任的加密金鑰進行加密。 如果主機上未啟用傾印,此原則就不適用。 如果此原則和 Hgs_NoDumps 都停用,受防護 VM 的記憶體就可以儲存到未加密的傾印檔案。 |
Hgs_DumpEncryptionKey | 這是否定原則,可用來確保設定為允許記憶體傾印的主機會使用 HGS 已知的系統管理員定義傾印檔案加密金鑰。 當 Hgs_DumpEncryption 停用時,此原則就不適用。 |
授權新的受防護主機
若要授權新主機成為受防護主機 (例如成功證明),HGS 必須信任主機以及 (設定為使用 TPM 信任的證明時) 主機上執行的軟體。
用來授權新主機的步驟會根據目前用來設定 HGS 的證明模式而有所不同。
若要檢查受防護網狀架構的證明模式,請在任何 HGS 節點上執行 Get-HgsServer
。
軟體的組態
請確定新的 Hyper-V 主機上已安裝 Windows Server 2016 Datacenter 版本。 Windows Server 2016 Standard 無法在受防護網狀架構中執行受防護的 VM。 主機可以安裝桌面體驗或 Server Core。
在具有桌面體驗和 Server Core 的伺服器上,您必須安裝「Hyper-V」和「主機守護者 Hyper-V 支援」伺服器角色:
Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
系統管理員信任的證明
若要在使用系統管理員信任的證明時於 HGS 中註冊新的主機,您必須先將主機新增至其所加入網域中的安全性群組。 一般而言,每個網域都會有一個安全性群組供受防護主機使用。 如果您已經向 HGS 註冊該群組,則唯一需要採取的行動就是重新啟動主機以重新整理其群組成員資格。
您可以執行下列命令來檢查 HGS 信任哪些安全性群組:
Get-HgsAttestationHostGroup
若要向 HGS 註冊新的安全性群組,請先擷取主機網域中的群組安全性識別碼 (SID),並向 HGS 註冊該 SID。
Add-HgsAttestationHostGroup -Name "Contoso Guarded Hosts" -Identifier "S-1-5-21-3623811015-3361044348-30300820-1013"
如需有關如何設定主機網域與 HGS 之間信任的指示,請參閱部署指南。
TPM 信任的證明
在 TPM 模式中設定 HGS 時,主機必須通過所有鎖定的原則和前置詞為「Hgs_」的「已啟用」原則,以及至少一個 TPM 基準、TPM 識別碼和程式碼完整性原則。 每次新增主機時,都必須向 HGS 註冊新的 TPM 識別碼。 只要主機執行的軟體 (且已套用相同的程式碼完整性原則) 和 TPM 基準與環境中的其他主機相同,您就不需要新增新的 CI 原則或基準。
新增新主機的 TPM 識別碼 在新的主機上執行下列命令以擷取 TPM 識別碼。 請務必為主機指定唯一的名稱,以方便您在 HGS 上查閱該主機。 如果您解除委任該主機,或想要防止該主機在 HGS 中執行受防護的 VM,就需要此資訊。
(Get-PlatformIdentifier -Name "Host01").InnerXml | Out-File C:\temp\host01.xml -Encoding UTF8
將此檔案複製到 HGS 伺服器,然後執行下列命令向 HGS 註冊該主機。
Add-HgsAttestationTpmHost -Name 'Host01' -Path C:\temp\host01.xml
新增 TPM 基準 如果新的主機會為環境執行新的硬體或韌體組態,您可能需要採用新的 TPM 基準。 若要這樣做,請在主機上執行下列命令。
Get-HgsAttestationBaselinePolicy -Path 'C:\temp\hardwareConfig01.tcglog'
注意
如果您收到錯誤,內容指出主機驗證失敗所以無法成功證明,請不要擔心。
這是確保主機可以執行受防護 VM 的必要條件檢查,這個檢查結果可能表示您尚未套用程式碼完整性原則或其他必要設定。
請閱讀錯誤訊息,進行所建議的任何變更,然後再試一次。
或者,您這時也可以將 -SkipValidation
旗標新增至命令,以略過驗證。
將 TPM 基準複製到 HGS 伺服器,然後使用下列命令進行註冊。 建議您使用命名慣例,以方便了解此 Hyper-V 主機類別的硬體和韌體組態。
Add-HgsAttestationTpmPolicy -Name 'HardwareConfig01' -Path 'C:\temp\hardwareConfig01.tcglog'
新增程式碼完整性原則 如果您已變更 Hyper-V 主機上執行的程式碼完整性原則,則必須先向 HGS 註冊新原則,這些主機才能成功證明。
在作為環境中受信任 Hyper-V 電腦主要映像的參考主機上,使用 New-CIPolicy
命令擷取新的 CI 原則。
建議您為 Hyper-V 主機 CI 原則使用 FilePublisher 層級和雜湊後援。
您應該先在稽核模式中建立 CI 原則,以確保一切都如預期般運作。
在系統上驗證範例工作負載後,您可以強制執行原則,並將強制執行的版本複製到 HGS。
如需程式碼完整性原則組態選項的完整清單,請參閱 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
建立、測試並強制執行原則後,請將二進位檔 (.p7b) 複製到 HGS 伺服器並註冊原則。
Add-HgsAttestationCiPolicy -Name 'WS2016-Hardware01' -Path 'C:\temp\ws2016-hardware01-ci.p7b'
新增記憶體傾印加密金鑰
停用「Hgs_NoDumps」原則並啟用「Hgs_DumpEncryption」原則時,受防護主機可以啟用記憶體傾印 (包括損毀傾印),但前提是這些傾印必須加密。 如果受防護主機已停用記憶體傾印,或是使用 HGS 已知的金鑰加密記憶體傾印,受防護主機只會通過證明。 根據預設,HGS 上不會設定任何傾印加密金鑰。
若要將傾印加密金鑰新增至 HGS,請使用 Add-HgsAttestationDumpPolicy
Cmdlet 向 HGS 提供傾印加密金鑰的雜湊。
如果您在設定了傾印加密的 Hyper-V 主機上擷取 TPM 基準,雜湊會包含在 tcglog 中,而且可以提供給 Add-HgsAttestationDumpPolicy
Cmdlet。
Add-HgsAttestationDumpPolicy -Name 'DumpEncryptionKey01' -Path 'C:\temp\TpmBaselineWithDumpEncryptionKey.tcglog'
或者,您也可以直接向 Cmdlet 提供以字串表示的雜湊。
Add-HgsAttestationDumpPolicy -Name 'DumpEncryptionKey02' -PublicKeyHash '<paste your hash here>'
如果您選擇在受防護網狀架構中使用不同的金鑰,請務必將每個唯一的傾印加密金鑰新增至 HGS。 使用 HGS 不知道的金鑰來加密記憶體傾印的主機將不會通過證明。
如需在主機上設定傾印加密的詳細資訊,請參閱 Hyper-V 文件。
檢查系統是否已通過證明
向 HGS 註冊必要資訊後,請檢查主機是否通過證明。
在新增的 Hyper-V 主機上執行 Set-HgsClientConfiguration
,並提供 HGS 叢集的正確 URL。
在任何 HGS 節點上執行 Get-HgsServer
即可取得這些 URL。
Set-HgsClientConfiguration -KeyProtectionServerUrl 'https://hgs.bastion.local/KeyProtection' -AttestationServerUrl 'https://hgs.bastion.local/Attestation'
如果產生的狀態未指出「IsHostGuarded : True」,您就必須針對組態進行疑難排解。 在證明失敗的主機上執行下列命令,以取得可協助您解決證明失敗問題的詳細報告。
Get-HgsTrace -RunDiagnostics -Detailed
重要
如果您使用的是 Windows Server 2019 或 Windows 10 版本 1809,且使用程式碼完整性原則,則 Get-HgsTrace
可能會針對程式碼完整性原則作用中診斷傳回失敗。
當這是唯一失敗的診斷時,您就可以放心地忽略此結果。
檢閱證明原則
若要檢閱 HGS 上所設定原則的目前狀態,請在任何 HGS 節點上執行下列命令:
# List all trusted security groups for admin-trusted attestation
Get-HgsAttestationHostGroup
# List all policies configured for TPM-trusted attestation
Get-HgsAttestationPolicy
如果您發現啟用的原則已不再符合安全性需求 (例如,現已被視為不安全的舊程式碼完整性原則),則可以在下列命令中取代原則的名稱來加以停用:
Disable-HgsAttestationPolicy -Name 'PolicyName'
同樣地,您也可以使用 Enable-HgsAttestationPolicy
來重新啟用原則。
如果您不再需要某個原則,而且想要從所有 HGS 節點中加以移除,請執行 Remove-HgsAttestationPolicy -Name 'PolicyName'
以永久刪除該原則。
變更證明模式
如果您使用系統管理員信任的證明來啟動受防護網狀架構,則您可能會想要在環境中有足夠的 TPM 2.0 相容主機後,立刻升級為更強大的 TPM 證明模式。 當您準備好進行切換時,可以在 HGS 中預先載入所有證明成品 (CI 原則、TPM 基準和 TPM 識別碼),同時繼續使用系統管理員信任的證明來執行 HGS。 若要這樣做,只要遵循授權新的受防護主機一節中的指示即可。
將所有原則新增至 HGS 之後,下一步是在主機上執行綜合證明嘗試,以查看原則是否會在 TPM 模式中通過證明。 這不會影響 HGS 目前的操作狀態。 下列命令必須在可存取環境中所有主機和至少一個 HGS 節點的電腦上執行。 如果您的防火牆或其他安全性原則會禁止此操作,則可以略過此步驟。 可以的話,建議您執行綜合證明,以便知道「轉為」TPM 模式是否會導致 VM 停機。
# 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
診斷完成後,請檢閱輸出的資訊,以判斷是否有任何主機會在 TPM 模式中證明失敗。 重新執行診斷,直到每個主機都「通過」,然後繼續將 HGS 變更為 TPM 模式。
變更為 TPM 模式只需要一秒鐘的時間就能完成。 在任何 HGS 節點上執行下列命令便可更新證明模式。
Set-HgsServer -TrustTpm
如果您遇到問題,而且需要切換回 Active Directory 模式,則可以藉由執行 Set-HgsServer -TrustActiveDirectory
來進行切換。
在確認一切都如預期般運作後,請從 HGS 中移除所有受信任的 Active Directory 主機群組,並移除 HGS 與網狀架構網域之間的信任。 如果您將 Active Directory 信任留下,則可能會因為某人重新啟用信任並將 HGS 切換至 Active Directory 模式而面臨風險,這可能會允許未受信任的程式碼在未受檢查的情況下於受防護主機上執行。
金鑰管理
受防護網狀架構解決方案會使用數個公用/私密金鑰組來驗證解決方案中各種元件的完整性,並加密租用戶祕密。 主機守護者服務已設定了至少兩個憑證 (具有公開和私密金鑰),以用於簽署和加密用來啟動受防護 VM 的金鑰。 這些金鑰必須謹慎管理。 如果攻擊者取得私密金鑰,就能讓網狀架構上執行的任何 VM 解除防護,或設定冒充的 HGS 叢集,讓這個叢集使用較弱的證明原則以略過您設置好的保護。 如果您在災害期間失去私密金鑰,且在備份中找不到私密金鑰,就必須設定新的金鑰組,並讓每個 VM 更換金鑰以授權新的憑證。
本節涵蓋一般的金鑰管理主題,可協助您設定金鑰使其正常運作並保持安全。
新增金鑰
雖然 HGS 必須使用一組金鑰加以初始化,但您可以在 HGS 中新增多個加密和簽署金鑰。 會在 HGS 中新增金鑰的兩個最常見原因如下:
- 為了支援「自備金鑰」案例,在這些案例中,租用戶會將其私密金鑰複製到硬體安全性模組,並只授權其金鑰啟動其受防護的 VM。
- 為了更換 HGS 的現有金鑰,方法是先新增金鑰並保留這兩組金鑰,直到每個 VM 組態都已更新為使用新的金鑰。
新增金鑰的程序會根據所使用的憑證類型而有所不同。
選項 1:新增儲存在 HSM 中的憑證
建議用於保護 HGS 金鑰的方法是使用建立於硬體安全性模組 (HSM) 中的憑證。 HSM 可確保金鑰的使用會繫結至資料中心內安全性敏感裝置的實體存取。 每個 HSM 都不一樣,而且其用來建立憑證並向 HGS 註冊憑證的程序是唯一的。 下列步驟旨在提供使用 HSM 支援憑證的粗略指導方針。 如需確切的步驟和功能,請參閱 HSM 廠商的文件。
在叢集中的每個 HGS 節點上安裝 HSM 軟體。 視您擁有的是網路還是本機 HSM 裝置而定,您可能需要設定 HSM 以向電腦授與其金鑰存放區的存取權。
以 2048 位元 RSA 金鑰在 HSM 中建立 2 個用於加密和簽署的憑證
- 在 HSM 中以資料加密金鑰使用屬性建立加密憑證
- 在 HSM 中以數位簽章金鑰使用屬性建立簽署憑證
按照 HSM 廠商的指導方針,在每個 HGS 節點的本機憑證存放區中安裝憑證。
如果 HSM 使用細微權限向特定應用程式或使用者授與私密金鑰的使用權限,您必須向 HGS 群組的受管理服務帳戶授與憑證的存取權。 您可以執行
(Get-IISAppPool -Name KeyProtection).ProcessModel.UserName
來尋找 HGS gMSA 帳戶的名稱在下列命令中將指紋取代為您憑證的指紋,以將簽署和加密憑證新增至 HGS:
Add-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint "AABBCCDDEEFF00112233445566778899" Add-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint "99887766554433221100FFEEDDCCBBAA"
選項 2:新增不可匯出的軟體憑證
如果您有貴公司或具有不可匯出私密金鑰的公開憑證授權單位所發行的軟體支援憑證,您就必須使用其指紋將憑證新增至 HGS。
根據憑證授權單位的指示,在您的電腦上安裝憑證。
向 HGS 群組的受管理服務帳戶授與憑證私密金鑰的讀取權限。 您可以執行
(Get-IISAppPool -Name KeyProtection).ProcessModel.UserName
來尋找 HGS gMSA 帳戶的名稱使用下列命令並替換您憑證的指紋 (若為簽署憑證,請將「Encryption」變更為「Signing」),以向 HGS 註冊憑證:
Add-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint "AABBCCDDEEFF00112233445566778899"
重要
您必須手動安裝私密金鑰,並向每個 HGS 節點上的 gMSA 帳戶授與讀取權限。 HGS 無法針對以指紋註冊的「任何」憑證自動複寫私密金鑰。
選項 3:新增儲存在 PFX 檔案中的憑證
如果您擁有的軟體支援憑證具有可匯出的私密金鑰,並能以 PFX 檔案格式進行儲存並以密碼加以保護,HGS 便可自動為您管理憑證。 以 PFX 檔案新增的憑證會自動複寫到 HGS 叢集的每個節點,而 HGS 會獲得私密金鑰的存取權。 若要使用 PFX 檔案新增憑證,請在任何 HGS 節點上執行下列命令 (若為簽署憑證,請將「Encryption」變更為「Signing」):
$certPassword = Read-Host -AsSecureString -Prompt "Provide the PFX file password"
Add-HgsKeyProtectionCertificate -CertificateType Encryption -CertificatePath "C:\temp\encryptionCert.pfx" -CertificatePassword $certPassword
識別和變更主要憑證 雖然 HGS 可以支援多個簽署和加密憑證,但其會使用一對憑證作為其「主要」憑證。 這些憑證是有人下載該 HGS 叢集的守護者中繼資料時將會使用的憑證。 若要檢查哪些憑證目前標示為主要憑證,請執行下列命令:
Get-HgsKeyProtectionCertificate -IsPrimary $true
若要設定新的主要加密或簽署憑證,請尋找所需憑證的指紋,並使用下列命令將其標示為主要憑證:
Get-HgsKeyProtectionCertificate
Set-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint "AABBCCDDEEFF00112233445566778899" -IsPrimary
Set-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint "99887766554433221100FFEEDDCCBBAA" -IsPrimary
更新或取代金鑰
當您建立 HGS 所使用的憑證時,系統會根據憑證授權單位的原則和您的要求資訊,為憑證指派到期日。 一般而言,在憑證有效性很重要的案例中 (例如保護 HTTP 通訊),憑證必須在到期前加以更新,以免服務中斷或出現可怕的錯誤訊息。 從這個意義上說,HGS 不是在使用憑證。 HGS 只是透過憑證來方便建立和儲存非對稱的金鑰組。 HGS 上有到期的加密或簽署憑證並不表示受防護 VM 所受到的保護就會變弱或完全消失。 此外,HGS 也不會執行憑證撤銷檢查。 HGS 憑證或發行授權單位的憑證遭到撤銷並不會影響 HGS 對於憑證的使用。
只有在有理由相信 HGS 憑證的私密金鑰已遭竊的時候,才需要擔心 HGS 憑證。 在此情況下,受防護 VM 的完整性會面臨風險,因為擁有 HGS 加密和簽署金鑰組的私人那一半就足以移除 VM 上的防護保護,或建立具有較弱證明原則的偽造 HGS 伺服器。
如果您發現自己落入這種情況,或合規性標準要求您定期重新整理憑證金鑰,下列步驟會概述用來變更 HGS 伺服器上金鑰的程序。 請注意,下列指導方針所代表的是一項會導致 HGS 叢集所提供的每個 VM 服務中斷的重大工作。 您必須適當規劃 HGS 金鑰的變更方式,才能盡量減少服務中斷時間,並確保租用戶 VM 的安全性。
在 HGS 節點上執行下列步驟,以註冊一對新的加密和簽署憑證。 若要深入了解各種可將新的金鑰新增至 HGS 的方式,請參閱新增金鑰一節。
為 HGS 伺服器建立一對新的加密和簽署憑證。 理想情況是在硬體安全性模組中建立這對憑證。
使用 Add-HgsKeyProtectionCertificate 註冊新的加密和簽署憑證
Add-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint> Add-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint>
如果您使用指紋,則必須移至叢集中的每個節點以安裝私密金鑰,並向 HGS gMSA 授與金鑰的存取權。
將新憑證設為 HGS 中的預設憑證
Set-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint> -IsPrimary Set-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint> -IsPrimary
至此,使用從 HGS 節點取得的中繼資料所建立的防護資料將會使用新的憑證,但現有 VM 仍會繼續運作,因為其中仍有較舊的憑證。
為了確保所有現有 VM 都會使用新的金鑰,您必須在每個 VM 上更新金鑰保護裝置。
這個動作需要 VM 擁有者 (擁有「擁有者」守護者的人員或實體) 參與。 針對每個受防護的 VM 執行下列步驟:
關閉 VM。 在其餘步驟完成前不能將 VM 重新開啟,否則您必須重新開始該程序。
將目前的金鑰保護裝置儲存至檔案:
Get-VMKeyProtector -VMName 'VM001' | Out-File '.\VM001.kp'
將 KP 轉移給 VM 擁有者
讓擁有者從 HGS 下載更新後的守護者資訊,並將資訊匯入到其本機系統上
將目前的 KP 讀入記憶體、向新的守護者授與 KP 的存取權,然後執行下列命令將其儲存到新的檔案:
$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
將更新後的 KP 複製回裝載網狀架構。
將 KP 套用至原始 VM:
$updatedKP = Get-Content -Path .\updatedVM001.kp Set-VMKeyProtector -VMName VM001 -KeyProtector $updatedKP
最後,啟動 VM 並確定其已成功執行。
注意
如果 VM 擁有者在 VM 上設定的金鑰保護裝置不正確,且未授權網狀架構執行 VM,您將無法啟動受防護的 VM。 若要返回上一個已知良好的金鑰保護裝置,請執行
Set-VMKeyProtector -RestoreLastKnownGoodKeyProtector
更新所有 VM 以授權新的守護者金鑰之後,便可以停用並移除舊的金鑰。
從
Get-HgsKeyProtectionCertificate -IsPrimary $false
取得舊憑證的指紋執行下列命令以停用每個憑證:
Set-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint> -IsEnabled $false Set-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint> -IsEnabled $false
確定在憑證停用的狀況下 VM 還是能夠啟動後,請執行下列命令從 HGS 移除憑證:
Remove-HgsKeyProtectionCertificate -CertificateType Signing -Thumbprint <Thumbprint>` Remove-HgsKeyProtectionCertificate -CertificateType Encryption -Thumbprint <Thumbprint>`
重要
VM 備份會包含能讓系統使用舊憑證來啟動 VM 的舊金鑰保護裝置資訊。 如果您發覺私密金鑰已遭入侵,就應該假設 VM 備份也遭到入侵,並採取適當行動。 終結備份中的 VM 組態 (.vmcx) 將會移除金鑰保護裝置,但代價是下次需要使用 BitLocker 修復密碼來讓 VM 開機。
節點之間的金鑰複寫
HGS 叢集中的每個節點都必須使用相同的加密、簽署和 (有設定時) SSL 憑證來進行設定。 必須這麼做才能確保連線到叢集中任何節點的 Hyper-V 主機都可以成功服務其要求。
如果您使用 PFX 型憑證初始化 HGS 伺服器,則 HGS 會自動在叢集中的每個節點上複寫這些憑證的公開和私密金鑰。 您只需要在一個節點上新增金鑰即可。
如果您使用憑證參考或指紋初始化 HGS 伺服器,則 HGS 只會將憑證中的「公開」金鑰複寫至每個節點。 此外,在此案例中,HGS 無法向自己授與任何節點上私密金鑰的存取權。 因此,您必須負責:
- 在每個 HGS 節點上安裝私密金鑰
- 向 HGS 群組的受管理服務帳戶 (gMSA) 授與每個節點上私密金鑰的存取權。這些工作會增加額外的操作負擔,不過,HSM 支援的金鑰和具有不可匯出私密金鑰的憑證都需要您這麼做。
SSL 憑證絕不會以任何形式進行複寫。 您必須負責以相同的 SSL 憑證初始化每個 HGS 伺服器,並在您選擇更新或取代 SSL 憑證時更新每部伺服器。 在取代 SSL 憑證時,建議您使用 Set-HgsServer Cmdlet 來進行。
取消設定 HGS
如果您需要解除委任或大幅重新設定 HGS 伺服器,您可以使用 Clear-HgsServer 或 Uninstall-HgsServer Cmdlet 來進行。
清除 HGS 組態
若要從 HGS 叢集移除節點,請使用 Clear-HgsServer Cmdlet。 此 Cmdlet 會在執行所在的伺服器上進行下列變更:
- 將證明和金鑰保護服務取消註冊
- 移除「microsoft.windows.hgs」JEA 管理端點
- 從 HGS 容錯移轉叢集內移除本機電腦
如果伺服器是叢集中的最後一個 HGS 節點,則叢集及其對應的分散式網路名稱資源也會遭到終結。
# Removes the local computer from the HGS cluster
Clear-HgsServer
清除作業完成後,可以使用 Initialize-HgsServer 重新初始化 HGS 伺服器。 如果您使用 Install-HgsServer 來設定 Active Directory Domain Services 網域,該網域在清除作業完成後仍會保持已設定和正常運作的狀態。
解除安裝 HGS
如果您想要從 HGS 叢集移除節點,並將其上執行的 Active Directory 網域控制站降級,請使用 Uninstall-HgsServer Cmdlet。 此 Cmdlet 會在執行所在的伺服器上進行下列變更:
- 將證明和金鑰保護服務取消註冊
- 移除「microsoft.windows.hgs」JEA 管理端點
- 從 HGS 容錯移轉叢集內移除本機電腦
- 將 Active Directory 網域控制站降級 (如果有設定的話)
如果伺服器是叢集中的最後一個 HGS 節點,則網域、容錯移轉叢集和叢集的分散式網路名稱資源也會遭到終結。
# 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
解除安裝作業完成且電腦重新啟動之後,您可以使用 Install-HgsServer 重新安裝 ADDC 和 HGS,或將電腦加入網域並使用 Initialize-HgsServer 初始化該網域中的 HGS 伺服器。
如果您不想再使用電腦作為 HGS 節點,則可以從 Windows 中移除該角色。
Uninstall-WindowsFeature HostGuardianServiceRole