Microsoft Azure 包含根據公司安全與合規需求保護資料的工具。 本文重點在於:
- 如何在 Microsoft Azure 上保護靜態資料。
- 參與資料保護實施的各個組成部分。
- 不同金鑰管理保護方法的優點與取捨。
靜態加密是常見的安全需求。 Azure 預設會使用平台管理的金鑰加密靜態資料。 此方法為組織提供自動加密,且無需承擔客製化金鑰管理解決方案的風險與成本。 組織可以依賴 Azure 透過平台管理的金鑰來管理靜態加密,或在需要額外控制加密金鑰與金鑰管理政策時,使用客戶管理的金鑰。
什麼是靜止加密?
加密是用來保護資料機密性的安全編碼。 Azure 的靜態加密設計採用對稱加密,根據簡單的概念模型快速加密與解密大量資料:
- 對稱加密金鑰在資料寫入儲存時會加密。
- 同一組加密金鑰會在資料準備存入記憶體時解密。
- 不同的分割區可以使用不同的鍵。
- 將金鑰存放於安全位置,並採用基於身份的存取控制與稽核政策。 如果資料加密金鑰存放在安全地點之外,請使用存放在安全位置的金鑰加密金鑰來加密。
實務上,關鍵管理與控制情境,以及規模與可用性保證,都需要額外的結構。 以下章節將介紹 Microsoft Azure 靜態加密的概念與元件。
靜態加密的目的
靜態加密保護儲存的資料。 針對靜態資料的攻擊包括試圖取得儲存資料硬體的實體存取權,然後入侵所包含的資料。 在此類攻擊中,伺服器的硬碟在維護過程中可能被誤用,攻擊者因此得以移除硬碟。 攻擊者隨後將硬碟放入他們控制的電腦中,試圖存取資料。
靜態加密透過確保資料在磁碟上加密,有助於防止攻擊者存取未加密的資料。 如果攻擊者取得具有已加密資料的硬碟,但是沒有加密金鑰,則該攻擊者必須將加密破解才能讀取資料。 這種攻擊比存取硬碟上未加密的資料複雜且耗費資源得多。 因此,許多組織將靜止加密列為高優先級要求。
組織的資料治理與合規工作也可能需要靜態加密。 產業與政府法規如 HIPAA、PCI 及 FedRAMP 為資料保護與加密要求訂立了具體保障。 其中一些法規要求靜止加密。 欲了解更多關於 Microsoft 對 FIPS 140 驗證方法的資訊,請參閱聯邦資訊處理標準(FIPS)140。
除了能滿足合規性和法規要求之外,靜態加密也能提供深度防禦的保護。 Microsoft Azure 提供符合規範的服務、應用程式與資料平台。 該平台同時提供全面的設施與實體安全、資料存取控制及稽核。 然而,若其他安全措施失效,提供額外的「重疊」安全措施也很重要。 靜態加密提供了這樣的安全措施。
Microsoft 在雲端服務中提供靜態加密選項,並讓你掌控加密金鑰及金鑰使用日誌。 Microsoft 也正努力將所有客戶資料預設加密為靜態狀態。
金鑰管理選項
Azure 提供兩種主要的加密金鑰管理方法:
平台管理金鑰(預設)(有時也稱為服務管理金鑰):Azure 自動處理加密金鑰管理的所有面向,包括金鑰產生、儲存、輪換及備份。 此方法提供靜態加密且無需設定,且 Azure 預設在 Azure 服務中啟用此功能。 平台管理金鑰提供最高層級的便利性,且不需額外成本或管理負擔。
客戶管理金鑰(可選):需要加強加密金鑰控制權的組織,可選擇使用 Azure Key Vault 或 Azure Key Vault Managed HSM 自行管理金鑰。 此方法允許您控制金鑰生命週期、存取政策及密碼操作。 客戶管理的金鑰提供額外控制,但代價是管理責任增加與複雜度。 對於有法規或合約要求必須將金鑰資料實體存放於 Microsoft 基礎設施之外的組織,Azure Key Vault Managed HSM 也支援外部金鑰管理(預覽版),將金鑰加密金鑰(KEK)完全置於客戶操作的硬體安全模組(HSM)中,且完全置於 Azure 之外。
選擇這些方法取決於貴組織的安全需求、合規需求及營運偏好。 大多數組織可依賴平台管理金鑰來提供強力加密保護,而有特定法規或安全需求的組織則可能選擇由客戶管理的金鑰。
靜態元件的 Azure 加密
如前所述,靜態加密是透過秘密加密金鑰保持磁碟上的資料持續存在。 為了達成這個目標,Azure 服務需要安全的金鑰建立、儲存、存取控制及加密金鑰管理。 雖然細節可能有所不同,Azure 服務的靜態加密實作使用如下圖所示的術語。
Azure Key Vault
加密金鑰的儲存位置以及這些金鑰的存取控制是靜態加密模型的核心。 你需要高度保護金鑰,但要讓指定使用者能管理,並且能提供給特定服務。 對於 Azure 服務,Azure Key Vault(Premium tier)或 Azure Key Vault Managed HSM 是推薦的金鑰儲存解決方案,並提供跨服務的通用管理體驗。 你可以在金鑰庫中儲存和管理金鑰,並且可以讓使用者或服務存取金鑰庫。 Azure Key Vault 支援客戶建立的金鑰及匯入的客戶金鑰,用於客戶管理的加密金鑰情境。
Microsoft Entra ID
你可以給 Microsoft Entra 帳號權限,使用存放在 Azure Key Vault 中的金鑰,無論是管理這些金鑰,還是用於加密和解密操作。
具有金鑰階層結構的信封加密
在靜態加密實作中,你會使用多個加密金鑰。 將加密金鑰儲存在 Azure Key Vault 中,可確保金鑰存取安全及集中金鑰管理。 然而,在服務本機存取加密金鑰,對大量加密與解密而言,會比每次資料作業都與 金鑰保存庫 互動更有效率。 此方法能提供更強的加密與更佳的效能。 限制單一加密金鑰的使用,可降低金鑰被盜的風險,以及在必須更換金鑰時重新加密的成本。 Azure 靜態加密模型使用信封加密,其中 KEK 加密資料加密金鑰(DEK)。 此模型形成一個關鍵階層,以更好地滿足效能與安全需求:
- 資料加密金鑰(DEK) -一種對稱的 AES-256 金鑰,用於加密資料分割區或區塊,有時也稱為資料金鑰。 單一資源可以有多個分割區和多個 DEK。 用不同金鑰加密每個資料區塊會使密碼分析攻擊更困難。 將 DEK 留在負責加密與解密資料的服務中,能最大化效能。
- 金鑰加密金鑰 (KEK) - 一種透過信封加密 (也稱為封裝) 來加密 DEK 的加密金鑰。 透過使用永不離開 金鑰保存庫 的 KEK,你可以加密並控制 DEK。 能夠存取 KEK 的實體可能與需要 DEK 的實體不同。 實體可以代理對 DEK 的存取,以限制每個 DEK 存取特定分割區。 因為解密 DEK 需要 KEK,你可以透過停用 KEK 來加密刪除 DEK 和資料。 停用 KEK 會使所有相依服務無法存取,例如 Azure SQL 透明資料加密(TDE)資料庫、擁有客戶管理金鑰的Azure 儲存體帳號,以及Azure 磁碟加密保護的虛擬機。 停用也僅會影響該金鑰所在的保存庫。 如果金鑰被備份並還原到另一個保險庫,還原後的副本仍然完全可用,停用操作不會影響它。 更多資訊請參閱 備份安全考量。
資源提供者與應用實例將加密的 DEK 儲存為元資料。 只有具有 KEK 存取權限的實體可以解密這些 DEK。 Azure 支援不同的金鑰儲存模式。 如需詳細資訊,請參閱資料加密模型。
當服務將 DEK 快取本地進行主動密碼作業時,Azure 平台的安全控制會保護快取的金鑰,包括主機層級的運算隔離與程序層級的保護。 快取的操作金鑰是一種可用性和效能機制 - 金鑰保存庫 中的 KEK 仍是信任的根源,而金鑰撤銷則可規範加密資料的存取。
Microsoft 雲端服務中的靜態加密
你會在三種雲端模式中使用 Microsoft 雲端服務:基礎設施即服務(IaaS)、平台即服務(PaaS)和軟體即服務(SaaS)。 以下範例說明它們在各模型中的適用性:
- 軟體服務(SaaS)提供雲端託管應用程式,如 Microsoft 365。
- 平台服務(PaaS)為客戶應用提供雲端功能,如儲存、分析及服務匯流排功能。
- 基礎設施服務(IaaS)承載客戶部署的作業系統與應用程式,這些系統也能使用其他雲端服務。
SaaS 組織的靜態加密
軟體即服務(SaaS)組織通常能啟用靜態加密,或在每個服務中提供加密。 Microsoft 365 提供多種驗證或啟用靜態加密的選項。 關於 Microsoft 365 服務的資訊,請參見 Microsoft 365 服務中的加密。
PaaS 組織的靜態加密
平台即服務(PaaS)組織通常將資料儲存在像 Blob 儲存體 這樣的儲存服務中。 然而,資料也可能被快取或儲存在應用程式執行環境中,例如虛擬機。 若要查看可用的待用加密選項,請檢查 您所使用的記憶體和應用程式平台的數據加密模型 。
IaaS 組織的靜態加密
基礎設施即服務(IaaS)組織可以使用各種服務與應用程式。 IaaS 服務可以透過主機加密,在其 Azure 託管虛擬機器中啟用靜態加密。
加密儲存體
與 PaaS 類似,IaaS 解決方案也能使用其他 Azure 服務,這些服務以靜態加密方式儲存資料。 在這些情況下,你可以啟用每個 Azure 服務所提供的靜止加密支援。 資料加密模型 列出主要的儲存、服務與應用平台,以及支援的靜態加密模型。
加密計算
Azure 管理的磁碟、快照和映像預設會使用 Azure 儲存體 Service Encryption 和平台管理金鑰進行加密。 此預設加密不需客戶設定或額外費用。 更全面的加密方案能確保虛擬機主機不會持續保存未加密的資料。 在虛擬機器處理資料時,系統可以將資料持久化為 Windows 頁面檔案、Linux 交換檔案、損毀傾印或應用程式記錄。 為確保這些資料在靜態時也被加密,IaaS 應用程式可以在 Azure IaaS 虛擬機器上使用加密技術。 預設情況下,主機加密使用平台管理金鑰,但你可以選擇設定客戶管理金鑰以加強控制。
自訂靜態加密
IaaS 應用應盡可能使用任何被消費的 Azure 服務所提供的主機加密與靜止加密選項。 在某些情況下,例如不規則的加密需求或非 Azure 儲存,IaaS 應用程式的開發者可能需要實作靜態加密。 IaaS 解決方案的開發者可以透過使用某些 Azure 元件,更好地整合 Azure 管理及客戶期望。 具體來說,開發者應使用 Azure Key Vault 提供安全的金鑰儲存,並為使用者提供符合 Azure 平台服務的金鑰管理選項。 自訂解決方案也應該使用 Azure 管理的身份,讓服務帳號能存取加密金鑰。 有關開發者資訊,請參閱 Azure Key Vault 開發者指南及 Azure 資源管理身份。
Azure 資源提供者加密模型支持
Microsoft Azure 服務各自支援一種或多種靜態加密模型。 然而,對某些服務而言,一種或多種加密模型可能不適用。 支援客戶管理金鑰情境的服務,可能只支援 Azure Key Vault 支援的金鑰加密金鑰類型中的子集。 服務單位也可能在不同時程釋出這些情境和金鑰類型的支援。 本節說明目前各主要 Azure 資料儲存服務的靜態加密支援。
Azure 虛擬機磁碟加密
使用 Azure 基礎結構即服務(IaaS)功能的組織,可以透過主機端加密,對其靜態儲存的 IaaS 虛擬機器磁碟進行加密。 如需詳細資訊,請參閱 主機加密 - VM 的端對端加密。
Azure 儲存體
所有 Azure 儲存體 服務(Blob 儲存體、Queue Storage、Table Storage 和 Azure 檔案儲存體)都支援靜態伺服器端加密。 Blob 儲存體 與佇列儲存也支援目前的用戶端加密。
- 伺服器端(預設):所有 Azure 儲存體 服務預設啟用伺服器端加密,使用平台管理金鑰。 此加密對應用程式透明,且不需設定。 如需詳細資訊,請參閱待用資料的 Azure 儲存體加密。 你可以選擇在 Azure Key Vault 中選擇客戶管理的金鑰,以獲得更多控制。 如需詳細資訊,請參閱適用於 Azure 儲存體加密的客戶自控金鑰。
- 用戶端(可選):Blob 儲存體 與佇列儲存用戶端函式庫支援用戶端加密,適用於需要在資料進入 Azure 前加密的組織。 使用用戶端加密時,你會加密資料並以加密資料的形式上傳。 你負責管理鑰匙。 如需詳細資訊,請參閱 適用於 Blob 的用戶端加密及適用於佇列的用戶端加密。
Azure SQL Database
Azure SQL Database 支援使用平台管理金鑰的服務端靜態加密,以及用戶端加密情境。
Azure SQL 透過 透明資料加密(TDE)提供伺服器端加密。 對於服務管理的 TDE,Azure 會自動建立和管理金鑰。 你可以在資料庫和伺服器層級啟用靜態加密。 新建立的資料庫預設啟用 透明資料加密(TDE)。 Azure SQL 支援儲存在 Azure Key Vault 或 Azure Key Vault 受控 HSM 中、非對稱 RSA 或 RSA-HSM 2048 位元和 3072 位元由客戶管理的 TDE 保護裝置。 欲了解更多資訊,請參閱 Azure SQL 透明資料加密與客戶管理金鑰。
Azure SQL Database 透過 Always Encrypted 功能支援用戶端加密。 Always Encrypted 使用用戶端建立並儲存的金鑰。 你可以將主金鑰存放在 Windows 憑證庫、Azure Key Vault 或本地的 HSM。 SQL 使用者可以使用 SQL Server Management Studio 選擇加密每個欄位的金鑰。
推論
保護儲存在 Azure 服務中的客戶資料對 Microsoft 來說非常重要。 Azure 託管服務提供靜態加密選項。 Azure 服務支援平台管理金鑰、客戶管理金鑰或用戶端加密。 Azure 服務持續提升靜態加密的可用性。