Chiavi di crittografia gestite dal cliente (CMEK) nel recupero degli agenti

Agent Retrieval (in precedenza Vector Search 2.0) ti consente di proteggere i dati a riposo utilizzando chiavi di crittografia gestite tramite Cloud Key Management Service. Questa integrazione fornisce il controllo sulle chiavi utilizzate per criptare i contenuti principali dei clienti, inclusa la possibilità di ruotare e revocare queste chiavi.

Per impostazione predefinita, i dati vengono criptati utilizzando le impostazioni predefinite della piattaforma gestita da Google. CMEK ti offre il controllo diretto sulle chiavi di crittografia.

Per ulteriori informazioni, consulta la documentazione relativa alle chiavi di crittografia gestite dal cliente (CMEK).

Prerequisiti e vincoli

Per utilizzare CMEK con una raccolta, devono essere soddisfatti i seguenti prerequisiti e vincoli:

  • La chiave Cloud KMS deve risiedere nella stessa Google Cloud regione della raccolta che protegge. Ad esempio, una raccolta nella regione us-central1 deve utilizzare una chiave KMS che si trova in us-central1.

  • Devi concedere al tuo account di servizio per prodotto e per progetto (P4) il ruolo cryptoKeyEncrypterDecrypter sulla chiave KMS. L'account di servizio P4 segue questo formato: service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-vectorsearch.iam.gserviceaccount.com

Creazione di una raccolta protetta da CMEK

Dopo aver soddisfatto tutti i prerequisiti, puoi utilizzare gcloud CLI, l'API REST o l'SDK Python per creare una nuova raccolta con CMEK abilitata.

Utilizzo di gcloud CLI

Specifica l'ID risorsa completo della chiave KMS utilizzando l'argomento --kms-key:

gcloud vector-search collections create [COLLECTION_ID] \
    --kms-key projects/[KMS_PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]

Utilizzo dell'API REST

Includi encryption_spec nel corpo della richiesta POST:

{
  "encryption_spec": {
    "crypto_key_name": "projects/[PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]"
  }
}

Utilizzo dell'SDK Python

Utilizzo dell'SDK Python:

   
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()

Migrazione di oggetti dati da una raccolta non CMEK a una raccolta abilitata per CMEK

CMEK non può essere abilitata per le raccolte esistenti. Devi invece eseguire la migrazione degli oggetti dati in una nuova raccolta con CMEK abilitata.

Ecco come fare:

  1. Esporta gli oggetti dati da una raccolta esistente in un bucket Cloud Storage.

  2. Crea una nuova raccolta con CMEK abilitata.

  3. Importa gli oggetti dati nella raccolta.

Rotazione della chiave

Quando una chiave viene ruotata in KMS, i nuovi dati vengono criptati utilizzando la versione della chiave primaria, mentre i dati esistenti rimangono criptati con la versione precedente. Per maggiori dettagli, consulta Rotazione della chiave.

Revoca della chiave

La revoca o la disattivazione di una chiave disattiva immediatamente la raccolta. Gli indici ANN associati vengono automaticamente annullati e i dati in memoria vengono eliminati. Le operazioni di lettura, scrittura e ricerca nella raccolta non andranno a buon fine.

Le raccolte non vengono riattivate automaticamente se la chiave viene ripristinata.

Risorse supportate da CMEK

Le risorse Vertex AI attualmente coperte da CMEK sono le seguenti. Anche il supporto di CMEK per le funzionalità di anteprima è in stato di anteprima.

Risorsa Materiale criptato Link alla documentazione
Set di dati Tutti i dati importati dall'utente (ad esempio, contenuti di testo) per DataItems e Annotations.

Contenuti creati dall'utente come AnnotationSpecs, ColumnSpecs.
Creare un set di dati per l'addestramento di modelli di classificazione e regressione

Creare un set di dati per l'addestramento di modelli di previsione
Indice Tutti i file di dati utilizzati per gli indici di Vector Search archiviati in Cloud Storage, Pub/Sub e memoria interna. Index e IndexEndpoint devono essere creati con la stessa chiave.

Tutti gli indici all'interno di una raccolta devono essere creati con la stessa chiave.
Gestire gli indici in Vector Search :

Gestire gli indici in Vector Search 2
Raccolte Le raccolte vengono utilizzate per archiviare gli oggetti dati correlati. Gestire le raccolte in Vector Search 2
DataObjects Le raccolte archiviano i dati come singoli oggetti JSON chiamati oggetti dati. Gestire gli oggetti dati in Vector Search 2