Chiavi di crittografia gestite dal cliente (CMEK)

Per impostazione predefinita, Google Cloud cripta automaticamente i dati quando sono inattivi utilizzando chiavi di crittografia gestite da Google. Se hai requisiti normativi o di conformità specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per le tue risorse.

Puoi scoprire di più sui vantaggi specifici dell'utilizzo di CMEK con le risorse Vertex AI nella sezione seguente di questa guida. Per ulteriori informazioni su CMEK in generale, inclusi quando e perché abilitarla, consulta la documentazione di Cloud Key Management Service.

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 maggiori informazioni su come utilizzare CMEK per Colab Enterprise, visita la pagina CMEK di Colab Enterprise.

Risorse CMEK per 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 è utile se hai bisogno del controllo completo sulle chiavi utilizzate per criptare i dati. Con CMEK, puoi gestire le tue chiavi all'interno di Cloud KMS. Ad esempio, puoi ruotare o disabilitare una chiave oppure impostare 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 AutoML o addestramento personalizzato, 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, per criptare i dati sui dischi di avvio di queste VM viene utilizzata la chiave che designi, anziché una chiave gestita da Google. La chiave CMEK cripta i seguenti tipi di dati:

  • La copia del tuo codice sulle VM.
  • Tutti i dati che vengono caricati dal tuo codice.
  • Eventuali dati temporanei che vengono salvati sul disco locale dal codice.
  • addestrati con AutoML.
  • File multimediali (dati) caricati in set di dati multimediali.

In generale, la chiave CMEK non cripta i metadati associati all'operazione, ad esempio 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 i dati nel set di dati, gli elementi 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 di 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 (ad esempio file di modello, log, dischi VM) utilizzati per eseguire il job di previsione batch sono criptati con CMEK. I risultati delle previsioni batch vengono archiviati nella destinazione fornita dall'utente. Di conseguenza, Vertex AI rispetta il valore predefinito della configurazione di crittografia della destinazione. In caso contrario, anche i risultati verranno criptati con CMEK.

Per l'etichettatura dei dati, tutti i file di input (immagine, testo, video, tabulari), le discussioni temporanee (ad esempio domande, feedback) e gli 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 dall'esterno e la chiave non è disponibile, Vertex AI rifiuta la richiesta. Potrebbe verificarsi un ritardo fino a 10 minuti prima di poter accedere alla risorsa quando la chiave diventa disponibile.

Per ulteriori considerazioni sull'uso 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 prodotti Google Cloud, è necessaria un'ulteriore configurazione. Ad esempio:

Risorse attuali supportate da CMEK

Di seguito sono riportate le risorse Vertex AI attuali coperte da CMEK. Il supporto CMEK per le funzionalità in anteprima è anche in stato 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 di modello caricati.
  • Risultati della valutazione del modello addestrato.
Endpoint
  • Tutti i file del modello utilizzati per il deployment del modello nell'endpoint. Non sono inclusi i dati in memoria, ma il deployment del modello verrà annullato automaticamente se la chiave è disabilitata.
CustomJob (escluse le risorse che utilizzano una VM TPU)
  • La copia del tuo codice sulle VM utilizzate per eseguire l'operazione.
  • Tutti i dati che vengono caricati dal tuo codice.
  • Eventuali dati temporanei che vengono salvati sul disco locale dal codice.
HyperparameterTuningJob (esclude le risorse che utilizzano una VM TPU)
  • La copia del tuo codice sulle VM utilizzate per eseguire l'operazione.
  • Tutti i dati che vengono caricati dal tuo codice.
  • Eventuali dati temporanei che vengono salvati sul disco locale dal codice.
TrainingPipeline (esclude le risorse che utilizzano una VM TPU)
  • La copia del tuo codice sulle VM utilizzate per eseguire l'operazione.
  • Tutti i dati che vengono caricati dal tuo codice.
  • Eventuali dati temporanei che vengono salvati sul disco locale dal codice.
  • addestrati con AutoML.
BatchPredictionJob (esclude immagini AutoML batchPrediction)
  • Eventuali file temporanei (ad esempio file di modello, 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, rispetteranno la configurazione di crittografia del suo valore predefinito. In caso contrario, verrà criptato anche con CMEK.
ModelDeploymentMonitoringJob
  • Eventuali file temporanei (ad esempio file di 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 rilevamento delle anomalie di monitoraggio.
  • Se la chiave è disabilitata, 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 presenti nell'archivio dei metadati.
TensorBoard
  • Tutti i dati dai log di TensorBoard caricati, tra cui scalari, istogrammi, definizioni del grafico, immagini e testo.
Archivio di caratteristiche
  • L'archivio di caratteristiche e tutti i contenuti nell'archivio di caratteristiche.
Runtime Colab Enterprise
  • Il disco di avvio e i dischi dati della VM del runtime

Supporto CMEK per pipeline di ottimizzazione di IA generativa

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

  • text-bison for PaLM 2 (GPU)
  • BERT
  • T5
  • image-generation (GPU)

Limitazioni

Il supporto CMEK non è fornito in:

  • Previsione batch per il modello di immagini AutoML (BatchPredictionJob)
  • Ottimizzazione TPU

Configura CMEK per le tue risorse

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

Prima di iniziare

Questa guida presuppone l'utilizzo di due progetti Google Cloud separati per configurare i dati di CMEK per 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 qualsiasi altro prodotto Google Cloud necessario per il tuo caso d'uso (denominato "progetto AI Platform").

Questa configurazione consigliata supporta una separazione dei compiti.

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

configura il progetto Cloud KMS

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva l'API Cloud KMS.

    Abilita l'API

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

    Go to project selector

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva l'API Cloud KMS.

    Abilita l'API

Configura il progetto AI Platform

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva Vertex AI API.

    Abilita l'API

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

    Go to project selector

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva Vertex AI API.

    Abilita l'API

Configura Google Cloud CLI

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

Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

gcloud init

Crea un keyring e una chiave

Segui la guida di Cloud KMS alla creazione di chiavi simmetriche per creare un keyring e una chiave. Quando crei il keyring, specifica una regione che supporta le operazioni di Vertex AI come località del keyring. L'addestramento Vertex AI supporta CMEK solo quando la risorsa e la chiave utilizzano la stessa regione. Non devi specificare una località doppia, multiregionale o globale per il keyring.

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

Concedi le autorizzazioni a 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 le operazioni utilizzando le tue risorse. Questo account di servizio è identificato da un indirizzo email nel seguente formato:

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

Per trovare l'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. Anche l'account di servizio ha il nome Vertex AI Service Agent.

Vai alla pagina IAM

Prendi nota dell'indirizzo email di questo account di servizio e utilizzalo nei passaggi seguenti 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:

Console Google Cloud

  1. Nella console Google Cloud, fai clic su Sicurezza e seleziona Gestione delle chiavi. Verrà visualizzata la pagina Chiavi di crittografia e seleziona il progetto Cloud KMS.

    Vai alla pagina Chiavi di crittografia

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

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

  4. Nel riquadro informativo, 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 di cui hai preso nota 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, quindi 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 keyring che hai creato in una sezione precedente di questa guida.
  • REGION: la regione in cui hai creato il keyring.
  • KMS_PROJECT_ID: l'ID del tuo progetto Cloud KMS.
  • AI_PLATFORM_PROJECT_NUMBER: il numero del progetto AI Platform, che hai annotato nella sezione precedente come parte dell'indirizzo email di un account di servizio.

Crea risorse con la chiave KMS

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

Console

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

Seleziona la chiave di crittografia per la sezione delle risorse

Linea REST e CMD

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

Ad esempio, durante la creazione di 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 di Vertex AI per Java.

Node.js

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

Python

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

Passaggi successivi