Chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Vertex AI Workbench cripta i contenuti inattivi dei clienti. Vertex AI Workbench gestisce la crittografia per conto tuo 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 i servizi integrati con CMEK, tra cui Vertex AI Workbench. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i confini di crittografia. L'utilizzo di Cloud KMS ti consente inoltre di visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.

Dopo aver configurato le risorse con i CMEK, l'esperienza di accesso alle risorse di Vertex AI Workbench è 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 pagina descrive alcuni vantaggi e limitazioni specifici dell'utilizzo di CMEK con i notebook gestiti dall'utente e mostra come configurare una nuova istanza di notebook gestita dall'utente per l'utilizzo di CMEK.

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 tue chiavi in Cloud Key Management Service. Ad esempio, puoi ruotare o disattivare una chiave oppure impostare una pianificazione di rotazione utilizzando l'API Cloud KMS.

Quando esegui un'istanza di notebook gestita dall'utente, l'istanza viene eseguita su una macchina virtuale (VM) gestita da Vertex AI Workbench. Quando attivi la chiave CMEK per un'istanza di notebook gestita dall'utente, Vertex AI Workbench utilizza la chiave che hai designato, anziché una chiave gestita da Google, per criptare i dati sui dischi di avvio della VM.

La chiave CMEK non cripta i metadati, come il nome e la regione dell'istanza, associati all'istanza di notebook gestita dall'utente. I metadati associati alle istanze di notebook gestite dall'utente vengono sempre criptati utilizzando il meccanismo di crittografia predefinito di Google.

Limitazioni di CMEK

Per ridurre la latenza e per evitare i casi in cui le risorse dipendono da servizi distribuiti su più domini di errore, Google consiglia di proteggere le istanze di notebook gestite dall'utente regionali con chiavi nella stessa posizione.

  • Puoi criptare le istanze di notebook gestite dall'utente a livello regionale utilizzando chiavi nella stessa località o nella località globale. Ad esempio, puoi criptare i dati su un disco nella zona us-west1-a utilizzando una chiave in us-west1 o global.
  • Puoi criptare le istanze globali utilizzando chiavi in qualsiasi posizione.
  • La configurazione di CMEK per i notebook gestiti dall'utente non configura automaticamente CMEK per gli altri prodotti Google Cloud che utilizzi. Per utilizzare CMEK per criptare i dati in altri prodotti Google Cloud, devi completare una configurazione aggiuntiva.

Configurare CMEK per l'istanza di Notebook gestita dall'utente

Le sezioni seguenti descrivono come creare un portachiavi e una chiave in Cloud Key Management Service, concedere le autorizzazioni di crittografia e decrittografia dell'account di servizio per la chiave e creare un'istanza di Notebook gestita dall'utente che utilizza CMEK.

Prima di iniziare

Ti consigliamo di utilizzare una configurazione che supporti una separazione dei compiti. Per configurare CMEK per i notebook gestiti dall'utente, puoi utilizzare due progetti Google Cloud distinti:

  • Un progetto Cloud KMS: un progetto per la gestione della chiave di crittografia
  • Un progetto di notebook gestiti dall'utente: un progetto per accedere alle istanze di notebook gestite dall'utente e interagire con qualsiasi altro prodotto Google Cloud di cui hai bisogno per il tuo caso d'uso

In alternativa, puoi utilizzare un singolo progetto Google Cloud. A tal fine, utilizza lo stesso progetto per tutte le attività che seguono.

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

Configurare il progetto di blocchi note gestiti dall'utente

  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 Notebooks 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 Notebooks API.

    Enable the API

Configurare Google Cloud CLI

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

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

Creare una chiave automatizzata e una chiave

Quando crei un ciondolo e una chiave, tieni presente i seguenti requisiti:

  • Quando scegli la posizione del portachiavi, utilizza global o la posizione in cui si troverà l'istanza dei blocchi note gestiti dall'utente.

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

Per creare un mazzo di chiavi e una chiave, consulta Creare chiavi di crittografia simmetriche.

Concedi le autorizzazioni per i blocchi note gestiti dall'utente

Per utilizzare CMEK per l'istanza di notebook gestita dall'utente, devi concedere all'istanza di notebook gestita dall'utente l'autorizzazione per criptare e decriptare i dati utilizzando la tua chiave.

Determina l'account di servizio da utilizzare

I notebook gestiti dall'utente utilizzano un account di servizio per eseguire l'istanza di notebook gestita dall'utente. Questo account di servizio è l'account di servizio Compute Engine predefinito o un account di servizio specificato al momento della creazione dell'istanza.

Se l'account di servizio è quello predefinito di Compute Engine, completa i seguenti passaggi per trovare l'indirizzo email dell'account di servizio:

  1. Nella console Google Cloud, vai alla pagina IAM.

    Vai a IAM

  2. Trova l'entità con il nome Compute Engine default service account.

    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.

Concedi l'autorizzazione all'account di servizio

Concedi l'autorizzazione utilizzando la console Google Cloud o l'interfaccia a Google Cloud CLI.

Console

  1. Nella console Google Cloud, vai alla pagina Gestione delle chiavi.

    Vai a Gestione chiavi

  2. Seleziona il tuo progetto Cloud KMS.

  3. Fai clic sul nome del keyring che hai creato in Creare chiavi automatizzate e una chiave. Viene visualizzata la pagina Dettagli chiave automatizzata.

  4. Seleziona la casella di controllo della chiave che hai creato in Creare chiavi automatizzate e una chiave. Se un riquadro informazioni etichettato con il nome della chiave non è già aperto, fai clic su Mostra riquadro informazioni.

  5. Nel riquadro delle informazioni, fai clic su  Aggiungi membro. Viene visualizzata la finestra di dialogo Aggiungi membri a "KEY_NAME". In questa finestra di dialogo, procedi nel seguente modo:

    1. Nel campo Nuovi membri, inserisci l'indirizzo email dell'account di servizio per la tua istanza.

    2. Nell'elenco 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_ACCOUNT \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Sostituisci quanto segue:

  • KEY_NAME: il nome della chiave che hai creato in Creare un portachiavi e una chiave
  • KEY_RING_NAME: il keyring che hai creato in Creare un keyring e una chiave
  • REGION: la regione in cui hai creato l'anello di chiavi
  • KMS_PROJECT_ID: l'ID del tuo progetto Cloud KMS
  • SERVICE_ACCOUNT: l'indirizzo email dell'account di servizio per la tua istanza

Creare un'istanza di notebook gestiti dall'utente con CMEK

Dopo aver concesso all'istanza di Notebook gestita dall'utente l'autorizzazione per criptare e decriptare i dati utilizzando la tua chiave, puoi creare un'istanza di Notebook gestita dall'utente che cripta i dati utilizzando questa chiave.

I seguenti esempi mostrano come criptare e decriptare i dati utilizzando la chiave tramite la console Google Cloud o gcloud CLI.

Console

Per creare un'istanza di blocchi note gestita dall'utente con una chiave di crittografia gestita dal cliente:

  1. Nella console Google Cloud, vai alla pagina Notebook gestiti dall'utente. In alternativa, vai all'indirizzo notebook.new (https://notebook.new) e salta il passaggio successivo.

    Vai a Blocchi note gestiti dall'utente

  2. Fai clic su  Nuovo blocco note, quindi seleziona Personalizza.

  3. Nella pagina Crea un blocco note gestito dall'utente, nella sezione Dettagli, fornisci le seguenti informazioni per la nuova istanza:

    • Nome: un nome per la nuova istanza
    • Regione: la regione in cui si trovano la chiave e il mazzo di chiavi
    • Zona: una zona all'interno della regione selezionata
  4. Seleziona la sezione Dischi.

  5. Per utilizzare le chiavi di crittografia gestite dal cliente, in Crittografia, seleziona Chiave di crittografia gestita dal cliente (CMEK).

  6. Fai clic su Seleziona una chiave gestita dal cliente.

    • Se la chiave gestita dal cliente che vuoi utilizzare è nell'elenco, selezionatela.
    • Se la chiave gestita dal cliente che vuoi utilizzare non è nell'elenco, inserisci l'ID risorsa della chiave gestita dal cliente. L'ID risorsa per la chiave gestita dal cliente è simile al seguente:

      projects/NOTEBOOKS_PROJECT_NUMBER/locations/global/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

      Sostituisci quanto segue:

  7. Completa la parte rimanente della finestra di dialogo di creazione dell'istanza e poi fai clic su Crea.

  8. Vertex AI Workbench crea un'istanza di notebook gestita dall'utente in base alle proprietà specificate e la avvia automaticamente. Quando l'istanza è pronta per l'uso, Vertex AI Workbench attiva un link Apri JupyterLab.

gcloud

Per utilizzare gcloud CLI per creare un'istanza di Jupyter Notebook gestita dall'utente con una chiave di crittografia gestita dal cliente, esegui il seguente comando. Questo esempio presuppone che tu voglia creare un'istanza di blocchi note gestita dall'utente con un tipo di macchina n1-standard-1 e un disco di avvio permanente standard da 100 GB.

gcloud notebooks instances create notebook-vm-cmek \
    --location=REGION \
    --vm-image-family=IMAGE_FAMILY \
    --vm-image-project=deeplearning-platform-release \
    --machine-type="n1-standard-1" \
    --boot-disk-type="PD_STANDARD" \
    --boot-disk-size=100 \
    --kms-key=KEY_NAME \
    --kms-project=KMS_PROJECT_ID \
    --kms-location=REGION \
    --kms-keyring=KEY_RING_NAME \
    --disk-encryption=CMEK \
    --metadata='proxy-mode=project_editors'

Sostituisci quanto segue:

  • REGION: la regione in cui hai creato il portachiavi e in cui prevedi di creare l'istanza dei blocchi note gestiti dall'utente
  • IMAGE_FAMILY: la famiglia di immagini che vuoi utilizzare per creare l'istanza di notebook gestita dall'utente
  • KEY_NAME: il nome della chiave che hai creato in Creare un keyring e una chiave
  • KMS_PROJECT_ID: l'ID del tuo progetto Cloud KMS
  • KEY_RING_NAME: il mazzo di chiavi che hai creato in Creare un mazzo di chiavi e una chiave

Passaggi successivi