Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Vertex AI cripta i contenuti inattivi dei clienti. Vertex AI gestisce la crittografia per tuo conto senza che tu debba fare altro. Questa opzione è denominata Crittografia predefinita di Google.

Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con servizi integrati con CMEK, tra cui Vertex AI. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS consente anche di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.

Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse Vertex AI è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Questa guida descrive alcuni vantaggi dell'utilizzo di CMEK per le risorse Vertex AI e illustra come configurare un job di addestramento per utilizzare CMEK.

Per saperne di più su come utilizzare CMEK per Colab Enterprise, consulta la pagina CMEK di Colab Enterprise. Per ulteriori informazioni su come utilizzare CMEK per le istanze Vertex AI Workbench, consulta la pagina CMEK delle istanze Vertex AI Workbench.

CMEK per le risorse Vertex AI

Le sezioni seguenti descrivono le informazioni di base su CMEK per le risorse Vertex AI che devi comprendere prima di configurare CMEK per i tuoi job.

Vantaggi di CMEK

In generale, CMEK è più utile se hai bisogno del controllo completo sulle chiavi utilizzate per criptare i tuoi dati. Con CMEK, puoi gestire le chiavi in Cloud KMS. Ad esempio, puoi ruotare o disattivare una chiave oppure configurare una pianificazione di rotazione utilizzando l'API Cloud KMS. Per ulteriori informazioni su CMEK in generale, incluso quando e perché abilitarla, consulta la documentazione di Cloud KMS.

Quando esegui un job di AutoML, il codice viene eseguito su una o più istanze di macchine virtuali (VM) gestite da Vertex AI. Quando abiliti CMEK per le risorse Vertex AI, la chiave che designi, anziché una chiave gestita da Google, viene utilizzata per criptare i dati sui dischi di avvio di queste VM. La chiave CMEK cripta i seguenti tipi di dati:

  • La copia del codice sulle VM.
  • Tutti i dati caricati dal tuo codice.
  • Qualsiasi dato temporaneo salvato sul disco locale dal tuo codice.
  • Modelli addestrati con AutoML.
  • File multimediali (dati) caricati nei set di dati multimediali.

In generale, la chiave CMEK non cripta i metadati associati alla tua operazione, come il nome e la regione del job o il nome visualizzato di un set di dati. I metadati associati alle operazioni sono sempre criptati utilizzando il meccanismo di crittografia predefinito di Google.

Per i set di dati, quando un utente importa dati in un set di dati, gli elementi di dati e le annotazioni vengono criptati con CMEK. Il nome visualizzato del set di dati non è criptato con CMEK.

Per i modelli, i modelli archiviati nel sistema di archiviazione (ad esempio, il disco) sono criptati con CMEK. Tutti i risultati della valutazione del modello sono criptati con CMEK.

Per gli endpoint, tutti i file del modello utilizzati per il deployment del modello nell'endpoint sono criptati con CMEK. Non sono inclusi i dati in memoria.

Per la previsione batch, tutti i file temporanei (come file di modelli, log, dischi VM) utilizzati per eseguire il job di previsione batch sono criptati con CMEK. I risultati della previsione batch vengono memorizzati nella destinazione fornita dall'utente. Di conseguenza, Vertex AI rispetta il valore predefinito della configurazione di crittografia della destinazione. In caso contrario, i risultati verranno criptati anche con CMEK.

Per l'etichettatura dei dati, tutti i file di input (immagine, testo, video, tabellare), la discussione temporanea (ad esempio domande, feedback) e l'output (risultato dell'etichettatura) sono criptati con CMEK. I nomi visualizzati delle specifiche di annotazione non sono criptati con CMEK.

Chiavi esterne

Puoi utilizzare Cloud External Key Manager (Cloud EKM) per creare chiavi esterne, che gestisci, per criptare i dati in Google Cloud.

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente. Se richiedi l'accesso a una risorsa criptata con una chiave gestita esternamente e la chiave non è disponibile, Vertex AI rifiuterà la richiesta. Potrebbe verificarsi un ritardo massimo di 10 minuti prima di poter accedere alla risorsa una volta che la chiave diventa disponibile.

Per ulteriori considerazioni sull'utilizzo di chiavi esterne, consulta Cloud External Key Manager.

Utilizzare CMEK con altri prodotti Google Cloud

La configurazione di CMEK per le risorse Vertex AI non configura automaticamente CMEK per altri prodotti Google Cloud che utilizzi insieme a Vertex AI. Per utilizzare CMEK per criptare i dati in altri prodottiGoogle Cloud , è necessaria una configurazione aggiuntiva. Ad esempio:

Risorse attuali supportate da CMEK

Le risorse Vertex AI attuali coperte da CMEK sono le seguenti. Il supporto di CMEK per le funzionalità in anteprima è anch'esso in stato di anteprima.

Risorsa Materiale criptato Link alla documentazione
Set di dati
  • Tutti i dati importati dall'utente (ad esempio contenuti di testo o video) per DataItems e Annotations.
  • Contenuti creati dall'utente, ad esempio AnnotationSpecs, ColumnSpecs.
Modello
  • File del modello caricati.
  • Risultati della valutazione del modello addestrato.
Endpoint
  • Tutti i file del modello utilizzati per il deployment del modello nell'endpoint. Questi dati non includono i dati in memoria, ma il modello verrà annullato automaticamente se la chiave è disabilitata.
CustomJob
  • La copia del codice sulle VM utilizzate per eseguire l'operazione.
  • Tutti i dati caricati dal tuo codice.
  • Qualsiasi dato temporaneo salvato sul disco locale dal tuo codice.
HyperparameterTuningJob
  • La copia del codice sulle VM utilizzate per eseguire l'operazione.
  • Tutti i dati caricati dal tuo codice.
  • Qualsiasi dato temporaneo salvato sul disco locale dal tuo codice.
TrainingPipeline
  • La copia del codice sulle VM utilizzate per eseguire l'operazione.
  • Tutti i dati caricati dal tuo codice.
  • Qualsiasi dato temporaneo salvato sul disco locale dal tuo codice.
  • Modelli addestrati con AutoML.
BatchPredictionJob (esclude batchPrediction di immagini AutoML)
  • Tutti i file temporanei (ad esempio file di modelli, log, dischi VM) utilizzati nel job per procedere con il job di previsione batch.
  • Se i risultati scritti di BatchPrediction vengono archiviati nella destinazione fornita dall'utente, verrà rispettata la configurazione di crittografia del valore predefinito. In caso contrario, verrà criptato anche con CMEK.
ModelDeploymentMonitoringJob
  • Tutti i file temporanei (ad esempio, file del set di dati di addestramento, log, dischi VM) utilizzati nel job per elaborare il job di monitoraggio del deployment del modello.
  • Qualsiasi dato utilizzato per il monitoraggio del rilevamento delle anomalie.
  • Se la chiave è disattivata, il job di monitoraggio del deployment del modello verrà messo in pausa.
PipelineJob
  • Il job della pipeline e tutte le relative risorse secondarie.
MetadataStore
  • Tutti i contenuti dell'archivio dei metadati.
TensorBoard
  • Tutti i dati dei log di TensorBoard caricati, inclusi scalari, istogrammi, definizioni di grafici, immagini e testo.
Feature Store
  • L'archivio di caratteristiche e tutti i contenuti al suo interno.
Indice
  • Tutti i file di dati utilizzati per gli indici di Vector Search archiviati in Cloud Storage, Pub/Sub e spazio di archiviazione interno. Index e IndexEndpoint devono essere creati con la stessa chiave.
IndexEndpoint
  • Tutti i file di dati utilizzati per gli indici di Vector Search archiviati in Cloud Storage, Pub/Sub e spazio di archiviazione interno. Index e IndexEndpoint devono essere creati con la stessa chiave.
Runtime di Colab Enterprise
  • Il disco di avvio e i dischi dati della VM del runtime
Notebook Colab Enterprise
  • Il file del notebook e i relativi commenti

Supporto di CMEK per le pipeline di ottimizzazione dell'IA generativa

Il supporto di CMEK è fornito nella pipeline di ottimizzazione dei seguenti modelli:

  • BERT
  • T5
  • image-generation (GPU)

Limitazioni

Il supporto CMEK non è fornito nei seguenti casi:

  • Previsione batch del modello di immagini AutoML (BatchPredictionJob)
  • Ottimizzazione TPU
  • Memorizzazione nella cache del contesto di Vertex AI

Configura CMEK per le tue risorse

Le sezioni seguenti descrivono come creare un keyring e una chiave in Cloud Key Management Service, come concedere le autorizzazioni di crittografia e decrittografia di Vertex AI per la chiave e come creare risorse che utilizzano CMEK.

Prima di iniziare

Questa guida presuppone che tu utilizzi due progetti Google Cloud separati per configurare CMEK per i dati di Vertex AI:

  • Un progetto per la gestione della chiave di crittografia (denominato "progetto Cloud KMS").
  • Un progetto per accedere ai dati o all'output di Vertex AI in Cloud Storage e interagire con altri prodotti Google Cloud necessari per il tuo caso d'uso (denominato "progetto AI Platform").

Questa configurazione consigliata supporta una separazione dei compiti.

In alternativa, puoi utilizzare un unico Google Cloud progetto per l'intera guida. Per farlo, utilizza lo stesso progetto per tutte le seguenti attività che fanno riferimento al progetto Cloud KMS e per le attività che fanno riferimento al progetto AI Platform.

Configura il progetto Cloud KMS

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API.

    Enable the API

  8. Configura il progetto AI Platform

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Vertex AI API.

      Enable the API

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    6. Make sure that billing is enabled for your Google Cloud project.

    7. Enable the Vertex AI API.

      Enable the API

    8. Configura Google Cloud CLI

      gcloud CLI è obbligatoria per alcuni passaggi di questa guida e facoltativa per altri.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Crea una chiave automatizzata e una chiave

      Segui la guida di Cloud KMS per creare chiavi simmetriche per creare un keyring e una chiave. Quando crei il keyring, specifica una regione che supporta le operazioni di Vertex AI come posizione del keyring. Vertex AI Training supporta solo CMEK quando la risorsa e la chiave utilizzano la stessa regione. Non devi specificare una località multiregionale, globale o in due regioni per il portachiavi.

      Assicurati di creare il keyring e la chiave nel progetto Cloud KMS.

      Concedere le autorizzazioni Vertex AI

      Per utilizzare CMEK per le tue risorse, devi concedere a Vertex AI l'autorizzazione per criptare e decriptare i dati utilizzando la tua chiave. Vertex AI utilizza un agente di servizio gestito da Google per eseguire operazioni utilizzando le tue risorse. Questo account di servizio è identificato da un indirizzo email con il seguente formato:

      service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
      

      Per trovare il account di servizio appropriato per il tuo progetto AI Platform, vai alla pagina IAM nella console Google Cloud e trova il membro che corrisponde a questo formato di indirizzo email, con il numero di progetto per il tuo progetto AI Platform che sostituisce la variabile AI_PLATFORM_PROJECT_NUMBER. Il account di servizio ha anche il nome Vertex AI Service Agent.

      Vai alla pagina IAM

      Prendi nota dell'indirizzo email di questo account di servizio e utilizzalo nei passaggi successivi per concedergli l'autorizzazione a criptare e decriptare i dati utilizzando la tua chiave. Puoi concedere l'autorizzazione utilizzando la console Google Cloud o Google Cloud CLI:

      Google Cloud console

      1. Nella console Google Cloud , fai clic su Sicurezza e seleziona Gestione chiavi. Si aprirà la pagina Chiavi di crittografia e verrà selezionato il tuo progetto Cloud KMS.

        Vai alla pagina Chiavi crittografiche

      2. Fai clic sul nome del keyring che hai creato in una sezione precedente di questa guida per andare alla pagina Dettagli del keyring.

      3. Seleziona la casella di controllo relativa alla chiave che hai creato in una sezione precedente di questa guida. Se un riquadro informazioni con il nome della chiave non è già aperto, fai clic su Mostra riquadro informazioni.

      4. Nel riquadro informazioni, fai clic su Aggiungi membro per aprire la finestra di dialogo Aggiungi membri a "KEY_NAME". In questa finestra di dialogo, procedi nel seguente modo:

        1. Nella casella Nuovi membri, inserisci l'indirizzo email dell'account di servizio che hai annotato nella sezione precedente: service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
        2. Nell'elenco a discesa Seleziona un ruolo, fai clic su Cloud KMS e poi seleziona il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS.

        3. Fai clic su Salva.

      gcloud

      Esegui questo comando:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring=KEY_RING_NAME \
        --location=REGION \
        --project=KMS_PROJECT_ID \
        --member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      In questo comando, sostituisci i seguenti segnaposto:

      • KEY_NAME: il nome della chiave che hai creato in una sezione precedente di questa guida.
      • KEY_RING_NAME: il portachiavi che hai creato in una sezione precedente di questa guida.
      • REGION: La regione in cui hai creato il portachiavi.
      • KMS_PROJECT_ID: l'ID del tuo progetto Cloud KMS.
      • AI_PLATFORM_PROJECT_NUMBER: il numero di progetto del tuo progetto AI Platform, che hai annotato nella sezione precedente come parte di un indirizzo email dell'account di servizio.

      Crea risorse con la chiave KMS

      Quando crei una nuova risorsa supportata da CMEK, puoi specificare la tua chiave come uno dei parametri di creazione.

      Console

      Quando crei una nuova risorsa supportata da CMEK nella sezione Vertex AI della consoleGoogle Cloud , puoi selezionare la chiave nella sezione delle opzioni generali o avanzate:

      Seleziona la chiave di crittografia per la sezione delle risorse

      REST e riga di comando

      Quando crei una risorsa supportata, aggiungi un oggetto encryptionSpec alla tua richiesta e imposta il campo encryptionSpec.kmsKeyName in modo che punti alla risorsa chiave.

      Ad esempio, quando crei una risorsa dataset, devi specificare la chiave nel corpo della richiesta:

       {
         "displayName": DATASET_NAME,
         "metadataSchemaUri": METADATA_URI,
         "encryptionSpec": {
           "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
         }
       }
      

      Java

      Quando crei una risorsa supportata, imposta EncryptionSpec in modo che punti alla risorsa chiave. Per ulteriori informazioni, consulta la documentazione della libreria client Vertex AI per Java.

      Node.js

      Quando crei una risorsa supportata, imposta il parametro encryptionSpec in modo che punti alla risorsa delle chiavi. Per ulteriori informazioni, consulta la documentazione della libreria client Vertex AI per Node.js.

      Python

      Quando crei una risorsa supportata, imposta il parametro encryption_spec in modo che punti alla risorsa delle chiavi. Per ulteriori informazioni, consulta la documentazione del client Python per Cloud AI Platform.

      Passaggi successivi