根據預設,Vertex AI 會加密靜態儲存的客戶內容。Vertex AI 會為您處理加密作業,您不必採取任何其他動作。這項做法稱為「Google 預設加密」。
如要控管加密金鑰,您可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),並搭配 Vertex AI 等整合 CMEK 的服務。使用 Cloud KMS 金鑰可讓您控管保護等級、位置、輪換時間表、使用權限和存取權,以及加密範圍。使用 Cloud KMS 也能追蹤金鑰使用情形、查看稽核記錄,以及控管金鑰生命週期。您可以在 Cloud KMS 中控制及管理這些金鑰,而不是由 Google 擁有及管理用來保護您資料的對稱金鑰加密金鑰 (KEK)。
使用 CMEK 設定資源後,存取 Vertex AI 資源的體驗與使用 Google 預設加密機制類似。如要進一步瞭解加密選項,請參閱客戶管理的加密金鑰 (CMEK)。
本指南說明對 Vertex AI 資源使用 CMEK 的一些優點,並逐步說明如何設定訓練工作以使用 CMEK。
如要進一步瞭解如何為 Colab Enterprise 使用 CMEK,請參閱 Colab Enterprise CMEK 頁面。如要進一步瞭解如何為 Vertex AI Workbench 執行個體使用 CMEK,請參閱 Vertex AI Workbench 執行個體 CMEK 頁面。
Vertex AI 資源的 CMEK
以下各節說明 Vertex AI 資源的 CMEK 基本資訊,您必須先瞭解這些資訊,才能為工作設定 CMEK。
CMEK 的優點
一般來說,如果您需要完全控管用於加密資料的金鑰,CMEK 最能派上用場。使用 CMEK 時,您可以在 Cloud KMS 中管理金鑰。舉例來說,您可以使用 Cloud KMS API 輪替或停用金鑰,或是設定輪替排程。如要進一步瞭解 CMEK,包括啟用時機和原因,請參閱 Cloud KMS 說明文件。
執行 AutoML 或自訂 訓練工作時,程式碼會在 Vertex AI 管理的一或多個虛擬機器 (VM) 執行個體上執行。為 Vertex AI 資源啟用 CMEK 時,系統會使用您指定的金鑰,而非 Google 管理的金鑰,加密這些 VM 開機磁碟上的資料。CMEK 金鑰會加密下列類型的資料:
- VM 上的程式碼副本。
- 程式碼載入的任何資料。
- 程式碼儲存到本機磁碟的任何暫時性資料。
- 使用 AutoML 訓練的模型。
- 上傳至媒體資料集的媒體檔案 (資料)。
一般來說,CMEK 金鑰不會加密與作業相關聯的中繼資料,例如作業名稱和區域,或是資料集的顯示名稱。作業相關聯的中繼資料一律會使用 Google 的預設加密機制加密。
如果是資料集,使用者將資料匯入資料集時,資料項目和註解會以 CMEK 加密。資料集顯示名稱不會經過 CMEK 加密。
對於模型,儲存在儲存系統 (例如磁碟) 中的模型會經過 CMEK 加密。所有模型評估結果都會經過 CMEK 加密。
對於端點,端點下模型部署作業使用的所有模型檔案都會經過 CMEK 加密。這不包括任何記憶體內資料。
如果是批次預測,執行批次預測工作時使用的任何暫存檔案 (例如模型檔案、記錄、VM 磁碟) 都會經過 CMEK 加密。批次預測結果會儲存在使用者提供的目的地。因此,Vertex AI 會採用目的地加密設定的預設值。否則,結果也會以 CMEK 加密。
如果是資料標註,所有輸入檔案 (圖片、文字、影片、表格)、暫時討論內容 (例如問題、意見回饋) 和輸出內容 (標註結果) 都會經過 CMEK 加密。註解規格顯示名稱不會經過 CMEK 加密。
外部金鑰
您可以使用 Cloud External Key Manager (Cloud EKM) 建立您管理的外部金鑰,加密 Google Cloud中的資料。
使用 Cloud EKM 金鑰時,Google 無法控管外部管理金鑰的供應情形。如果您要求存取以外部代管金鑰加密的資源,但金鑰無法使用,Vertex AI 就會拒絕要求。金鑰可用後,您可能需要等待最多 10 分鐘,才能存取資源。
如要進一步瞭解使用外部金鑰時的注意事項,請參閱 Cloud External Key Manager。
將 CMEK 與其他 Google Cloud 產品搭配使用
為 Vertex AI 資源設定 CMEK 時,不會自動為與 Vertex AI 一併使用的其他 Google Cloud 產品設定 CMEK。如要使用 CMEK 加密其他Google Cloud 產品中的資料,必須進行額外設定。例如:
Cloud Storage:執行自訂訓練時,Vertex AI 通常會從 Cloud Storage 載入資料。使用 Python 訓練應用程式和預建容器進行訓練時,Vertex AI 也會從 Cloud Storage 值區載入程式碼。此外,部分訓練工作會將訓練好的模型構件 (例如 TensorFlow SaveModel 目錄) 匯出至 Cloud Storage 值區,做為輸出內容的一部分。
如要確保 Cloud Storage 中的資料是以 CMEK 加密,請參閱這篇 Cloud Storage 指南,瞭解如何使用客戶管理的加密金鑰。您可以將加密金鑰設為與 Vertex AI 搭配使用的 Cloud Storage 值區預設金鑰,也可以用來加密特定物件。
Artifact Registry:使用自訂容器進行訓練時,您可以設定 Vertex AI 從 Artifact Registry 載入容器映像檔。
如要確保容器映像檔已透過 CMEK 加密,請參閱 Artifact Registry 的 CMEK 指南。
Cloud Logging:執行訓練工作時,Vertex AI 訓練會將記錄檔儲存至 Logging。如要使用 CMEK 加密這些記錄,請參閱「為 Cloud Logging 設定 CMEK」。
目前支援 CMEK 的資源
目前適用於 CMEK 的 Vertex AI 資源如下。預先發布版功能的 CMEK 支援也處於預先發布狀態。
資源 | 已加密的資料 | 說明文件連結 |
---|---|---|
資料集 |
|
|
型號 |
|
|
端點 |
|
|
CustomJob |
|
|
HyperparameterTuningJob |
|
|
TrainingPipeline |
|
|
BatchPredictionJob (不含 AutoML 圖片批次預測) |
|
|
ModelDeploymentMonitoringJob |
|
|
PipelineJob |
|
|
MetadataStore |
|
|
TensorBoard |
|
|
特徵商店 |
|
|
索引 |
|
|
IndexEndpoint |
|
|
Colab Enterprise 執行階段 |
|
|
Colab Enterprise 筆記本 |
|
為生成式 AI 微調管道提供 CMEK 支援
下列模型的微調管道提供 CMEK 支援:
BERT
T5
image-generation (GPU)
限制
下列項目不支援 CMEK:
- AutoML 圖片模型批次預測 (
BatchPredictionJob
) - TPU 調整
- Vertex AI 內容快取
為資源設定 CMEK
下列各節說明如何在 Cloud Key Management Service 中建立金鑰環和金鑰、授予 Vertex AI 加密者和解密者金鑰權限,以及建立使用 CMEK 的資源。
事前準備
本指南假設您使用兩個不同的 Google Cloud 專案,為 Vertex AI 資料設定 CMEK:
- 用於管理加密金鑰的專案 (稱為「Cloud KMS 專案」)。
- 專案:用於存取 Cloud Storage 中的 Vertex AI 資料或輸出內容,以及與您使用案例所需的任何其他 Google Cloud產品互動 (稱為「AI Platform 專案」)。
建議的設定可支援職責分離。
或者,您也可以為整個指南使用單一 Google Cloud 專案。如要這麼做,請針對下列所有工作使用相同專案,這些工作會參照 Cloud KMS 專案和 AI Platform 專案。
設定 Cloud KMS 專案
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
在 Google Cloud 控制台中,按一下「安全性」,然後選取「金鑰管理」。系統會將您帶往「Cryptographic Keys」(加密編譯金鑰) 頁面,並選取您的 Cloud KMS 專案。
按一下您在本指南前一節中建立的金鑰環名稱,前往「金鑰環詳細資料」頁面。
找出您在本指南前一節中建立的金鑰,然後勾選對應的核取方塊。如果標示金鑰名稱的資訊面板尚未開啟,請按一下「顯示資訊面板」。
在資訊面板中,按一下「新增成員」
,開啟「將成員新增至『KEY_NAME』」對話方塊。在這個對話方塊中,請執行下列操作:- 在「New members」(新增成員) 方塊中,輸入您在上一個部分中記下的服務帳戶電子郵件地址:
service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
在「Select a role」(選取角色) 下拉式清單中,依序點選「Cloud KMS」和「Cloud KMS CryptoKey Encrypter/Decrypter」(Cloud KMS 加密編譯金鑰加密者/解密者) 角色。
按一下 [儲存]。
- 在「New members」(新增成員) 方塊中,輸入您在上一個部分中記下的服務帳戶電子郵件地址:
設定 AI Platform 專案
設定 Google Cloud CLI
本指南中的部分步驟需要使用 gcloud CLI,其他步驟則可選擇使用。After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
建立金鑰環和金鑰
請按照 Cloud KMS 指南建立對稱金鑰,建立金鑰環和金鑰。建立金鑰環時,請指定支援 Vertex AI 作業的區域做為金鑰環的位置。只有在資源和金鑰使用相同區域時,Vertex AI 訓練才支援 CMEK。您不得為金鑰環指定雙區域、多區域或全域位置。
請務必在 Cloud KMS 專案中建立金鑰環和金鑰。
授予 Vertex AI 權限
如要為資源使用 CMEK,您必須授予 Vertex AI 權限,允許其使用您的金鑰加密及解密資料。Vertex AI 會使用 Google 管理的服務代理程式,透過您的資源執行作業。這個服務帳戶的電子郵件地址格式如下:
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
如要找出 AI Platform 專案的適當服務帳戶,請前往 Google Cloud 主控台的「IAM」IAM頁面,然後找出符合下列電子郵件地址格式的成員,並以 AI Platform 專案的專案編號取代 AI_PLATFORM_PROJECT_NUMBER 變數。服務帳戶的名稱也是 Vertex AI Service Agent
。
記下這個服務帳戶的電子郵件地址,並在後續步驟中使用,授予該帳戶使用金鑰加密及解密資料的權限。您可以使用 Google Cloud 控制台或 Google Cloud CLI 授予權限:
Google Cloud 控制台
gcloud
執行下列指令:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--keyring=KEY_RING_NAME \
--location=REGION \
--project=KMS_PROJECT_ID \
--member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
請將下列預留位置替換為實際值:
使用 KMS 金鑰建立資源
建立新的支援 CMEK 的資源時,您可以將金鑰指定為建立參數之一。
控制台
在 Google Cloud 控制台的 Vertex AI 專區中建立新的支援 CMEK 的資源時,您可以在一般或進階選項專區中選取金鑰:
REST 和指令列
建立支援的資源時,請在要求中加入 encryptionSpec
物件,並將 encryptionSpec.kmsKeyName
欄位設為指向金鑰資源。
舉例來說,建立 dataset
資源時,您會在要求主體中指定金鑰:
{
"displayName": DATASET_NAME,
"metadataSchemaUri": METADATA_URI,
"encryptionSpec": {
"kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
}
}
Java
建立支援的資源時,請將 EncryptionSpec
設為指向金鑰資源。詳情請參閱 Java 適用的 Vertex AI 用戶端程式庫說明文件。
Node.js
建立支援的資源時,請將 encryptionSpec
參數設為指向金鑰資源。詳情請參閱 Vertex AI Node.js 用戶端程式庫說明文件。
Python
建立支援的資源時,請將 encryption_spec
參數設為指向金鑰資源。詳情請參閱 Cloud AI Platform 適用的 Python 用戶端說明文件。