在代理式檢索中使用客戶自行管理的加密金鑰 (CMEK)

Agent Retrieval (舊稱 Vector Search 2.0) 可讓您使用透過 Cloud Key Management Service 管理的加密編譯金鑰,保護靜態資料。這項整合功能可讓您控管用於加密核心客戶內容的金鑰,包括輪替及撤銷這些金鑰。

根據預設,資料會使用 Google 代管的平台預設設定加密。CMEK 可讓您直接控管加密金鑰。

詳情請參閱客戶自行管理的加密金鑰 (CMEK) 說明文件。

必要條件和限制

如要搭配使用 CMEK 和集合,必須符合下列必要條件和限制:

  • Cloud KMS 金鑰必須與受保護的集合位於相同的 Google Cloud 區域。舉例來說,us-central1 區域中的集合必須使用位於 us-central1 的 Cloud KMS 金鑰。

  • 您必須將 Cloud 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 引數,指定 Cloud 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. 將資料物件匯入集合。

金鑰輪替

在 Cloud KMS 中輪替金鑰時,系統會使用主金鑰版本加密新資料,現有資料則仍以舊版本加密。詳情請參閱「金鑰輪替」。

金鑰撤銷

撤銷或停用金鑰會立即停用集合。相關聯的 ANN 索引會自動取消部署,記憶體內資料也會清除。集合的讀取、寫入和搜尋作業都會失敗。

即使還原金鑰,系統也不會自動重新啟用集合。

支援 CMEK 的資源

CMEK 涵蓋的 Gemini Enterprise Agent Platform 資源如下。預先發布版功能對 CMEK 的支援也處於預先發布版狀態。

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

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

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

集合中的所有索引都必須使用相同的鍵建立。
在 向量搜尋 中管理索引:

在 向量搜尋 中管理索引 2
珍藏內容 集合用於儲存相關資料物件。 管理向量搜尋 2 中的集合
DataObjects 集合會將資料儲存為個別 JSON 物件,稱為資料物件。 在向量搜尋 2 管理資料物件