共用方式為


資料加密的架構策略

適用於 Well-Architected 架構安全性檢查清單建議:

東南:07 使用現代業界標準方法加密資料,以保護機密性和完整性。 將加密範圍與資料分類保持一致;優先考慮原生平台加密方法。

如果您的資料不受保護,可能會被惡意修改,從而導致完整性和機密性喪失。

本指南說明加密和保護資料的建議。 加密是使用密碼學演算法使 資料不可讀並使用金鑰鎖定資料的過程。 在加密狀態下,無法解密資料。 它只能使用與加密金鑰配對的金鑰來解密。

定義

條款 定義
證書 保存用於加密或解密的公開金鑰的數位檔案。
密碼套件 一組演算法,用來加密及解密資訊,以保護傳輸層安全性 (TLS) 上的網路連線。
機密運算 機密運算是透過在硬體型、經過驗證的可信執行環境中執行運算來保護使用中的資料。
解密 使用密碼解鎖加密資料的過程。
雙重加密 使用兩個或多個獨立加密層來加密資料的程序。
Encryption 資料無法讀取並使用密碼鎖定的程式。
雜湊 將資料轉換為文字或數字以隱藏資訊的過程。
Keys 用來鎖定或解除鎖定加密資料的密碼。
Signature 資料上的加密驗證戳記。
簽署 使用簽章驗證資料真實性的程序。
X.509 號 定義公開金鑰憑證格式的標準。

組織要求或法規要求可能會強制執行加密機制。 例如,可能有需求資料必須只保留在選取的區域中,且資料的副本會維護在該區域中。

這些要求通常是基本最低要求。 爭取更高等級的保護。 您有責任 防止機密性外洩和竄改敏感數據,無論是外部使用者資料還是員工資料。

加密機制可能需要分三個階段保護資料:

  • 靜態資料 是保存在儲存物件中的所有資訊。

    保護待用資料的範例是使用 BitLocker 來加密儲存至磁碟上儲存體的資料。

  • 傳輸中的資料 是在元件、位置或程式之間傳輸的資訊。

    保護傳輸中資料的一個範例是使用 TLS 加密資料,以便透過公用和私人網路移動的封包是安全的。

  • 使用中的資料 是在記憶體中主動處理的資料。

    保護使用中資料的範例是使用機密運算進行加密,以在處理資料時保護資料。

上述選擇並不相互排斥。 它們通常在整個解決方案的內容中一起使用。 一個階段可以充當補償控制。 例如,您可能需要隔離資料,以防止從記憶體讀取資料時遭到竄改。

判斷加密需求

依資料的用途和敏感度等級對資料進行分類 ,以判斷您需要加密哪些資料。 對於應加密的資料,請決定所需的保護層級。 您是否需要對傳輸中的所有資料進行端對端 TLS 加密? 針對待用資料,哪些 Azure 功能可以符合您的需求? 您是否需要在每個儲存點對資料進行雙重加密? 如何實作資訊保護?

平衡您的加密決策非常重要,因為存在重大權衡。

捨:每個加密躍點都會引入效能延遲。 與故障排除和可觀察性相關的操作複雜性可能會發生。 恢復可能是一個挑戰。

設定這些取捨範圍。 預期分類為敏感性資料的取捨。 需求甚至可能決定取捨,例如,如果特定類型的資料必須加密並儲存在特定閾值內。

在某些情況下,由於技術限制、投資或其他原因,加密是不可能的。 確保這些理由清晰、有效且有記錄。

強大的加密機制不應該是您唯一的防禦形式。 實施資料盜竊預防流程、適當的測試方法和異常偵測。

如需分類的相關資訊,請參閱 資料分類的建議

使用原生加密機制

大部分的 Azure 服務都會提供基本層級的加密。 探索平台提供的加密選項

強烈建議您不要停用平台功能來開發自己的功能。 平台加密功能使用現代行業標準,由專家開發,並經過嚴格測試。

在極少數情況下,如果您需要更換平台提供的加密,請評估優缺點並使用行業標準的加密算法。

開發人員應該使用內建於作業系統中的密碼編譯 API,而不是非平台密碼編譯程式庫。 針對 .NET,請遵循 .NET 密碼編譯模型

選擇加密金鑰方法

根據預設,Azure 服務會使用 Microsoft 管理的加密金鑰來加密和解密資料。 Azure 負責金鑰管理。

您可以選擇 客戶管理的金鑰。 Azure 仍會使用您的金鑰,但您必須負責金鑰作業。 您可以根據需要靈活地更改按鍵。 解密是使用客戶管理金鑰的一個令人信服的理由。

您應該將強加密與強解密結合。 從安全角度來看,保護解密金鑰很重要,因為輪換是金鑰遭到入侵時控制爆炸半徑的常用方法。 監控存取以偵測異常存取和活動。

將金鑰與加密資料分開儲存。 這種解耦有助於確保一個實體的入侵不會影響另一個實體。 如果您使用客戶管理的金鑰,請將它們儲存在金鑰存放區中。 將高度敏感的資料儲存在受管理的硬體安全性模組 (HSM) 中。

這兩個存放區都受到身分識別型存取的保護。 此功能使您能夠拒絕訪問,甚至拒絕對平台的訪問。

使用標準加密演算法

使用完善且遵循業界標準的密碼編譯演算法 ,而不是建立自訂實作。

演算法的行業標準要求加密方案具有一定程度的熵。 熵源在加密期間注入。 熵使演算法變得強大,使攻擊者難以提取資訊。 確定熵的可容忍閾值。 加密程序會耗用大量處理器。 找到適當的平衡,以便相對於計算請求的整體效能目標,最大化加密所花費的運算週期。

衡:如果您選擇高度複雜或注入超過合理熵量的演算法,則會降低系統效能。

使用雜湊和總和檢查碼

通常,雜湊是一種錯誤偵測技術。 您也可以使用雜湊來確保安全,因為它 會偵測可能因竄改而造成的資料變更。 雜湊函數是以密碼學為基礎,但它們不使用金鑰。 雜湊函數使用演算法來產生校驗和。 校驗和可以比較資料以驗證其完整性。

應用程式應該使用 SHA-2 系列雜湊演算法,例如 SHA-256、SHA-384 或 SHA-512。

加密待用資料

根據內部和外部合規要求對信息存儲對象進行分類和保護。 請參閱下列建議:

  • 使用儲存體服務、資料存放區及其他用來保存資料的資源提供的原生選項來加密資料。 即使您只是暫時將資料儲存在這些儲存體服務或資源中,也要加密此資料。 此外,請加密備份資料,以維持與原始來源相同的安全等級。

    如需詳細資訊,請參閱 待用資料保護

  • 使用雙重加密。 如果您的業務需求需要更高的保證,您可以執行雙重加密。 使用獨立的客戶管理金鑰來加密兩個或多個層中的資料。 將資料儲存在受控 HSM 中。 若要讀取資料,您需要存取這兩個金鑰。 如果一個金鑰遭到入侵,另一個金鑰仍會保護資料。 這種技術旨在增加攻擊者的成本。

    您也可以使用平台提供的加密來雙重加密資料。 平台提供的加密可在基礎結構層級保護儲存媒體、並在資料層級套用另一層加密。 例如,訊息代理程式服務透過 Microsoft 管理的金鑰提供平台提供的加密,以保護訊息管道。 此方法可讓您使用客戶管理的金鑰來加密訊息。

    使用多個加密金鑰。 使用金鑰加密金鑰 (KEK) 來保護您的資料加密金鑰 (DEK)。

  • 使用身分識別型存取控制來控制資料的存取。 新增網路防火牆以提供額外的安全層,阻止意外和不安全的存取。

    如需詳細資訊,請參閱 身分識別和存取管理的建議

  • 將金鑰儲存在具有最低權限存取控制的受管 HSM 中。 將資料與資料的索引鍵分開。

  • 儲存有限數量的資料 ,以便您只加密必要的資料。 您的資料的存留時間不應超過加密週期。 當不再需要資料時,請刪除加密資料,而無需花費解密週期。

加密傳輸中的資料

  • 使用安全通訊協定進行用戶端-伺服器通訊。 傳輸協定具有內建的安全層。 TLS 是在用戶端和伺服器端點之間交換資料的業界標準。

    請勿使用低於 TLS 1.2 的版本。 移轉解決方案以支援 TLS 1.2,並預設使用此版本。 所有 Azure 服務都支援公用 HTTPS 端點上的 TLS 1.2。

    風險:如果不支援回溯相容性,不支援 TLS 1.2 的舊用戶端可能無法正常運作。

    所有網站通訊都應使用 HTTPS,無論傳輸資料的敏感性如何。 在用戶端-伺服器握手期間,交涉 HTTP 嚴格傳輸安全性 (HSTS) 原則的使用,以便維護 HTTPS 傳輸,並且不會在通訊期間捨棄至 HTTP。 此原則可防止中間人攻擊。

    對 HSTS 的支援適用於較新的版本。 您可能會破壞與舊版瀏覽器的向後相容性。

    備註

    您也可以加密通訊協定,以建立資料庫的安全連線。 例如,Azure SQL 資料庫支援表格式資料流 (TDS) 通訊協定,其整合 TLS 交握。

    密碼套件是一組演算法,用於標準化用戶端與伺服器之間的握手。 密碼確保交換經過加密和身份驗證。 密碼的選擇取決於伺服器使用的 TLS 版本。 針對某些服務,例如 Azure 應用程式閘道,您可以選擇您想要支援的 TLS 版本和密碼套件。 實作使用進階加密標準 (AES) 作為對稱區塊密碼的密碼套件。 AES-128、AES-192 和 AES-256 是可以接受的。

  • 管理憑證的生命週期。 憑證具有預先決定的生命週期。 不要保留長期的憑證,也不要讓它們自行過期。 實作以可接受的頻率更新憑證的程式。 您可以將以短時間間隔發生的續約程序自動化。

    備註

    如果您使用 憑證釘選,請熟悉敏捷性和憑證管理限制。

    您的工作流程不應允許在環境中接受無效的憑證。 憑證釘選程式應該驗證憑證,並強制執行該驗證檢查。 您應該監視存取記錄,以確保簽署金鑰以適當的權限使用。

    如果金鑰遭到入侵,則必須立即撤銷憑證。 憑證管理中心 (CA) 提供憑證撤銷清單 (CRL),指出在到期前失效的憑證。 您的驗證檢查應考慮 CRL。

    捨:認證驗證程式可能很繁瑣,而且通常涉及 CA。 判斷您必須使用憑證加密的資料。 對於其他類型的通訊,請判斷您是否可以實作當地語系化補償控制項,以新增安全性。

    本地化控制項的一種方法是使用相互 TLS (mTLS)。 它在客戶端和伺服器之間建立雙向信任。 用戶端和伺服器都有自己的憑證,而且每一個憑證都會使用其公開金鑰或私密金鑰組進行鑑別。 使用 mTLS,您不需要相依於外部 CA。 取捨是管理兩個憑證的複雜度增加。

  • 如果需要,對 VPN 連線進行雙重加密。 執行雙重加密,為您的 VPN 隧道增加深度防禦。 當您使用兩台VPN伺服器時,可以隱藏伺服器之間的IP位址,也可以隱藏伺服器與目的地之間的IP位址。 在此過程中,傳輸中的資料也會被加密兩次。

    :與單 VPN 設定相比,雙 VPN 設定通常更昂貴,而且連線速度通常較慢。

  • 實施日誌記錄和監控流程。 追蹤儲存用戶端相關資訊的存取登入資源,例如其來源 IP、連接埠和通訊協定。 使用此資訊來偵測異常。

加密使用中的資料

針對高安全性工作負載,建議使用分段、隔離和最低權限的設計模式。

在使用中保護的內容中,硬體界限可能需要在實體 CPU 和記憶體中使用資料時加密資料,以確保 VM、主機管理程式碼和其他元件的隔離。 資料的加密和解密只能在這些隔離邊界內完成。

更嚴格的安全性或法規要求可能還需要基於硬體的加密簽名證據,證明資料在使用時被加密,這可以透過 證明獲得。 機密計算 就是支援這項需求的其中一項技術。 Azure 中的特定服務可讓您在計算資料時保護資料。 如需詳細資訊,請參閱 Azure 協助:Azure 機密計算

請考慮您所保護的資料的終端生命週期, 資料在其生命週期內經常在多個系統中移動,注意確保解決方案的所有元件部分都能提供所需的保護層級,或確保您的資料管理策略提供適當的分割或遮罩。

Azure 促進

下列各節說明可用來加密資料的 Azure 服務和功能。

客戶管理的金鑰

將客戶自控金鑰儲存在 Azure 金鑰保存庫或金鑰保存庫管理的 HSM 中。

Key Vault 會將金鑰視為任何其他秘密。 Azure 角色型存取控制 (RBAC) 會透過權限模型存取金鑰。 此身分識別型控制項必須與 Key Vault 存取原則搭配使用。

如需詳細資訊,請參閱 使用 RBAC 提供金鑰保存庫金鑰、憑證和秘密的存取權

Azure 金鑰保存庫進階版和 Managed-HSM 包含機密運算功能及 安全金鑰發行,進一步增強功能,並支援一項原則,以確保金鑰僅在能夠以加密方式證明其執行於信任的執行環境(TEE)內的工作負載中發行。

靜態資料保護
  • Azure 儲存體 會在資料保存至儲存體帳戶時,使用區塊密碼自動加密您的資料。 針對 Azure Blob 儲存體和 Azure 佇列儲存體,儲存體也會透過連結庫提供用戶端加密。

    如需詳細資訊,請參閱 儲存體加密

  • Azure 虛擬機器 具有作為虛擬儲存磁碟區的磁碟檔案。 您可以加密虛擬磁碟檔案,以便無法存取內容。

    受控磁碟可以從入口網站匯出。 伺服器端加密和主機加密只有在匯出資料後才能保護資料。 不過,您應該在匯出過程中保護資料。 您可以使用 Azure 磁碟加密 ,在匯出程式期間保護您的資料。

    Azure 為受控磁碟提供數個加密選項。 如需詳細資訊,請參閱 受控磁碟加密選項概觀

  • SQL Database 提供 透明的資料加密 功能,可用來在頁面層級加密資料庫檔案。

傳輸中資料保護

使用 Key Vault,您可以佈建、管理和部署公用和私人安全通訊端層 (SSL) 或 TLS 憑證。 您可以搭配 Azure 和內部連線資源使用憑證。

使用中資料保護

Azure 中的特定服務 可讓您在使用 Azure 機密運算在主機的實體 CPU 和記憶體內進行計算時保護資料。

  • 機密虛擬機 提供在 TEE 內運行的整個虛擬機,虛擬機的內存和執行 CPU 內容會加密,提供簡單的“隨即轉移”方法,可將具有高安全性要求的未修改應用程序移動到 Azure。 每個 Azure 機密 VM 都有自己的專用虛擬信任平台模組 (TPM)。 加密會在作業系統元件安全開機時執行。

  • 機密 AKS 背景工作節點、AKS 上的機密容器或 Azure 容器執行個體 (ACI) 上的機密容器 可讓您 在 TEE 內執行和管理未修改的容器 ,讓客戶能夠受益於使用中的保護。 容器供應項目是以機密虛擬機器為基礎,並受益於相同的保護。

  • 應用程式隔離區 解決方案是專門建置的應用程式,利用支援英特爾軟體防護延伸模組 (SGX) 的虛擬機器 SKU 所提供的特定 CPU 延伸模組,這些應用程式提供非常細微的 受信任計算基礎 (TCB), 但需要特別編碼應用程式才能利用這些功能。

  • 機密資料庫服務 ,例如 適用於 PostgreSQL 的 Azure 資料庫機密運算, 會為使用 Intel SGX 或 AMD SEV-SNP 安全記憶體保護區的資料庫處理作業提供硬體型加密。 這使處理敏感資料的組織能夠滿足監管要求,要求在使用中保護資料,同時保持資料庫效能和與現有應用程式的兼容性。

  • 安全金鑰釋放 可以 與這些技術結合使用 ,以確保加密資料僅在 TEE 內解密,這證明它透過稱為 證明的流程提供了所需的保護等級。

秘密管理

您可以使用 金鑰保存庫 來安全地儲存和控制權杖、密碼、憑證、API 金鑰和其他秘密的存取。 使用 Key Vault 做為金鑰和憑證管理解決方案。 進階 SKU 支援 HSM。

Example

下列範例顯示可用來管理金鑰、憑證和密碼的加密解決方案。

顯示用於管理金鑰、憑證和密碼的加密解決方案的圖表。

安全檢查清單

請參閱完整的建議集。

安全檢查清單