Azure 加密概觀

本文提供如何在 Microsoft Azure 中使用加密的概觀。 其涵蓋加密的主要領域,包括待用加密、正式發行前小眾測試版加密,以及使用 Azure 金鑰保存庫 進行密鑰管理。 每個區段都包含更詳細的信息連結。

待用資料加密

待用資料包括存在於實體媒體上的永續性儲存體中的資訊,可以是任何數位格式。 媒體可以包含磁媒體或光學媒體上的檔案、封存的數據和數據備份。 Microsoft Azure 提供各種資料儲存體解決方案,以滿足不同的需求,包括檔案、磁碟、Blob 和資料表儲存體。 Microsoft 也支援加密來保護 Azure SQL DatabaseAzure Cosmos DB 和 Azure Data Lake。

待用資料加密適用於軟體即服務 (SaaS)、平台即服務 (PaaS) 和基礎結構即服務 (IaaS) 雲端模型上的服務。 本文概述並提供資源,以協助您使用 Azure 加密選項。

如需如何在 Azure 中加密待用數據的詳細討論,請參閱 Azure 數據待用加密。

Azure 加密模型

Azure 支援各種加密模型,包括伺服器端加密,可能使用服務管理的金鑰、Key Vault 中的客戶自控金鑰,或客戶控制硬體上的客戶自控金鑰。 有了用戶端加密功能,您就可以在內部部署或其他安全位置中管理和儲存金鑰。

用戶端加密

用戶端加密在 Azure 外執行。 包括:

  • 由客戶資料中心或服務應用程式執行的應用程式所加密的數據。
  • Azure 收到數據時已加密的數據。

使用用戶端加密時,雲端服務提供者無法存取加密密鑰,且無法解密此數據。 您完全掌控金鑰。

伺服器端加密

三種伺服器端加密模型各有不同的金鑰管理特性,可依您的需求選擇:

  • 服務管理的金鑰:提供低負荷的控制與便利性的組合。

  • 客戶管理的金鑰:讓您控制密鑰,包括攜帶您自己的金鑰(BYOK)支援,或可讓您產生新的密鑰。

  • 客戶控制硬體中的服務管理金鑰:可讓您在 Microsoft 控制外部的專屬存放庫中管理金鑰。 此特性稱為「主控您自己的金鑰」(HYOK)。 不過,設定很複雜,而且大部分的 Azure 服務都不支援此模型。

Azure 磁碟加密

您可以使用適用於Linux VM的 Azure 磁碟加密 來保護受控磁碟,其使用 DM-Crypt,或使用 Windows BitLocker 的 Windows VM Azure 磁碟加密,以使用完整磁碟區加密來保護作業系統磁碟和數據磁碟。

您的 Azure 金鑰保存庫 訂用帳戶中會保護加密金鑰和秘密。 藉由使用 Azure 備份 服務,您可以備份和還原使用密鑰加密密鑰 (KEK) 組態的加密虛擬機 (VM)。

Azure 儲存體服務加密

在伺服器端和用戶端案例中,Azure Blob 記憶體和 Azure 檔案共用中的待用數據可以加密。

Azure 儲存體 服務加密 (SSE) 可以在儲存資料之前自動加密數據,並在擷取數據時自動解密數據。 程式對使用者完全透明。 儲存體 服務加密使用256位進階加密標準 (AES) 加密,這是可用的最強區塊加密之一。 AES 會以透明方式處理加密、解密和金鑰管理。

Azure Blob 的用戶端加密

您可以透過各種方式執行 Azure Blob 的用戶端加密。

您可以使用適用於 .NET NuGet 套件的 Azure 儲存體 用戶端連結庫,在將它上傳至 Azure 記憶體之前,先加密用戶端應用程式中的數據。

若要深入瞭解並下載適用於 .NET NuGet 套件的 Azure 儲存體 客戶端連結庫,請參閱 Windows Azure 儲存體 8.3.0

當您搭配使用用戶端加密搭配 金鑰保存庫 時,您的數據會使用由 Azure 儲存體 用戶端 SDK 產生的一次性對稱內容加密金鑰 (CEK) 加密。 CEK 會使用金鑰加密金鑰 (KEK) 進行加密,這可以是對稱金鑰或非對稱密鑰組。 您可以在本機管理它,或將它儲存在 金鑰保存庫 中。 加密的數據接著會上傳至 Azure 儲存體。

若要深入瞭解使用 金鑰保存庫 進行用戶端加密,並開始使用操作說明,請參閱教學課程:使用 金鑰保存庫 加密和解密 Azure 儲存體 中的 Blob。

最後,您也可以使用適用於 Java 的 Azure 儲存體 客戶端連結庫,先執行用戶端加密,再將數據上傳至 Azure 儲存體,並在您將數據下載至用戶端時解密數據。 此連結庫也支援與記憶體帳戶密鑰管理的 金鑰保存庫 整合。

使用 Azure SQL 資料庫 加密待用數據

Azure SQL 資料庫 是 Azure 中的一般用途關係資料庫服務,可支援關係型數據、JSON、空間和 XML 等結構。 SQL 資料庫 透過 透明資料加密 (TDE) 功能支援伺服器端加密,以及透過 Always Encrypted 功能進行用戶端加密。

透明資料加密

TDE 是用來即時加密 SQL ServerAzure SQL 資料庫Azure Synapse Analytics 數據檔,其會使用資料庫加密密鑰 (DEK) 儲存在資料庫開機記錄中,以便在復原期間提供可用性。

TDE 會使用 AES 和三重數據加密標準 (3DES) 加密演算法來保護資料和記錄檔。 資料庫檔案的加密會在頁面層級執行。 加密資料庫中的頁面會在寫入磁碟之前先加密,並在讀取記憶體時解密。 TDE 現在預設會在新建立的 Azure SQL 資料庫上啟用。

Always Encrypted 功能

使用 Azure SQL 中的 Always Encrypted 功能,您可以在將它儲存在 Azure SQL 資料庫 之前,先加密用戶端應用程式中的數據。 您也可以啟用內部部署資料庫管理委派給第三方,並維持擁有者與可檢視數據的人員與管理數據的人員之間的區隔,但不應該存取它。

數據格層級或數據行層級加密

使用 Azure SQL 資料庫,您可以使用 Transact-SQL 將對稱加密套用至數據行。 這種方法稱為 數據格層級加密或數據行層級加密 (CLE),因為您可以使用此方法來加密具有不同加密密鑰的特定數據行,甚至是特定數據格。 這樣做可讓您比 TDE 更細微的加密功能,以加密頁面中的數據。

CLE 具有內建函式,您可以使用對稱或非對稱密鑰、憑證的公鑰,或使用 3DES 的複雜密碼來加密數據。

Azure Cosmos DB 資料庫加密

Azure Cosmos DB 是 Microsoft 全球散發的多模型資料庫。 預設會加密儲存在 Azure Cosmos DB 中非揮發性記憶體的用戶數據(固態硬碟)。 沒有控制件可以開啟或關閉它。 待用加密是使用數種安全性技術來實作,包括安全密鑰儲存系統、加密的網路和密碼編譯 API。 加密密鑰是由 Microsoft 管理,並且會根據 Microsoft 內部指導方針輪替。 您可以選擇使用客戶管理的金鑰 或 CMK 功能,新增第二層加密。

Data Lake 中的待用加密

Azure Data Lake 是一種全企業存放庫,適用於在需求或架構的任何正式定義之前,在單一位置收集的每一種數據類型。 Data Lake Store 支援「預設開啟」待用數據的透明加密,這會在建立帳戶期間設定。 根據預設,Azure Data Lake Store 會為您管理密鑰,但您可以選擇自行管理密鑰。

加密和解金鑰資料會使用三種類型的金鑰:主要加密金鑰(MEK)、數據加密金鑰(DEK)和封鎖加密金鑰(BEK)。 MEK 用來加密儲存在永續性媒體上的 DEK,而 BEK 衍生自 DEK 和數據區塊。 如果您要管理自己的金鑰,您可以輪替 MEK。

傳輸中資料加密

Azure 有許多機制可讓資料在移動位置時保持隱蔽。

每當 Azure 客戶流量在資料中心之間移動時,Microsoft(或代表 Microsoft)控制外部實體界限時,使用 IEEE 802.1AE MAC 安全性標準 (也稱為 MACsec)的數據連結層加密方法會從基礎網路硬體的點對點套用。 封包會在傳送前先在裝置上加密,以防止實體「中間人」或竊探/竊訊攻擊。 此技術整合到網路硬體本身,在網路硬體上提供線路速率加密,連結延遲不會明顯增加。 根據預設,此 MACsec 加密會在區域內或區域之間移動的所有 Azure 流量開啟,而且客戶不需要採取任何動作才能啟用。

Azure 中的 TLS 加密

Microsoft 可讓客戶在雲端服務和客戶之間移動時,使用 傳輸層安全性 (TLS) 通訊協定來保護數據。 Microsoft 資料中心與連線至 Azure 服務的用戶端系統交涉 TLS 連線。 TLS 支援增強式驗證、訊息隱私權、完整性 (可偵測訊息竄改、攔截和偽造)、互通性、演算法彈性,以及輕鬆部署和使用。

完美轉寄保密 (PFS) 可透過唯一金鑰保護客戶客戶端系統與 Microsoft 雲端服務之間的連線。 連線也採用 RSA 型 2,048 位元加密金鑰長度。 此組合讓人難以攔截和存取傳輸中的資料。

Azure 儲存體 交易

當您透過 Azure 入口網站 與 Azure 儲存體 互動時,所有交易都會透過 HTTPS 進行。 您也可以使用儲存體 REST API 透過 HTTPS 來與 Azure 儲存體互動。 您可以啟用儲存體帳戶所需的安全傳輸,以便呼叫 REST API 來存取儲存體帳戶中的物件時,強制使用 HTTPS。

共用存取簽章 (SAS)可用來委派對 Azure 儲存體 物件的存取權,包括一個選項,指定在使用共用存取簽章時只能使用 HTTPS 通訊協定的選項。 此方法確保任何人在傳送附有 SAS 權杖的連結時,一定使用適當的通訊協定。

用來存取 Azure 檔案儲存體 共用的 SMB 3.0 支援加密,而且可在 Windows Server 2012 R2、Windows 8、Windows 8.1 和 Windows 10 中使用。 允許跨區域存取,甚至在桌面上存取。

用戶端加密會在傳送至您的 Azure 儲存體 實例之前先加密數據,使其在透過網路傳輸時進行加密。

透過 Azure 虛擬網路進行 SMB 加密

藉由在執行 Windows Server 2012 或更新版本的 VM 中使用 SMB 3.0,您可以透過 Azure 虛擬網絡 加密傳輸中的數據來保護資料傳輸。 將資料加密有助於防範竄改和竊聽攻擊。 管理員可以對整部伺服器或只對特定共用來啟用 SMB 加密。

對共用或伺服器啟用 SMB 加密之後,預設只允許 SMB 3.0 用戶端存取已加密的共用。

VM 中的傳輸中加密

執行 Windows 的 VM 之間的傳輸數據可以透過數種方式加密,視聯機的性質而定。

RDP 工作階段

您可以使用 Windows 用戶端電腦的 遠端桌面通訊協定(RDP) ,或從已安裝 RDP 用戶端的 Mac 連線並登入 VM。 在 RDP 工作階段中透過網路傳輸的數據可以受到 TLS 的保護。

您也可以使用遠端桌面連線到 Azure 中的 Linux VM。

使用 SSH 保護 Linux VM 的存取

針對遠端管理,您可以使用 安全殼層 (SSH) 連線到在 Azure 中執行的 Linux VM。 SSH 是允許透過不安全的連線進行安全登入的加密連線通訊協定。 這是 Azure 中裝載之 Linux VM 的預設連線通訊協定。 藉由使用 SSH 金鑰進行驗證,您就不需要密碼登入。 SSH 會使用公開/私鑰組(非對稱加密)進行驗證。

Azure VPN 加密

您可以透過建立安全通道的虛擬專用網聯機到 Azure,以保護透過網路傳送之數據的隱私權。

Azure VPN 閘道

您可以使用 Azure VPN 閘道 ,在虛擬網路與內部部署位置之間透過公用連線傳送加密流量,或傳送虛擬網路之間的流量。

站對站 VPN 使用 IPsec 進行傳輸加密。 Azure VPN 閘道會使用一組預設建議。 您可以將 Azure VPN 閘道設定為使用具有特定密碼編譯演算法和密鑰強度的自訂 IPsec/IKE 原則,而不是 Azure 預設原則集。

點對站 VPN

點對站 VPN 允許個別用戶端電腦存取 Azure 虛擬網路。 安全套接字通道通訊協定 (SSTP) 用來建立 VPN 通道。 可周遊防火牆 (通道如同 HTTPS 連線)。 您可以使用自己的內部公開金鑰基礎結構 (PKI) 根憑證授權單位 (CA),以獲得點對站連線能力。

您可以使用具有憑證驗證或 PowerShell 的 Azure 入口網站,設定虛擬網路的點對站 VPN 連線。

若要深入瞭解 Azure 虛擬網路的點對站 VPN 連線,請參閱:

使用認證驗證設定虛擬網路的點對站連線:Azure 入口網站

使用憑證驗證設定虛擬網路的點對站連線:PowerShell

站對站 VPN

您可以使用站對站 VPN 網關聯機,透過 IPsec/IKE(IKEv1 或 IKEv2) VPN 通道,將內部部署網路連線到 Azure 虛擬網路。 這種連線需要有獲指派對外公用 IP 位址的內部部署 VPN 裝置。

您可以使用 Azure 入口網站、PowerShell 或 Azure CLI 來設定虛擬網路的站對站 VPN 連線。

如需詳細資訊,請參閱

在 Azure 入口網站中建立站對站連線

在 PowerShell 中建立站對站連線

使用 CLI 建立具有站對站 VPN 連線的虛擬網路

Data Lake 中的傳輸中加密

傳輸中的數據(也稱為移動中的數據)也一律會在 Data Lake Store 中加密。 除了在永續性媒體中儲存數據之前加密數據之外,數據也會使用 HTTPS 在傳輸中一律受到保護。 HTTPS 是唯一支援 Data Lake Store REST 介面的通訊協定。

若要深入瞭解 Data Lake 中傳輸中的數據加密,請參閱 Data Lake Store 中的數據加密。

使用 Key Vault 來管理金鑰

不適當保護和管理金鑰,加密就毫無用處。 Microsoft 建議以 Key Vault 為解決方案,以管理和控制如何存取雲端服務使用的加密金鑰。 您可以透過 Microsoft Entra 帳戶將存取金鑰的許可權指派給服務或使用者。

金鑰保存庫 可減輕組織設定、修補和維護硬體安全性模組 (HSM) 和密鑰管理軟體的需求。 當您使用 金鑰保存庫 時,您會維護控制項。 Microsoft 永遠不會看到您的密鑰,而且應用程式無法直接存取它們。 您也可以在 HSM 中匯入或產生金鑰。

下一步