Criptare le risorse della workstation utilizzando CMEK

Per impostazione predefinita, Cloud Workstations utilizza una chiave di proprietà e gestita da Google per criptare le risorse della workstation, come VM e dischi permanenti, quando i dati sono inattivi. Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) con Cloud Key Management Service (Cloud KMS).

Per ulteriori informazioni su CMEK in generale, incluso quando e perché attivarla, consulta la documentazione di Cloud KMS.

Prima di iniziare

Creare i progetti

  1. Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea due progetti Google Cloud:

    • Un progetto chiave contiene le risorse Cloud KMS, tra cui un mazzo di chiavi e una chiave di crittografia simmetrica.

    • Un progetto di stazioni di lavoro contiene stazioni di lavoro criptate con una chiave CMEK.

    Puoi utilizzare lo stesso progetto per il progetto principale e per le stazioni di lavoro, ma come best practice ti consigliamo di utilizzare due progetti per la separazione delle responsabilità.

  2. Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è attivata per un progetto.

  3. Abilita le API richieste in ogni progetto.

  4. Assicurati di installare e inizializzare la gcloud CLI. Per inizializzare l'interfaccia a riga di comando gcloud, esegui il seguente comando:

    gcloud init
    

Ruoli obbligatori

Sebbene tu possa concedere i ruoli Amministratore Cloud KMS e Amministratore Cloud Workstations alla stessa persona, ti consigliamo di seguire il principio del privilegio minimo quando assegni i ruoli. Come best practice, concedi questi ruoli a due persone diverse e chiedi loro di coordinarsi, anziché chiedere all'amministratore di Cloud KMS di essere anche l'amministratore di Cloud Workstations. Per ulteriori informazioni, consulta le best practice per la sicurezza e su come utilizzare IAM in modo sicuro.

Per ottenere le autorizzazioni necessarie per configurare CMEK, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Se sei un amministratore Cloud KMS, chiedi all'amministratore di concederti il seguente ruolo per poter creare e gestire le risorse Cloud KMS: Amministratore Cloud KMS (roles/cloudkms.admin) nel tuo progetto principale.
  • Se sei un amministratore di Cloud Workstations, chiedi all'amministratore di concederti il seguente ruolo per poter creare e aggiornare le workstation: Amministratore di Cloud Workstations (roles/workstations.admin) nel tuo progetto di workstation.

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Creare un keyring e una chiave di crittografia

Nel progetto di chiavi, crea una chiave e salva l'ID risorsa della chiave:

  1. Crea o seleziona un keyring.

    Puoi condividere i mazzi di chiavi tra i servizi, ma come best practice ti consigliamo di utilizzare una chiave diversa per ogni risorsa protetta. Vedi separazione dei compiti.

  2. Crea una chiave di crittografia simmetrica.

    Assicurati di creare la chiave CMEK e la configurazione della workstation nella stessa regione.

  3. Ottieni l'ID risorsa della chiave e salvalo per un passaggio successivo.

Controllare le configurazioni delle workstation

Se non hai configurazioni della workstation disponibili nella console Google Cloud, chiedi all'amministratore di Cloud Workstations di creare per te una configurazione della workstation o assicurati di disporre di un ruolo IAM amministratore di Cloud Workstations nel progetto per poter creare autonomamente queste risorse.

Utilizzo delle chiavi di crittografia gestite dal cliente

Per utilizzare un CMEK in una configurazione della workstation, attivalo dalla console Google Cloud o dall'interfaccia a riga di comando gcloud.

Console

Concedi all'account di servizio Compute Engine e all'agente di servizio Compute Engine il ruolo Autore crittografia/decrittografia CryptoKey e il ruolo Visualizzatore Cloud KMS:

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

    Vai a Gestione chiavi

  2. Fai clic sul nome della chiave automatizzata che contiene la chiave.

  3. Seleziona la casella di controllo della chiave che vuoi utilizzare.

    La scheda Autorizzazioni viene visualizzata come riquadro.

  4. Nella finestra di dialogo Aggiungi membri, specifica l'indirizzo email dell'account di servizio Compute Engine e dell'agente di servizio Compute Engine a cui stai concedendo l'accesso.

  5. Nel menu a discesa Seleziona un ruolo, seleziona Autore crittografia/decrittografia CryptoKey Cloud KMS.

  6. Fai clic su Aggiungi un altro ruolo.

  7. Nel menu a discesa Seleziona un ruolo, seleziona Visualizzatore Cloud KMS.

  8. Fai clic su Salva.

Per attivare CMEK dalla console Google Cloud:

  1. Segui i passaggi per creare una configurazione della workstation.

  2. Quando specifichi la configurazione della macchina, cerca la sezione Opzioni avanzate.

  3. Fai clic su expand_more Espandi e seleziona Utilizza chiave di crittografia gestita dal cliente (CMEK).

    1. Nel campo Seleziona una chiave gestita dal cliente, seleziona la chiave di crittografia gestita dal cliente che hai creato nel tuo progetto chiavi.

      Se la chiave che hai creato non è presente nell'elenco, fai clic su Inserisci chiave manualmente per selezionare la chiave in base all'ID risorsa, quindi inserisci l'ID risorsa che hai annotato in precedenza.

    2. Nel campo Account di servizio, seleziona l'account di servizio utilizzato dalla chiave.

  4. Completa gli altri passaggi per creare la configurazione della workstation.

  5. Crea, avvia e lancia la configurazione della workstation per criptare i dischi permanenti del progetto con la chiave Cloud KMS specificata.

gcloud

L'esempio seguente concede un ruolo IAM che fornisce l'accesso a una chiave Cloud KMS e attiva CMEK specificandola nella configurazione della workstation:

  1. Concedi all'account di servizio KMS e all'agente di servizio Compute Engine per il progetto delle tue workstation il ruolo Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) di Cloud KMS sulla chiave CMEK. In questo modo, il servizio Compute Engine può creare risorse criptate nel progetto utilizzando la chiave CMEK specificata.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    
      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:service-WORKSTATIONS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave.
    • LOCATION: il nome della regione in cui hai creato l'anello di chiavi.
    • KEY_RING: il nome del tuo mazzo di chiavi.
    • WORKSTATIONS_PROJECT_NUMBER: l'identificatore numerico univoco generato automaticamente incluso come prima parte dell'account di servizio predefinito Compute Engine del progetto delle stazioni di lavoro.
    • KMS_PROJECT_ID: l'ID progetto, una stringa univoca utilizzata per distinguere il tuo progetto Cloud KMS da tutti gli altri in Google Cloud.

    Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help.

  2. Per recuperare l'account di servizio di gestione delle stazioni di lavoro per il progetto della stazione di lavoro, utilizza il seguente comando:

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    Sostituisci WORKSTATIONS_PROJECT_ID con l'ID progetto delle tue stazioni di lavoro.

  3. Concedi all'account di servizio di gestione delle workstation per il tuo progetto il ruolo visualizzatore Cloud KMS (roles/cloudkms.viewer) sulla chiave CMEK. In questo modo, il servizio della workstation può rilevare rotazione della chiave e criptare nuovamente le risorse in base alle esigenze del progetto.

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \
        --role roles/cloudkms.viewer \
        --project KMS_PROJECT_ID
    

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave.
    • LOCATION: il nome della regione in cui hai creato l'anello di chiavi.
    • KEY_RING: il nome del tuo mazzo di chiavi.
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: l'account di servizio di gestione delle workstation ottenuto dal passaggio precedente.
    • KMS_PROJECT_ID: l'ID progetto, una stringa univoca utilizzata per distinguere il progetto di chiavi Cloud KMS da tutti gli altri in Google Cloud.

    Per informazioni su tutti i flag e i possibili valori, esegui il comando con il flag --help.

  4. (Facoltativo) Se non hai ancora creato un cluster di workstation, creane uno utilizzando il comando gcloudclusters create.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_NUMBER
    

    Sostituisci quanto segue:

    • WORKSTATIONS_CLUSTER_NAME: il nome del cluster di workstation.
    • LOCATION: il nome della regione per il cluster di workstation.
    • WORKSTATIONS_PROJECT_NUMBER: l'identificatore numerico univoco generato automaticamente incluso come prima parte dell'account di servizio predefinito Compute Engine del progetto delle stazioni di lavoro
  5. Supponendo che tu abbia già creato un cluster, crea una configurazione della workstation con le impostazioni encryption_key.

    Per creare una configurazione della workstation con tipo di macchina e2-standard-2, timeout inattivo di 3600s e risorse della workstation criptate con CMEK, esegui il seguente comando gcloud CLI:

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --project=WORKSTATIONS_PROJECT_NUMBER
    

    Sostituisci quanto segue:

    • WORKSTATIONS_CONFIG_NAME: il nome della configurazione della workstation.
    • WORKSTATIONS_CLUSTER_NAME: il nome del cluster di workstation.
    • LOCATION: il nome della regione del cluster.
    • KMS_PROJECT_ID: l'ID progetto, una stringa univoca utilizzata per distinguere il tuo progetto da tutti gli altri in Google Cloud.
    • KEY_RING: il nome del tuo mazzo di chiavi.
    • KEY_NAME: il nome della chiave.
    • WORKSTATIONS_PROJECT_NUMBER: l'identificatore numerico univoco generato automaticamente incluso come prima parte dell'account di servizio predefinito Compute Engine del progetto delle stazioni di lavoro

    Dopo aver creato una configurazione della workstation, Cloud KMS cripta i dischi permanenti del progetto con la chiave Cloud KMS specificata.

Ruotare le chiavi di crittografia gestite dal cliente

Quando concedi all'account di servizio di gestione delle workstation il ruolo Visualizzatore Cloud KMS (roles/cloudkms.viewer) sulla chiave CMEK, il servizio delle workstation è in grado di rilevare la rotazione delle chiavi e ricrippare il tuo disco principale utilizzando la nuova versione chiave primaria.

La nuova crittografia avviene dopo l'interruzione della stazione di lavoro. Ogni volta che interrompi una workstation criptata, il servizio della workstation controlla se la chiave è stata ruotata. Se la chiave è stata ruotata, il servizio della workstation crea uno snapshot del disco principale della workstation ed elimina il disco. Al successivo avvio della workstation, il servizio della workstation crea un nuovo disco dallo snapshot utilizzando la nuova versione della chiave primaria.

Quote di Cloud KMS e Cloud Workstations

Quando utilizzi CMEK in Cloud Workstations, i tuoi progetti possono consumare le quote per le richieste crittografiche di Cloud KMS. Ad esempio, i repository con crittografia CMEK possono consumare queste quote per ogni caricamento o download. Le operazioni di crittografia e decrittografia che utilizzano le chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi chiavi hardware (Cloud HSM) o esterne (Cloud EKM). Per ulteriori informazioni, consulta Quote di Cloud KMS.

Chiavi esterne

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

Quando utilizzi una chiave Cloud EKM, Google non ha alcun controllo sulla disponibilità della chiave gestita esternamente. Se la chiave non è disponibile, la workstation non può essere avviata.

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

Passaggi successivi