共用方式為


使用 BitLocker 搭配叢集共用磁碟區 (CSV)

BitLocker 概觀

BitLocker 磁碟機加密是一項資料保護功能,可以與操作系統整合,並應對因計算機遺失、被竊或未妥善退役而導致的資料竊取或暴露風險。

BitLocker 在與信任平台模組 (TPM) 1.2 版或更新版本搭配使用時,提供最多的保護。 TPM 是由電腦製造商安裝在許多較新計算機的硬體元件。 它可與 BitLocker 搭配運作,協助保護用戶數據,並確保計算機在系統離線時未遭到竄改。

在沒有 TPM 1.2 版或更新版本的電腦上,您仍然可以使用 BitLocker 來加密 Windows 操作系統磁碟驅動器。 不過,此實作需要使用者插入USB啟動金鑰匙以啟動電腦或從休眠模式恢復。 從 Windows 8 開始,您可以使用作業系統磁碟區密碼來保護沒有 TPM 的電腦的磁碟區。 這兩個選項都未提供 BitLocker 透過 TPM 提供的啟動前系統完整性驗證。

除了 TPM 之外,BitLocker 還可讓您選擇鎖定一般啟動程式,直到使用者提供個人標識號 (PIN) 或插入抽取式裝置為止。 此裝置可以是包含啟動金鑰的 USB 快閃磁碟驅動器。 這些額外的安全措施提供多重驗證,並保證在輸入正確的 PIN 或啟動金鑰之前,電腦不會啟動或從休眠狀態恢復。

叢集共用磁碟區概觀

叢集共用磁碟區 (CSV) 允許 Windows Server 故障轉移叢集或 Azure 本地的多個節點同時讀寫相同的邏輯單元編號 (LUN) 或磁碟,該磁碟區被配置為 NTFS 磁碟區。 磁碟可以布建為復原文件系統 (ReFS)。 不過,CSV 磁碟驅動器處於重新導向模式,這表示寫入存取權會傳送至協調器節點。 使用 CSV 時,叢集角色可以快速地從一個節點轉移到另一個節點,而不需要變更磁碟驅動器擁有權,也不需要卸除和重新掛接磁碟區。 CSV 也有助於簡化故障轉移叢集中可能大量 LUN 的管理。

CSV 提供在NTFS或ReFS上方分層的一般用途叢集文件系統。 CSV 應用程式包括:

  • 叢集虛擬硬碟(VHD/VHDX)檔案用於叢集 Hyper-V 虛擬機器
  • 為 Scale-Out 檔案伺服器叢集角色擴充檔案共享來儲存應用程式數據。 此角色的應用程式數據範例包括 Hyper-V 虛擬機檔案和Microsoft SQL Server 數據。 Windows Server 2012 R2 和更早版本中的 Scale-Out 檔伺服器不支援 ReFS。 如需 Scale-Out 檔案伺服器的詳細資訊,請參閱 Scale-Out 應用程式資料的檔案伺服器
  • Microsoft SQL Server 2014(或更新版本)故障轉移叢集實例(FCI)中,SQL Server 2012 和舊版 SQL Server 的 Microsoft SQL Server 叢集工作負載不支援使用 CSV。
  • Windows Server 2019 或更高版本 Microsoft分散式交易控制 (MSDTC)

搭配叢集共用磁碟區使用 BitLocker

叢集內磁碟區上的 BitLocker 會根據叢集服務如何「檢視」要保護的磁碟區來管理。 磁碟區可以是實體磁碟資源,例如儲存區域網路(SAN)上的邏輯單元號碼(LUN)或網路附加儲存(NAS)。

或者,磁碟區可以是叢集中的叢集共用磁碟區(CSV)。 使用 BitLocker 搭配針對叢集指定的磁碟區時,可以在加入叢集之前或叢集中時,先使用 BitLocker 來啟用磁碟區。 先將資源放入維護模式,再啟用 BitLocker。

Windows PowerShell 或 Manage-BDE 命令行介面是管理 CSV 磁碟區上 BitLocker 的慣用方法。 因為 CSV 磁碟區是裝載點,因此建議使用此方法而非使用 BitLocker 控制面板選項。 裝入點是NTFS物件,用來提供其他磁碟區的進入點。 載入點不需要使用驅動器號。 缺少驅動器號的磁碟區不會出現在 BitLocker 控制面板項目中。

BitLocker 解除鎖定受保護的磁碟區時,會按照以下順序嘗試解鎖,而不需要使用者介入:

  1. 清除金鑰

  2. 驅動程式為基礎的自動解鎖金鑰

  3. ADAccountOrGroup 保護裝置

    1. 服務上下文保護器

    2. 用戶保護裝置

  4. 註冊表基於的自動解鎖金鑰

故障轉移叢集需要基於 Active Directory 的保護器選項來保護叢集磁碟資源。 否則,[控制面板] 項目中無法使用 CSV 資源。

Active Directory Domain Services (AD DS) 保護裝置,用來保護 AD DS 基礎結構中保留的叢集磁碟區。 ADAccountOrGroup 保護裝置是網域安全性標識碼(SID)型保護裝置,可以系結至使用者帳戶、計算機帳戶或群組。 針對受保護的磁碟區提出解除鎖定要求時,BitLocker 服務會中斷要求,並使用 BitLocker 保護/取消保護 API 來解除鎖定或拒絕要求。

新功能

在以往的 Windows Server 和 Azure 本機版本中,唯一支援的加密保護機制是以 SID 為基礎的保護機制,其中使用的帳戶是作為 Active Directory 中建立的叢集名稱物件 (CNO),這是故障轉移叢集設定的一部分。 這是安全的設計,因為保護裝置會儲存在 Active Directory 中,並受到 CNO 密碼的保護。 此外,它也可讓您輕鬆布建和解除鎖定磁碟區,因為每個故障轉移叢集節點都可以存取 CNO 帳戶。

缺點有三個方面:

  1. 當在沒有任何存取資料中心內的 Active Directory 控制器的情況下建立故障轉移叢集時,此方法顯然無法運作。

  2. 如果 Active Directory 控制器沒有回應或緩慢,磁碟區解除鎖定可能會花費太長的時間(且可能逾時)。

  3. 如果 Active Directory 控制器無法使用,磁碟驅動器的在線程式就會失敗。

新增了一項功能,使故障轉移叢集可產生並維護其自己的磁碟區 BitLocker 金鑰保護裝置。 它會加密並儲存在本機叢集資料庫中。 由於叢集資料庫是每個叢集節點上系統磁碟區所支援的復寫存放區,因此每個叢集節點上的系統磁碟區也應該受到 BitLocker 保護。 故障轉移叢集不會強制加密系統磁碟區,因為某些解決方案可能不想或不需要這樣做。 如果系統磁碟驅動器不是 Bitlockered,故障轉移叢集會在在線和解除鎖定程式期間將此標示為警告事件。 如果故障轉移叢集驗證偵測到這是無 Active Directory 或工作組設定,且系統磁碟區未加密,則會記錄訊息。

安裝 BitLocker 加密

BitLocker 是必須新增至叢集所有節點的功能。

使用伺服器管理員新增 BitLocker

  1. 選取伺服器管理員圖示或執行 servermanager.exe,以開啟 Server Manager

  2. 從 [伺服器管理員] 導覽列中選取 [管理],然後選取 [新增角色和功能],以啟動 [新增角色及功能精靈]

  3. 開啟 新增角色及功能精靈 後,在 Before you begin 窗格(如顯示)中選取 下一步

  4. 在 [新增角色與功能精靈] 窗格的 [安裝 類型] 窗格上,選取 [角色型] 或 [ 功能型安裝],然後選取 [下一步] 繼續

  5. [伺服器選取] 窗格中,選取 [從伺服器集區選取伺服器] 選項,然後確認用於 BitLocker 功能安裝的伺服器。

  6. [新增角色及功能] 精靈的 [伺服器角色] 窗格中選取 [下一步] 以繼續到 [功能] 窗格。

  7. 選取 [BitLocker 磁碟驅動器加密] 旁的複選框,[新增角色和功能] 精靈的 [ 功能] 窗格內。 精靈會顯示 BitLocker 可用的其他管理功能。 如果您不想安裝這些功能,請取消選取 [包含管理工具] 選項,然後選取 [[新增功能]。 選擇性功能選取完成後,請選取 [下一步] 以繼續。

注意

增強式記憶體 功能是啟用 BitLocker 的必要功能。 此功能可以在具備相應功能的系統上支援加密硬碟。

  1. 在 [新增角色和 功能精靈] 的 [確認] 窗格中,選取 [安裝],以開始 BitLocker 功能安裝。 BitLocker 功能需要重新啟動才能完成。 選取 [自動重新啟動目的地伺服器] 的 選項位於 確認 窗格中,將會在安裝完成後強制計算機重新啟動。

  2. 如果未選取 [視需要自動重新啟動目的伺服器] 複選框,[新增角色與功能精靈] 的 [結果] 窗格將顯示 BitLocker 功能安裝是否成功或失敗。 如有需要,完成功能安裝所需的額外動作通知,例如重新啟動計算機,將會顯示在結果文字中。

使用 PowerShell 新增 BitLocker

針對每部伺服器使用下列命令:

Install-WindowsFeature -ComputerName "Node1" -Name "BitLocker" -IncludeAllSubFeature -IncludeManagementTools

若要同時在所有叢集伺服器上執行 命令,請使用下列腳本,修改開頭的變數清單以符合您的環境:

以您的值填入這些變數。

$ServerList = "Node1", "Node2", "Node3", "Node4" 
$FeatureList = "BitLocker"

此元件會在 $ServerList 中的所有伺服器上執行 Install-WindowsFeature Cmdlet,並傳遞$FeatureList中的功能清單。

Invoke-Command ($ServerList) {  
    Install-WindowsFeature -Name $Using:Featurelist -IncludeAllSubFeature -IncludeManagementTools 
}

接下來,重新啟動所有伺服器:

$ServerList = "Node1", "Node2", "Node3", "Node4" Restart-Computer -ComputerName $ServerList -WSManAuthentication Kerberos

您可以同時新增多個角色和功能。 例如,若要新增 BitLocker、故障轉移叢集和檔案伺服器角色,該 $FeatureList 會包含以逗號分隔的所有必要專案。 例如:

$ServerList = "Node1", "Node2", "Node3", "Node4" 
$FeatureList = "BitLocker", “Failover-Clustering”, “FS-FileServer”

配置加密的磁碟區

在使用 BitLocker 加密設置磁碟驅動器時,可在磁碟驅動器已是故障轉移叢集的一部分時完成,或是在加入故障轉移叢集之前在外部完成。 若要自動建立外部密鑰保護模組,必須在啟用 BitLocker 之前,將磁碟驅動器設為容錯移轉叢集中的一個資源。 如果在將磁碟驅動器新增至故障轉移叢集之前啟用 BitLocker,則必須完成建立外部密鑰保護裝置的其他手動步驟。

布建加密的磁碟區需要以系統管理許可權執行 PowerShell 命令。 有兩個選項可以加密磁碟驅動器,讓故障轉移叢集能夠建立和使用其專屬的 BitLocker 密鑰。

  1. 內部修復金鑰

  2. 外部修復金鑰檔案

使用修復金鑰加密

使用修復金鑰加密磁碟驅動器,可讓 BitLocker 修復金鑰建立並新增至叢集資料庫。 當磁碟驅動器上線時,它只需要查詢本機叢集配置檔案庫,以獲取恢復金鑰。

將磁碟資源移至將啟用 BitLocker 加密的節點:

Get-ClusterSharedVolume -Name "Cluster Disk 1" | Move-ClusterSharedVolume Resource -Node Node1

將磁碟資源放入維護模式:

Get-ClusterSharedVolume -Name "Cluster Disk 1" | Suspend-ClusterResource

隨即會出現一個對話框,指出:

Suspend-ClusterResource

Are you sure that you want to turn on maintenance for Cluster Shared Volume ‘Cluster Disk 1’? Turning on maintenance will stop all clustered roles that use this volume and will interrupt client access.

若要繼續,請按 [是]

若要啟用 BitLocker 加密,請執行:

Enable-BitLocker -MountPoint "C:\\ClusterStorage\\Volume1" -RecoveryPasswordProtector

輸入命令之後,會出現警告,並提供數值修復密碼。 將密碼儲存在安全的位置,因為後續步驟中也需要密碼。 警告看起來會像這樣:


WARNING: ACTIONS REQUIRED:

    1. Save this numerical recovery password in a secure location away from your computer:
        
        271733-258533-688985-480293-713394-034012-061963-682044

    To prevent data loss, save this password immediately. This password helps ensure that you can unlock the encrypted volume.

若要取得磁碟區的 BitLocker 保護裝置資訊,可以執行下列命令:

(Get-BitlockerVolume -MountPoint "C:\\ClusterStorage\\Volume1").KeyProtector

這會顯示金鑰保護裝置識別碼和修復密碼字串。

KeyProtectorId : {26935AC3-8B17-482D-BA3F-D373C7954D29}
AutoUnlockProtector :
KeyProtectorType : RecoveryPassword
KeyFileName :
RecoveryPassword : 271733-258533-688985-480293-713394-034012-061963-682044
KeyCertificateType :
Thumbprint :

需要密鑰保護裝置識別碼和修復密碼,並將其儲存到名為 BitLockerProtectorInfo的新實體磁碟私有屬性中。 當資源退出維護模式時,將會使用這個新屬性。 保護裝置的格式會是一個字串,其中保護裝置標識符和密碼會以 “:” 分隔。

Get-ClusterSharedVolume "Cluster Disk 1" | Set-ClusterParameter -Name BitLockerProtectorInfo -Value "{26935AC3-8B17-482D-BA3F-D373C7954D29}:271733-258533-688985-480293-713394-034012-061963-682044" -Create

若要確認已設定 BitlockerProtectorInfo 鍵與值,請執行命令:

Get-ClusterSharedVolume "Cluster Disk 1" | Get-ClusterParameter BitLockerProtectorInfo

既然資訊存在,一旦加密程式完成,磁碟就可以從維護模式中取出。

Get-ClusterSharedVolume -Name "Cluster Disk 1" | Resume-ClusterResource

如果資源無法上線,可能是記憶體問題、不正確的修復密碼或一些問題。 確認 BitlockerProtectorInfo 密鑰具有適當的資訊。 如果沒有,需要再次執行先前提供的命令。 如果問題不是使用此金鑰,建議您使用組織內的適當群組或記憶體廠商來解決問題。

如果資源上線,信息是正確的。 在退出維護模式的過程中,BitlockerProtectorInfo 金鑰會從叢集資料庫中的資源下移除,然後加密。

使用外部復原金鑰檔案加密

使用修復金鑰檔案加密磁碟驅動器,可讓 BitLocker 修復密鑰從所有節點都可以存取的位置建立和存取,例如檔案伺服器。 當磁碟驅動器上線時,擁有的節點會連線到還原密鑰。

將磁碟資源移至將啟用 BitLocker 加密的節點:

Get-ClusterSharedVolume -Name "Cluster Disk 2" | Move-ClusterSharedVolume Resource -Node Node2

將磁碟資源放入維護模式:

Get-ClusterSharedVolume -Name "Cluster Disk 2" | Suspend-ClusterResource

對話框隨即出現

Suspend-ClusterResource

Are you sure that you want to turn on maintenance for Cluster Shared Volume ‘Cluster Disk 2’? Turning on maintenance will stop all clustered roles that use this volume and will interrupt client access.

若要繼續,請按 [是]

若要啟用 BitLocker 加密並在本機建立金鑰保護裝置檔案,請執行下列命令。 建議您先在本機建立檔案,然後將其移至所有節點可存取的位置。

Enable-BitLocker -MountPoint "C:\ClusterStorage\Volume2" -RecoveryKeyProtector -RecoveryKeyPath C:\Windows\Cluster

若要取得磁碟區的 BitLocker 保護裝置資訊,可以執行下列命令:

(Get-BitlockerVolume -MountPoint "C:\ClusterStorage\Volume2").KeyProtector

這會顯示金鑰保護裝置識別碼及其建立的金鑰檔名。

KeyProtectorId : {F03EB4C1-073C-4E41-B43E-B9298B6B27EC}
AutoUnlockProtector :
KeyProtectorType : ExternalKey
KeyFileName : F03EB4C1-073C-4E41-B43E-B9298B6B27EC.BEK
RecoveryPassword :
KeyCertificateType :
Thumbprint :

當您進入指定用來建立它的資料夾時,一開始可能不會看到它。 理由是它會被建成隱藏的檔案。 例如:

C:\Windows\Cluster\>dir f03  

Directory of C:\\Windows\\Cluster 

File Not Found 

C:\Windows\Cluster\>dir /a f03  

Directory of C:\Windows\Cluster 

<Date> <Time> 148 F03EB4C1-073C-4E41-B43E-B9298B6B27EC.BEK 

C:\Windows\Cluster\>attrib f03 

A SHR C:\Windows\Cluster\F03EB4C1-073C-4E41-B43E-B9298B6B27EC.BEK

由於這是在本機路徑上建立的,所以它必須複製到網路路徑,讓所有節點都可以使用 Copy-Item 命令來存取它。

Copy-Item -Path C:\Windows\Cluster\F03EB4C1-073C-4E41-B43E-B9298B6B27EC.BEK -Destination \\Server\Share\Dir

由於磁碟驅動器將使用檔案,且位於網路共用上,因此解除磁碟驅動器的維護模式,並指定檔案的路徑。 磁碟完成加密後,繼續加密的命令會是:

Resume-ClusterPhysicalDiskResource -Name "Cluster Disk 2" -RecoveryKeyPath \\Server\Share\Dir\F03EB4C1-073C-4E41-B43E-B9298B6B27EC.BEK

完成驅動器配置後,.BEK 檔案可以從共用中移除,而且不再需要。

新的 PowerShell Cmdlet 命令

有了這項新功能,已建立兩個新的 Cmdlet,可以讓資源上線,或者使用復原密鑰或復原密鑰檔案手動恢復資源。

Start-ClusterPhysicalDiskResource

範例 1

    Start-ClusterPhysicalDiskResource -Name "My Disk" -RecoveryPassword "password-string"

範例 2

    Start-ClusterPhysicalDiskResource -Name "My Disk" -RecoveryKeyPath "path-to-external-key-file"

Resume-ClusterPhysicalDiskResource

範例 1

    Resume-ClusterPhysicalDiskResource -Name "My Disk" -RecoveryPassword "password-string"

範例 2

     Resume-ClusterPhysicalDiskResource -Name "My Disk" -RecoveryKeyPath "path-to-external-key-file"

新事件

已新增數個新事件,位於 Microsoft-Windows-FailoverClustering/Operational 事件通道中。

成功建立金鑰保護裝置或金鑰保護裝置檔案時,所顯示的事件會類似:

Source: Microsoft-Windows-FailoverClustering Event ID: 1810 Task Category: Physical Disk Resource Level: Information Description: Cluster Physical Disk Resource added a protector to a BitLocker encrypted volume.

如果建立金鑰保護裝置或金鑰保護裝置檔案時發生失敗,則顯示的事件會類似:

Source: Microsoft-Windows-FailoverClustering Event ID: 1811 Task Category: Physical Disk Resource Level: Information Description: Cluster Physical Disk Resource failed to create an external key protector for the volume

如先前所述,因為叢集資料庫是每個叢集節點上系統磁碟區所支援的復寫存放區,因此建議每個叢集節點上的系統磁碟區也應該受到 BitLocker 保護。 故障轉移叢集不會強制要求,因為某些解決方案可能不想或不需要加密系統磁碟區。 如果系統磁碟驅動器不受 BitLocker 保護,容錯移轉叢集會在解鎖/上線過程中將此標示為事件。 顯示的事件類似:

Source: Microsoft-Windows-FailoverClustering Event ID: 1824 Task Category: Physical Disk Resource Level: Warning Description: Cluster Physical Disk Resource contains a BitLocker protected volume, but the system volume is not BitLocker protected. For data protection, it is recommended that the system volume be BitLocker protected as well. ResourceName: Cluster Disk 1

如果故障轉移叢集驗證偵測到這是無 Active Directory 或工作組設定,且系統磁碟區未加密,則會記錄訊息。