エージェント検索(以前の 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 にデータ オブジェクトを移行する必要があります。
手順は次のとおりです。
既存の Collection から Cloud Storage バケットにデータ オブジェクトをエクスポートします。
データ オブジェクトを 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 でデータ オブジェクトを管理する |