エージェント検索の顧客管理の暗号鍵(CMEK)

エージェント検索(以前の Vector Search 2.0)を使用すると、暗号鍵 を使用して保存データを保護できます。これらの鍵はCloud Key Management Serviceで管理されます。 この統合により、コアの顧客コンテンツの暗号化に使用される鍵を制御できます。たとえば、鍵のローテーションや取り消しを行うことができます。

デフォルトでは、データは Google が管理するプラットフォームのデフォルトを使用して暗号化されます。 CMEK を使用すると、暗号鍵を直接制御できます。

詳細については、 顧客管理の暗号鍵(CMEK) のドキュメントをご覧ください。

前提条件と制約

Collections で CMEK を使用するには、次の前提条件と制約を満たす必要があります。

  • Cloud KMS 鍵は、保護する Collectionと同じ Google Cloud リージョンに存在する必要があります。たとえば、us-central1 リージョンの Collection では、us-central1 にある KMS 鍵を使用する必要があります。

  • プロダクト / プロジェクトごとの(P4)サービス アカウントに、KMS 鍵に対する cryptoKeyEncrypterDecrypter ロールを付与する必要があります。P4 サービス アカウントの形式は service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-vectorsearch.iam.gserviceaccount.com です。

CMEK で保護された Collection を作成する

すべての前提条件を満たしたら、gcloud CLI、REST API、または Python SDK を使用して、CMEK が有効な新しい Collection を作成できます。

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 対応でない Collection から CMEK 対応の Collection にデータ オブジェクトを移行する

既存の Collection で CMEK を有効にすることはできません。代わりに、CMEK が有効な新しい Collection にデータ オブジェクトを移行する必要があります。

手順は次のとおりです。

  1. 既存の Collection から Cloud Storage バケットにデータ オブジェクトをエクスポートします。

  2. CMEK が有効な新しい Collection を作成します。

  3. データ オブジェクトを Collection にインポートします。

鍵のローテーション

KMS で鍵がローテーションされると、新しいデータは主キーのバージョンを使用して暗号化されますが、既存のデータは以前のバージョンで暗号化されたままになります。詳細については、鍵のローテーションをご覧ください。

キーの取り消し

鍵を取り消すか無効にすると、Collection がすぐに無効になります。関連付けられた ANN インデックスが自動的にデプロイ解除され、メモリ内のデータが消去されます。 Collection に対する読み取り、書き込み、検索オペレーションは失敗します。

鍵が復元されても、Collection は自動的に再度有効になりません。

CMEK でサポートされるリソース

CMEK でカバーされる現在の Vertex AI リソースは次のとおりです。 プレビュー機能の CMEK サポートもプレビュー ステータスです。

リソース 暗号化されたマテリアル ドキュメントのリンク
データセット DataItems と Annotations でユーザーがインポートしたすべてのデータ(テキスト コンテンツなど)。

AnnotationSpecs, ColumnSpecs などのユーザー作成コンテンツ。
分類モデルと回帰モデルのトレーニング用データセットを作成する

予測モデルをトレーニングするためのデータセットを作成する
インデックス ベクトル検索インデックスに使用されるすべてのデータファイルは、Cloud Storage、Pub/Sub、内部ストレージに保存されます。Index と IndexEndpoint は同じキーで作成する必要があります。

Collection 内のすべてのインデックスは、同じキーで作成する必要があります。
ベクトル検索でインデックスを管理する:

Vector Search 2 でインデックスを管理する
コレクション コレクション は、関連するデータ オブジェクトを保存するために使用されます。 Vector Search 2 でコレクションを管理する
DataObjects コレクションは、データをデータ オブジェクトと呼ばれる個々の JSON オブジェクトとして保存します。 Vector Search 2 でデータ オブジェクトを管理する