無論使用哪個金鑰提供者,都可以透過 vSphere 虛擬機器加密建立加密的虛擬機器並加密現有虛擬機器。由於包含敏感資訊的所有虛擬機器檔案都會加密,因此會保護虛擬機器。僅具有加密權限的管理員可以執行加密和解密工作。

vSphere 虛擬機器加密支援的儲存區

vSphere 虛擬機器加密可與任何支援的儲存區類型 (NFS、iSCSI、光纖通道、直接連結儲存區等) 搭配使用,包括 VMware vSAN。如需有關在 vSAN 叢集中使用加密的詳細資訊,請參閱管理 VMware vSAN說明文件。

vSphere 虛擬機器加密和 vSAN 使用相同的加密程式庫,但具有不同的設定檔。虛擬機器加密是依虛擬機器的加密,vSAN 是資料存放區層級的加密。

vSphere 加密金鑰和金鑰提供者

vSphere 以金鑰加密金鑰 (KEK) 和資料加密金鑰 (DEK) 的形式使用兩級加密。簡單來說,ESXi 主機產生 DEK,用於加密虛擬機器和磁碟。KEK 由金鑰伺服器提供,對 DEK 進行加密 (或「封裝」)。KEK 使用 AES256 演算法進行加密,DEK 使用 XTS-AES-256 演算法進行加密。根據金鑰提供者的類型,使用不同的方法建立及管理 DEK 和 KEK。

標準金鑰提供者的運作方式如下。
  1. ESXi 主機產生並使用內部金鑰來加密虛擬機器和磁碟。這些金鑰用作 DEK。
  2. vCenter Server 會從金鑰伺服器 (KMS) 請求金鑰。這些金鑰用作 KEK。vCenter Server 僅儲存每個 KEK 的識別碼,但不儲存金鑰本身。
  3. ESXi 使用 KEK 加密內部金鑰,且在磁碟上儲存加密的內部金鑰。ESXi 不在磁碟上儲存 KEK。如果主機重新開機,vCenter Server 會從金鑰伺服器請求具有對應識別碼的 KEK,且使其可供 ESXi 使用。然後,ESXi 可視需要解密內部金鑰。

vSphere Trust Authority 受信任金鑰提供者的運作方式如下所示。

  1. 受信任叢集的 vCenter Server 會檢查即將建立加密虛擬機器的 ESXi 主機是否可存取預設的受信任金鑰提供者。
  2. 受信任叢集的 vCenter Server 會將受信任的金鑰提供者新增至虛擬機器 ConfigSpec。
  3. 虛擬機器建立申請將會傳送至 ESXi 主機。
  4. 如果證明 Token 尚未可供 ESXi 主機使用,則會從證明服務申請一個。
  5. 金鑰提供者服務會驗證證明 Token,並建立要傳送至 ESXi 主機的 KEK。將使用金鑰提供者上設定的主要金鑰封裝 (加密) KEK。KEK 加密文字和 KEK 純文字將傳回到受信任的主機。
  6. ESXi 主機產生 DEK,對虛擬機器磁碟進行加密。
  7. 此 KEK 用於封裝 ESXi 主機所產生的 DEK,而金鑰提供者中的加密文字會與加密資料一起儲存。
  8. 虛擬機器已加密並寫入儲存區。
備註: 如果刪除或解除登錄已加密的虛擬機器,則 ESXi 主機和叢集會從快取中移除 KEK。 ESXi 主機無法再使用 KEK。對於標準金鑰提供者和受信任金鑰提供者,此行為是相同的。

vSphere Native Key Provider 的運作方式如下所示。

  1. 建立金鑰提供者時,vCenter Server 會產生主要金鑰並將其推送至叢集中的 ESXi 主機。(不涉及外部金鑰伺服器。)
  2. ESXi 主機按需產生 DEK。
  3. 執行加密活動時,會使用 DEK 加密資料。

    加密的 DEK 將與加密的資料一起儲存。

  4. 解密資料時,會使用主要金鑰先解密 DEK,然後再解密資料。

加密哪些檔案

vSphere 虛擬機器加密支援加密虛擬機器檔案、虛擬磁碟檔案,以及核心傾印檔案。
虛擬機器檔案
會加密大多數虛擬機器檔案 (尤其是未儲存在 VMDK 檔案中的客體資料)。這組檔案包括但不限於 NVRAM、VSWP 和 VMSN 檔案。來自金鑰提供者的金鑰將解除鎖定包含內部金鑰和其他密碼的 VMX 檔案中的加密服務包。根據金鑰提供者的不同,金鑰擷取工作如下所示:
  • 標準金鑰提供者:vCenter Server 管理來自金鑰伺服器的金鑰,並且 ESXi 無法直接存取金鑰提供者。主機等待 vCenter Server 推送金鑰。
  • 受信任金鑰提供者和 vSphere Native Key Provider:ESXi 主機直接存取金鑰提供者,因此可以直接從 vSphere Trust Authority 服務或從 vSphere Native Key Provider 擷取請求的金鑰。
如果使用 vSphere Client 建立加密的虛擬機器,可以加密和解密獨立於虛擬機器檔案的虛擬磁碟。依預設,所有虛擬磁碟均已加密。對於其他加密工作,如加密現有虛擬機器,您可以加密和解密獨立於虛擬機器檔案的虛擬磁碟。
備註: 您無法將加密的虛擬磁碟與未加密的虛擬機器建立關聯。
虛擬磁碟檔案
加密的虛擬磁碟 (VMDK) 檔案中的資料永遠不會以純文字寫入儲存區或實體磁碟,且永遠不會以純文字透過網路傳輸。VMDK 描述元檔案通常為純文字,但包含 KEK 的金鑰識別碼和加密服務包中的內部金鑰 (DEK)。
您可以使用 vSphere API 透過新 KEK 執行淺層雙重加密作業或透過新內部金鑰執行深度雙重加密作業。
核心傾印
永遠加密已啟用加密模式的 ESXi 主機上的核心傾印。請參閱 vSphere 虛擬機器加密和核心傾印。不會加密 vCenter Server 系統上的核心傾印。保護 vCenter Server 系統的存取權。
備註: 如需 vSphere 虛擬機器加密可互通的裝置和功能相關的一些限制的相關資訊,請參閱 虛擬機器加密互通性

不加密哪些檔案

不加密或部分加密與虛擬機器相關聯的一些檔案。
記錄檔
不加密記錄檔,因為其不包含敏感資料。
虛擬機器組態檔
不加密 VMX 和 VMSD 檔案中儲存的大多數虛擬機器組態資訊。
虛擬磁碟描述元檔案
為了支援無金鑰的磁碟管理,不會加密大多數虛擬磁碟描述元檔案。

誰可以執行密碼編譯作業

僅指派了密碼編譯作業權限的使用者可以執行密碼編譯作業。權限集是精細的。預設管理員系統角色包含所有密碼編譯作業權限。「無密碼編譯管理員」角色支援所有管理員權限,密碼編譯作業權限除外。

除了使用 Cryptographer.* 權限之外,vSphere Native Key Provider 還可以使用 Cryptographer.ReadKeyServersInfo 權限,這是 vSphere Native Key Provider 的專屬權限。

如需詳細資訊,請參閱密碼編譯作業權限

您可以建立其他自訂角色,例如允許使用者群組加密虛擬機器但防止其解密虛擬機器。

如何執行密碼編譯作業

vSphere Client 支援許多密碼編譯作業。對於其他工作,您可以使用 vSphere API。

表 1. 用於執行密碼編譯作業的介面
介面 作業 資訊
vSphere Client 建立加密的虛擬機器

加密和解密虛擬機器

本書
PowerCLI 建立加密的虛擬機器

加密和解密虛擬機器

設定 vSphere Trust Authority

VMware PowerCLI Cmdlet 參考
vSphere Web Services SDK 建立加密的虛擬機器

加密和解密虛擬機器

執行虛擬機器的深度雙重加密 (使用不同的 DEK)

執行虛擬機器的淺層雙重加密 (使用不同的 KEK)

vSphere Web Services SDK 程式設計指南

vSphere Web Services API 參考

crypto-util 解密已加密的核心傾印

確認檔案是否已加密

直接在 ESXi 主機上執行其他管理工作

命令列說明

vSphere 虛擬機器加密和核心傾印

雙重加密虛擬機器

您可以使用新金鑰對虛擬機器進行雙重加密,以防金鑰到期或遭到破解。可用選項如下。

  • 深度雙重加密,會取代磁碟加密金鑰 (DEK) 和金鑰加密金鑰 (KEK)
  • 淺層雙重加密,僅取代 KEK

必須使用 API 執行虛擬機器雙重加密。請參閱vSphere Web Services SDK 程式設計指南

深度雙重加密要求虛擬機器已關閉電源且不包含任何快照。您可以在虛擬機器開啟電源且虛擬機器已有快照存在時執行淺層雙重加密作業。僅允許在單一快照分支 (磁碟鏈結) 上對具有快照的加密虛擬機器進行淺層雙重加密。不支援多個快照分支。此外,在虛擬機器或磁碟的連結複製上不支援淺層雙重加密。如果淺層雙重加密在使用新 KEK 更新鏈結中的所有連結之前失敗,您仍可以存取加密的虛擬機器 (如果有舊 KEK 和新 KEK)。但是,最好在執行任何快照作業之前重新發出淺層雙重加密作業。