在 Agent Retrieval 中使用客戶自行管理的加密金鑰 (CMEK)

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 的新集合。

方法如下:

  1. 將現有集合中的資料物件匯出至 Cloud Storage bucket。

  2. 建立已啟用 CMEK 的新集合。

  3. 將資料物件匯入至集合。

金鑰輪替

在 KMS 中輪替金鑰時,系統會使用主要金鑰版本加密新資料,現有資料則會繼續使用先前的版本加密。詳情請參閱金鑰輪替

金鑰撤銷

撤銷或停用金鑰後,系統會立即停用集合。系統會自動取消部署相關聯的 ANN 索引,並清除記憶體中的資料。您將無法對集合執行讀取、寫入和搜尋作業。

如果還原金鑰,系統不會自動重新啟用集合。

支援 CMEK 的資源

目前受 CMEK 涵蓋的 Vertex AI 資源如下: 預先發布版功能的 CMEK 支援也處於預先發布階段。

資源 已加密的資料 說明文件連結
資料集 DataItemsAnnotations 的所有使用者匯入資料 (例如文字內容)。

使用者自製內容,例如AnnotationSpecs, ColumnSpecs
建立資料集,用於訓練分類和迴歸模型

建立資料集,用於訓練預測模型
索引 用於向量搜尋索引的所有資料檔案,儲存在 Cloud Storage、Pub/Sub 和內部儲存空間。Index 和 IndexEndpoint 必須使用相同的金鑰建立。

集合中的所有索引都必須使用相同的鍵建立。
在 Vector Search 中管理索引

在 Vector Search 2 中管理索引
集合 集合用於儲存相關資料物件。 在 Vector Search 2 中管理集合
DataObjects 集合會將資料儲存為個別的 JSON 物件,稱為資料物件。 在 Vector Search 2 中管理資料物件