資料加密模型
若要了解 Azure 中的各種資源提供者如何實作待用加密,就務必了解各種加密模式及其優缺點。 這些定義會跨 Azure 中的所有資源提供者進行共用,以確保為通用的語言和分類法。
伺服器端加密有三種情節:
使用服務管理之金鑰的伺服器端加密
- Azure 資源提供者執行加密和解密作業
- Microsoft 管理金鑰
- 完整的雲端功能
在 Azure Key Vault 中使用客戶管理金鑰的伺服器端加密
- Azure 資源提供者執行加密和解密作業
- 客戶透過 Azure Key Vault 控制金鑰
- 完整的雲端功能
在客戶控制的硬體上使用客戶管理金鑰的伺服器端加密
- Azure 資源提供者執行加密和解密作業
- 客戶在客戶控制的硬體上控制金鑰
- 完整的雲端功能
伺服器端加密模型是指 Azure 服務所執行的加密。 在這個模型中,資源提供者會執行加密和解密作業。 例如,Azure 儲存體 可能會在純文本作業中接收數據,並在內部執行加密和解密。 資源提供者可能會根據提供的組態,使用由Microsoft或客戶管理的加密密鑰。
每個伺服器端待用加密模型都表示密鑰管理的獨特特性,包括加密密鑰的建立和儲存方式,以及存取模型和密鑰輪替程式。
針對用戶端加密,請考慮:
- Azure 服務無法查看解密的資料
- 客戶在內部部署環境 (或其他安全的儲存區中) 管理或儲存金鑰。 金鑰無法供 Azure 服務使用
- 縮減的雲端功能
Azure 中支援的模型如先前所述區分成兩個主要群組:「用戶端加密」和「伺服器端加密」。 除了所使用的加密靜態模型之外,Azure 服務一律建議使用諸如 TLS 或 HTTPS 等安全的傳輸。 因此,傳輸中的加密應該由傳輸通訊協定來處理,且不應作為要使用哪個靜態加密模型的主要判斷因素。
用戶端加密模型
用戶端加密模型是指由服務或呼叫應用程式在資源提供者或 Azure 外部執行的加密。 加密可由 Azure 中的服務應用程式或客戶資料中心內執行的應用程式執行。 在任一情況下,使用此加密模型時,Azure 資源提供者會收到加密的數據 Blob,而無法以任何方式解密數據,或存取加密密鑰。 在此模型中,金鑰管理是由呼叫服務/應用程式所完成,且對 Azure 服務不透明。
使用服務管理金鑰的伺服器端加密
對許多客戶而言,基本需求就是確保在靜態時會將資料加密。 使用服務管理金鑰的伺服器端加密可讓客戶將特定資源(儲存器帳戶、SQL DB 等)標示為加密,並將密鑰發行、輪替和備份等所有密鑰管理層面標示為Microsoft,藉此啟用此模型。 大部分支援靜態加密的 Azure 服務通常會支援這個將加密金鑰管理卸載至 Azure 的模型。 Azure 資源提供者會建立金鑰、將其放置在安全的儲存體,並在需要時加以擷取。 服務具有金鑰的完整存取權,且服務可完全控制認證生命週期管理。
使用服務管理之金鑰的伺服器端加密因此能快速解決靜態加密的需求,並為客戶提供低額外負荷。 情況允許時,客戶通常會開啟目標訂用帳戶和資源提供者的 Azure 入口網站,並勾選方塊以指示要加密資料。 在某些資源管理員中,使用服務管理的密鑰的伺服器端加密預設為開啟。
搭配 Microsoft 管理之金鑰的伺服器端加密確實表示服務具有儲存及管理金鑰的完整存取權。 雖然部分客戶會因為認為可獲得更高的安全性而要管理金鑰,但在評估此模型時,應該考慮自訂金鑰儲存解決方案的相關成本和風險。 在許多情況下,組織可能會判斷資源限制或內部部署解決方案的風險可能會大於在雲端管理靜態加密金鑰的風險。 不過,對於需要控制加密金鑰的建立或生命週期,或是使用與管理服務不同的人員來管理服務的加密金鑰 (也就是說,將金鑰管理與服務的整體管理模型隔離) 的組織而言,此模型可能並不足夠。
金鑰存取權
使用具服務管理之金鑰的伺服器端加密時,金鑰建立、儲存和存取服務都是由服務所管理。 一般而言,基礎 Azure 資源提供者會將數據加密金鑰儲存在靠近數據的存放區中,並在密鑰加密金鑰儲存在安全的內部存放區中時,快速取得且可存取。
優點
- 簡單設定
- Microsoft 會管理金鑰輪替、備份與備援
- 客戶沒有與實作相關聯的成本,或自訂金鑰管理配置的風險。
缺點
- 沒有加密金鑰 (金鑰規格、生命週期、撤銷等) 的客戶控制權
- 無法從服務的整體管理模型將金鑰管理隔離
在 Azure 金鑰保存庫 和 Azure 受控 HSM 中使用客戶管理的密鑰進行伺服器端加密
在需要將待用資料加密並控制加密金鑰的情節中,客戶可以使用 Key Vault 中使用客戶管理之金鑰的伺服器端加密。 某些服務可能只會在 Azure Key Vault 中儲存根金鑰加密金鑰,並將加密的資料加密金鑰儲存在較接近資料的內部位置。 在該案例中,客戶可以將自己的金鑰帶到 Key Vault (BYOK – 自備金鑰) 或產生新的金鑰,並使用它們來加密所需的資源。 資源提供者執行加密和解密作業時,此項目會使用設定的金鑰加密金鑰作為所有加密作業的根金鑰。
遺失金鑰加密金鑰表示遺失資料。 基於這個理由,您不應該刪除金鑰。 每當建立或輪替時,都應備份金鑰。 在儲存金鑰加密金鑰的任何保存庫上都必須啟用虛刪除和清除保護,以防止意外或惡意的密碼編譯清除。 建議您不要刪除金鑰,而是建議在金鑰加密金鑰上將已啟用設定為 false。 使用存取控制來撤銷 Azure Key Vault 或受控 HSM 中個別使用者或服務的存取權。
注意
如需支援 Azure 金鑰保存庫 和 Azure 受控 HSM 中客戶管理金鑰的服務清單,請參閱支援 Azure 金鑰保存庫 和 Azure 受控 HSM 中 CMK 的服務。
金鑰存取
Azure Key Vault 中使用客戶管理之金鑰的伺服器端加密模型,需讓服務視需要存取金鑰來進行加密和解密。 待用加密金鑰可透過訪問控制原則存取服務。 此原則授與服務身分識別存取,以接收金鑰。 代表相關聯的訂用帳戶所執行的 Azure 服務,可以使用該訂用帳戶中的身分識別來加以設定。 服務可以執行 Microsoft Entra 驗證,並接收驗證權杖,會將其本身識別為代表訂用帳戶的該服務。 然後,該令牌可以呈現給 金鑰保存庫,以取得其已獲授與存取權的密鑰。
針對使用加密金鑰的作業,可以授與服務識別存取任何下列作業:解密、加密、解除包裝金鑰、包裝金鑰、驗證、簽署、取得、列出、更新、建立、匯入、刪除、備份和還原。
若要取得用於將靜態資料加密或解密的金鑰,Resource Manager 服務執行個體所要執行的服務識別必須擁有「解除包裝金鑰」(可取得解密金鑰) 和「包裝金鑰」(建立新的金鑰時,可將金鑰插入保存庫金鑰)。
注意
如需關於 Key Vault 授權的詳細資訊,請參閱 Azure Key Vault 文件中的「保護您的金鑰保存庫」頁面。
優點
- 完整控制所使用的金鑰 – 加密金鑰會在客戶控制下的 Key Vault 中進行管理。
- 能夠將多個服務加密到一個主機
- 可從服務的整體管理模型將金鑰管理隔離
- 可跨區域定義服務與金鑰位置
缺點
- 客戶對於金鑰存取管理擁有完全責任
- 客戶對於金鑰生命週期管理擁有完全責任
- 安裝與設定的其他額外負荷
在客戶控制的硬體中使用客戶管理金鑰的伺服器端加密
某些 Azure 服務可允許「裝載您自己的金鑰」(HYOK) 金鑰管理模型。 當需要加密待用資料並在不受 Microsoft 控制的專屬存放庫中管理金鑰時,便適用此管理模式。 在此模型中,服務必須使用來自外部網站的金鑰來解密資料加密金鑰 (DEK)。 效能和可用性保證會受到影響,且設定會更為複雜。 此外,因為服務在加密和解密作業期間可存取 DEK,此模型的整體安全性保證會與在 Azure Key Vault 中由客戶管理金鑰時類似。 因此,此模型不適用於大部分的組織,除非組織有特定金鑰管理需求。 由於這些限制,大部分的 Azure 服務不支援在客戶所控制的硬體中使用客戶自控金鑰的伺服器端加密。 雙重金鑰加密中兩個金鑰的其中一個遵循此模型。
金鑰存取
在客戶所控制的硬體中採用使用客戶自控金鑰的伺服器端加密時,主要加密金鑰會保留在客戶所設定的系統上。 支援這個模型的 Azure 服務可提供方法,來建立與客戶提供之金鑰儲存區的安全連線。
優點
- 完整控制所使用的根金鑰 – 金鑰加密會由客戶提供的儲存區進行管理
- 能夠將多個服務加密到一個主機
- 可從服務的整體管理模型將金鑰管理隔離
- 可跨區域定義服務與金鑰位置
缺點
- 對於金鑰儲存、安全性、效能和可用性擁有完全責任
- 對於金鑰存取管理擁有完全責任
- 對於金鑰生命週期管理擁有完全責任
- 安裝、設定和持續維護的成本高昂
- 客戶資料中心與 Azure 資料中心之間網路可用性的相依性增加。