Configurare le chiavi di crittografia gestite dal cliente (CMEK) per le sandbox

Cripta i dati at-rest di una sandbox con una chiave di Cloud Key Management Service di tua proprietà e sotto il tuo controllo.

Panoramica

Per impostazione predefinita, Cloud de Confiance by S3NS cripta i dati at-rest con Google Cloud-powered encryption keys. Le chiavi di crittografia gestite dal cliente (CMEK) ti consentono di creare e gestire una chiave di crittografia di Cloud Key Management Service in modo da poter controllare il suo utilizzo, ruotarla e disattivarla o eliminarla per rendere illeggibili i dati protetti.

La sandbox di Gemini Enterprise Agent Platform esegue il codice, il browser o il container personalizzato dell'agente in un ambiente isolato. Questo ambiente scrive i contenuti dei clienti su disco e può essere sottoposto a checkpoint per gli snapshot, che CMEK protegge quando lo abiliti nell'istanza principale di Gemini Enterprise Agent Platform della sandbox.

Puoi configurare CMEK per le sandbox di Gemini Enterprise Agent Platform solo quando crei l'istanza di Gemini Enterprise Agent Platform. La chiave CMEK protegge l'istanza di Gemini Enterprise Agent Platform e le relative risorse secondarie, inclusi gli ambienti sandbox, i modelli e gli snapshot.

Cosa cripta CMEK per la sandbox

L'abilitazione di CMEK nell'istanza principale di Gemini Enterprise Agent Platform cripta le superfici at-rest della sandbox con la tua chiave:

  • Disco di avvio del nodo GKE / file system root: file scritti dalla sessione in fase di runtime e stato in memoria paginato su disco (CMEK del disco di avvio del nodo).
  • Bucket Cloud Storage degli snapshot: checkpoint del disco e della memoria di una sandbox (snapshot) (crittografia predefinita del bucket).

I metadati delle risorse (nomi, etichette, stato, informazioni di connessione), le variabili di ambiente e le email degli account di servizio non vengono criptati con la chiave CMEK.

Per criptare le immagini container personalizzate , imposta CMEK nel tuo repository Artifact Registry.

Limitazioni e considerazioni

  • Per CMEK su Gemini Enterprise Agent Platform sono supportate solo le chiavi a singola regione. Le chiavi multiregionali, a due regioni e globali non sono supportate.
  • La chiave è immutabile quando crei l'istanza di Gemini Enterprise Agent Platform. Per utilizzare una chiave diversa, devi creare una nuova istanza di Gemini Enterprise Agent Platform. La rotazione alle nuove versioni della stessa chiave è supportata e applicata automaticamente.
  • Se disattivi o elimini la versione della chiave oppure revochi il ruolo Autore crittografia/decrittografia, le sandbox non possono essere sottoposte a provisioning o ripristinate e le scritture degli snapshot non vanno a buon fine. Ripristina l'accesso alla chiave per recuperare le risorse della sandbox.

Prima di iniziare

  • Crea o disponi di un keyring e di una chiave di Cloud Key Management Service key ring and key. Come best practice, conserva le chiavi in un progetto separato dai carichi di lavoro di Gemini Enterprise Agent Platform, gestito da un amministratore diverso.
  • Verifica di disporre dei ruoli per creare e gestire le chiavi (roles/cloudkms.admin) e per creare l'istanza di Gemini Enterprise Agent Platform.
  • Crea un agente di servizio di Agent Runtime, se non l'hai già fatto:

    # Create the service agent if needed
    gcloud beta services identity create \
        --service=aiplatform.googleapis.com \
        --project=PROJECT_ID
    

Crea una chiave di Cloud Key Management Service

Crea una chiave a singola regione nella stessa regione dell'istanza di Gemini Enterprise Agent Platform:

# Key ring (once per region)
gcloud kms keyrings create sandbox-keyring \
    --location=REGION

# Key
gcloud kms keys create sandbox-key \
    --location=REGION \
    --keyring=sandbox-keyring \
    --purpose=encryption

Sostituisci quanto segue:

  • REGION: la Cloud de Confiance regione dell'istanza di Gemini Enterprise Agent Platform (ad esempio us-central1).

Concedi all'agente di servizio di Agent Platform l'accesso alla chiave

Concedi all'agente di servizio di Agent Runtime il ruolo Autore crittografia/decrittografia CryptoKey Cloud Key Management Service (roles/cloudkms.cryptoKeyEncrypterDecrypter) sulla chiave:

# Grant Encrypter/Decrypter on the key
gcloud kms keys add-iam-policy-binding sandbox-key \
    --location=REGION \
    --keyring=sandbox-keyring \
    --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-aiplatform-re.s3ns-system.iam.gserviceaccount.com" \
    --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"

Sostituisci quanto segue:

  • PROJECT_NUMBER: iltuo Cloud de Confiance by S3NS numero di progetto.

Abilita CMEK nell'istanza di Agent Platform

Imposta encryption_spec.kms_key_name quando crei l'istanza di Gemini Enterprise Agent Platform. Ogni modello sandbox e sandbox che crei al suo interno eredita questa chiave.

SDK Python

import vertexai

client = vertexai.Client(project="PROJECT_ID", location="REGION",
                        http_options={"api_version": "v1beta1"})
agent_instance = client.agent_engines.create(
    config={
        "encryption_spec": {
            "kms_key_name":
                "projects/PROJECT_ID/locations/REGION/keyRings/sandbox-keyring/cryptoKeys/sandbox-key"
        }
    },
)

REST

Utilizzando l'API REST, imposta lo stesso valore in reasoningEngines.encryptionSpec.kmsKeyName al momento della creazione:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/reasoningEngines \
  -d '{
    "display_name": "cmek-protected-engine",
    "encryption_spec": {
      "kms_key_name": "projects/PROJECT_ID/locations/REGION/keyRings/sandbox-keyring/cryptoKeys/sandbox-key"
    }
  }'

Crea una sandbox e verifica la configurazione di CMEK

  1. Crea il modello sandbox e la sandbox nell'istanza di Gemini Enterprise Agent Platform protetta da CMEK.
  2. Verifica che l'istanza di Gemini Enterprise Agent Platform riporti la chiave in encryption_spec.kms_key_name recuperando i dettagli dell'istanza.
  3. (Facoltativo) Controlla i log di audit di Cloud Key Management Service per verificare che le operazioni di crittografia e decrittografia vengano eseguite all'avvio delle sandbox e alla scrittura degli snapshot.

Passaggi successivi