Agent Retrieval (舊稱 Vector Search 2.0) 可讓您使用透過 Google Cloud Key Management Service (KMS) 管理的加密金鑰,保護靜態資料。這項整合功能可控管用來加密核心客戶內容的金鑰,包括輪替和撤銷這些金鑰。
根據預設,資料會使用 Google 代管的平台預設值加密。 CMEK 可讓您直接控管加密金鑰。
詳情請參閱「客戶自行管理的加密金鑰 (CMEK)」文件。
必要條件和限制
如要搭配集合使用 CMEK,必須符合下列先決條件和限制:
Cloud KMS 金鑰必須與受保護的 Google Cloud 「集合」位於相同區域。舉例來說,
us-central1區域中的集合必須使用位於us-central1的 KMS 金鑰。您必須將 KMS 金鑰的
cryptoKeyEncrypterDecrypter角色授予 Per-Product-Per-Project (P4) 服務帳戶。P4 服務帳戶的格式如下:service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-vectorsearch.iam.gserviceaccount.com
建立受 CMEK 保護的集合
滿足所有必要條件後,您可以使用 gcloud CLI、REST API 或 Python SDK 建立啟用 CMEK 的新集合。
使用 gcloud CLI
使用 --kms-key 引數指定 KMS 金鑰的完整資源 ID:
gcloud vector-search collections create [COLLECTION_ID] \
--kms-key projects/[KMS_PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]
使用 REST API
在 POST 要求的本文中加入 encryption_spec:
{
"encryption_spec": {
"crypto_key_name": "projects/[PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]"
}
}
使用 Python SDK
使用 Python SDK:
request = vectorsearch_v1beta.CreateCollectionRequest(
parent=f"projects/{PROJECT_ID}/locations/{LOCATION}",
collection_id=collection_id,
collection={
"data_schema": {...},
"vector_schema": {...},
# Specifies the customer-managed encryption key spec for a Collection
"encryption_spec": {
"crypto_key_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/keyRings/{KEY_RING}/cryptoKeys/{KEY}"
}
},
)
operation = vector_search_service_client.create_collection(request=request)
operation.result()
將資料物件從未啟用 CMEK 的集合遷移至已啟用 CMEK 的集合
無法為現有集合啟用 CMEK。您必須將資料物件遷移至已啟用 CMEK 的新集合。
方法如下:
金鑰輪替
在 KMS 中輪替金鑰時,系統會使用主要金鑰版本加密新資料,現有資料則會繼續使用先前的版本加密。詳情請參閱金鑰輪替。
金鑰撤銷
撤銷或停用金鑰後,系統會立即停用集合。系統會自動取消部署相關聯的 ANN 索引,並清除記憶體中的資料。您將無法對集合執行讀取、寫入和搜尋作業。
如果還原金鑰,系統不會自動重新啟用集合。
支援 CMEK 的資源
目前受 CMEK 涵蓋的 Vertex AI 資源如下: 預先發布版功能的 CMEK 支援也處於預先發布階段。
| 資源 | 已加密的資料 | 說明文件連結 |
|---|---|---|
| 資料集 | DataItems 和 Annotations 的所有使用者匯入資料 (例如文字內容)。
使用者自製內容,例如 AnnotationSpecs, ColumnSpecs。 |
建立資料集,用於訓練分類和迴歸模型
建立資料集,用於訓練預測模型 |
| 索引 | 用於向量搜尋索引的所有資料檔案,儲存在 Cloud Storage、Pub/Sub 和內部儲存空間。Index 和 IndexEndpoint 必須使用相同的金鑰建立。
集合中的所有索引都必須使用相同的鍵建立。 |
在 Vector Search 中管理索引:
在 Vector Search 2 中管理索引 |
| 集合 | 集合用於儲存相關資料物件。 | 在 Vector Search 2 中管理集合 |
| DataObjects | 集合會將資料儲存為個別的 JSON 物件,稱為資料物件。 | 在 Vector Search 2 中管理資料物件 |