Azure Machine Learning 的資料加密

當您對模型進行定型及執行推斷時,Azure Machine Learning 需仰賴數個 Azure 資料儲存體服務和計算資源。 在本文中,了解適用於每個服務的待用和傳輸中資料加密。

針對定型期間的生產等級加密,建議您使用 Azure Machine Learning 計算叢集。 針對推斷期間的生產等級加密,建議您使用 Azure Kubernetes Service (AKS)。

Azure Machine Learning 計算執行個體是開發/測試環境。 使用時,建議您將檔案 (例如筆記本和指令碼) 儲存在檔案共用中。 將您的資料儲存在資料存放區中。

待用加密

Azure Machine Learning 端對端專案能與 Azure Blob 儲存體、Azure Cosmos DB 和 Azure SQL Database 等服務整合。 本文會說明適用於此類服務的加密方法。

Azure Blob 儲存體

Azure Machine Learning 會將快照集、輸出和記錄儲存在與 Azure Machine Learning 工作區和您的訂用帳戶相關聯的 Azure Blob 儲存體帳戶 (預設儲存體帳戶) 中。 Azure Blob 儲存體中儲存的所有資料,都會使用 Microsoft 管理的金鑰進行待用加密。

如需如何針對儲存在 Azure Blob 儲存體中的資料使用您自己的金鑰的相關資訊,請參閱在 Azure Key Vault 中使用客戶自控金鑰進行 Azure 儲存體加密

定型資料通常也會儲存在 Azure Blob 儲存體中,以便定型計算目標可以加以存取。 Azure Machine Learning 不會管理此儲存體。 此儲存體會作為遠端檔案系統掛接至計算目標。

如果您需要「輪替或撤銷」金鑰,您可以隨時執行此動作。 輪替金鑰時,儲存體帳戶將會開始使用新的金鑰 (最新版本) 來將待用資料加密。 撤銷 (停用) 金鑰時,儲存體帳戶會負責處理失敗的要求。 輪替或撤銷通常需要一小時的時間才會生效。

如需重新產生存取金鑰的詳細資訊,請參閱重新產生儲存體帳戶存取金鑰 (部分機器翻譯)。

Azure Data Lake 儲存體

注意

Azure Data Lake Storage Gen1 將於「2024 年 2 月 29 日」淘汰。 如需詳細資訊,請參閱官方公告。 如果您使用 Azure Data Lake Storage Gen1,請務必在該日期之前移轉至 Azure Data Lake Storage Gen2。 若要了解如何進行,請參閱使用 Azure 入口網站將 Azure Data Lake Storage 從 Gen1 移轉至 Gen2

除非您已經有 Azure Data Lake Storage Gen1 帳戶,否則無法建立新的帳戶。

Azure Data Lake Storage Gen2 建置於 Azure Blob 儲存體的基礎之上,且是專為企業中的巨量資料分析而設計的。 Data Lake Storage Gen2 是作為 Azure Machine Learning 的資料存放區使用。 和 Azure Blob 儲存體相同,待用資料會使用 Microsoft 管理的金鑰進行加密。

如需如何針對儲存在 Azure Data Lake Storage 中的資料使用您自己的金鑰的相關資訊,請參閱在 Azure Key Vault 中使用客戶自控金鑰進行 Azure 儲存體加密

Azure 關聯式資料庫

Azure Machine Learning 服務支援來自下列資料來源的資料。

Azure SQL Database

透明資料加密可加密待用資料,以協助 Azure SQL Database 抵禦惡意離線活動的威脅。 根據預設,會針對使用 Microsoft 管理的金鑰的所有新部署 SQL 資料庫啟用透明資料加密。

如需如何針對透明資料加密使用客戶自控金鑰的相關資訊,請參閱 Azure SQL Database 透明資料加密

適用於 PostgreSQL 的 Azure 資料庫

根據預設,適用於 PostgreSQL 的 Azure 資料庫會使用 Azure 儲存體加密,以透過使用 Microsoft 管理的金鑰來加密待用資料。 其類似其他資料庫 (例如 SQL Server) 中的透明資料加密。

如需如何針對透明資料加密使用客戶自控金鑰的相關資訊,請參閱使用客戶自控金鑰進行適用於 PostgreSQL 的 Azure 資料庫單一伺服器資料加密 (部分機器翻譯)。

適用於 MySQL 的 Azure 資料庫

適用於 MySQL 的 Azure 資料庫是 Microsoft Cloud 中的關聯式資料庫服務。 其是以 MySQL Community Edition 資料庫引擎為基礎。 適用於 MySQL 的 Azure 資料庫服務針對待用資料的 Azure 儲存體加密使用通過 FIPS 140-2 驗證的密碼編譯模組。

若要使用客戶自控金鑰來對加密資料,請參閱使用客戶自控金鑰進行適用於 MySQL 的 Azure 資料庫資料加密 (部分機器翻譯)。

Azure Cosmos DB

Azure Machine Learning 將中繼資料儲存在 Azure Cosmos DB 執行個體中。 這個執行個體與 Azure Machine Learning 所管理的 Microsoft 訂用帳戶相關聯。 Azure Cosmos DB 中儲存的所有資料,都會使用 Microsoft 受控金鑰進行待用加密。

使用您自己的 (客戶自控) 金鑰來加密 Azure Cosmos DB 執行個體時,會在您的訂用帳戶中建立 Microsoft 管理的 Azure Cosmos DB 執行個體。 此執行個體會在 Microsoft 管理的資源群組中建立,其與您工作區的資源群組不同。 如需詳細資訊,請參閱適用於 Azure Machine Learning 的客戶自控金鑰

Azure Container Registry

您容器登錄 (Azure Container Registry 的執行個體) 中的所有容器映像都會在待用時進行加密。 Azure 會在儲存映像之前自動將其加密,並在 Azure Machine Learning 提取映像時將其解密。

若要使用客戶自控金鑰來加密您的容器登錄,您必須在佈建工作區時建立並附加該容器登錄。 您可以加密在工作區佈建期間建立的預設執行個體。

重要

Azure Machine Learning 需要您在容器登錄上啟用管理帳戶。 當您建立容器登錄時,此設定預設為停用。 如需啟用管理帳戶的相關資訊,請參閱本文稍後的管理帳戶 (部分機器翻譯)。

為工作區建立容器登錄之後,請勿將其刪除。 這樣做將會造成您的 Azure Machine Learning 工作區中斷。

如需使用現有容器登錄建立工作區的範例,請參閱下列文章:

Azure 容器執行個體

重要

部署到 Azure 容器執行個體需仰賴 Azure Machine Learning Python SDK 和 CLI v1。

您可以使用客戶自控金鑰來加密已部署的 Azure 容器執行個體資源。 用於容器執行個體的客戶自控金鑰可以儲存在您工作區的金鑰保存庫中。

適用於:Python SDK azureml v1

若要在將模型部署到容器執行個體時使用金鑰,請使用 AciWebservice.deploy_configuration() 建立新的部署設定。 使用下列參數提供金鑰資訊:

  • cmk_vault_base_url:包含金鑰之金鑰保存庫的 URL。
  • cmk_key_name:金鑰的名稱。
  • cmk_key_version:金鑰的版本。

如需建立和使用部署設定的相關詳細資訊,請參閱下列文章:

如需搭配容器執行個體使用客戶自控金鑰的詳細資訊,請參閱加密部署資料 (部分機器翻譯)。

Azure Kubernetes Service

您可以隨時使用客戶自控金鑰來加密已部署的 Azure Kubernetes Service 資源。 如需詳細資訊,請參閱攜帶您自己的金鑰搭配 Azure Kubernetes Service

此流程可讓您加密 Kubernetes 叢集中已部署之虛擬機器的資料和 OS 磁碟。

重要

此流程僅適用於 AKS 1.17 版或更高版本。 Azure Machine Learning 已在 2020 年 1 月 13 日新增 AKS 1.17 的支援。

Machine Learning Compute

計算叢集

儲存在 Azure 儲存體中之每個計算節點的 OS 磁碟,都會使用 Azure Machine Learning 儲存體帳戶中的 Microsoft 受控金鑰進行加密。 此計算目標是暫時的,而且通常會在沒有任何作業排入佇列時縮小叢集。 底層虛擬機器已取消佈建,且 OS 磁碟已刪除。

根據預設,不會針對工作區啟用 Azure 磁碟加密。 如果您在建立工作區時將 hbi_workspace 參數設定為 TRUE,系統會加密 OS 磁碟。

每部虛擬機器也會有本機暫存磁碟供 OS 作業使用。 如果您想要的話,可以使用磁碟來暫存定型資料。 如果您在建立工作區時將 hbi_workspace 參數設定為 TRUE,系統會加密暫存磁碟。 此環境很短暫 (只在作業期間),而且加密支援僅限於系統管理的金鑰。

受控線上端點和批次端點會在後端使用 Azure Machine Learning 計算,且其會遵循相同的加密機制。

計算執行個體

計算執行個體的 OS 磁碟是由 Azure Machine Learning 儲存體帳戶中的 Microsoft 管理的金鑰所加密。 如果您在建立工作區時將 hbi_workspace 參數設定為 TRUE,系統會使用 Microsoft 管理的金鑰來加密計算執行個體上的本機 OS 和暫存磁碟。 OS 和暫存磁碟不支援客戶自控金鑰加密。

如需詳細資訊,請參閱適用於 Azure Machine Learning 的客戶自控金鑰

Azure Data Factory

Azure Data Factory 管線會擷取資料以便搭配 Azure Machine Learning 使用。 Azure Data Factory 會加密待用資料,包括實體定義,以及在執行期間快取的任何資料。 根據預設,資料會使用隨機產生、由 Microsoft 管理的金鑰進行加密,且該金鑰會唯一指派給您的資料處理站。

如需如何使用客戶自控金鑰進行加密的相關資訊,請參閱使用客戶自控金鑰加密 Azure Data Factory (部分機器翻譯)。

Azure Databricks

您可以在 Azure Machine Learning 管線中使用 Azure Databricks。 根據預設,Azure Databricks 使用的 Databricks 檔案系統 (DBFS) 會使用 Microsoft 管理的金鑰進行加密。 若要設定 Azure Databricks 使用客戶管理的金鑰,請參閱在預設 (根) DBFS 上設定客戶管理的金鑰

Microsoft 產生的資料

使用 Azure Machine Learning 之類的服務時,Microsoft 可能會產生暫時性的預先處理資料來對多個模型進行定型。 此資料會儲存在您工作區的資料存放區中,讓您能夠適當地強制執行存取控制和加密。

建議您也將從已部署的端點記錄的診斷資訊 (部分機器翻譯) 加密到 Application Insights。

傳輸中加密

Azure Machine Learning 使用傳輸層安全性 (TLS) 來保護各種 Azure Machine Learning 微服務之間的內部通訊。 所有的 Azure 儲存體存取也會透過安全通道進行。

為了協助保護對評分端點的外部呼叫,Azure Machine Learning 會使用 TLS。 如需詳細資訊,請參閱使用 TLS 來透過 Azure Machine Learning 保護 Web 服務 \(部分機器翻譯\)。

資料收集與處理

基於診斷目的,Microsoft 可能會收集無法識別使用者的資訊。 例如,Microsoft 可能會收集資源名稱 (例如資料集名稱或機器學習實驗名稱) 或作業環境變數。 所有此類資料都是透過 Microsoft 管理的金鑰儲存在 Microsoft 擁有之訂用帳戶內裝載的儲存體中。 儲存體遵循 Microsoft 的標準隱私權原則和資料處理標準。 此資料會保留在您工作區所在的相同區域內。

建議您不要將敏感性資訊 (例如帳戶金鑰祕密) 儲存在環境變數中。 Microsoft 會記錄、加密及儲存環境變數。 同樣地,當您為作業命名時,請避免包括敏感性資訊,例如使用者名稱或祕密專案名稱。 此資訊可能會出現在 Microsoft 支援服務工程師可存取的遙測記錄中。

您可以在佈建工作區時,將 hbi_workspace 參數設定為 TRUE,以選擇退出診斷資料的收集。 使用 Azure Machine Learning Python SDK、Azure CLI、REST API 或 Azure Resource Manager 範本時,支援此功能。

Azure Key Vault 中的認證儲存

Azure Machine Learning 使用與工作區相關聯的 Azure Key Vault 執行個體來儲存各種類型的認證:

  • 儲存體帳戶的相關聯連接字串
  • Azure Container Registry 執行個體的密碼
  • 資料存放區的連接字串

計算目標 (例如 Azure HDInsight 和虛擬機器) 的安全殼層 (SSH) 密碼和金鑰會儲存在與 Microsoft 訂用帳戶相關聯的個別金鑰保存庫中。 Azure Machine Learning 不會儲存使用者提供的任何密碼或金鑰。 相反地,其會產生、授權及儲存自己的 SSH 金鑰,以連線至虛擬機器和 HDInsight 來執行實驗。

每個工作區都有相關聯的系統指派受控識別,其名稱與工作區相同。 此受控識別可存取金鑰保存庫中的所有金鑰、祕密和憑證。

下一步