Cripta le risorse della workstation utilizzando CMEK

Per impostazione predefinita, Cloud Workstations utilizza una chiave di crittografia gestita da Google per criptare le risorse di workstation come le VM e i dischi permanenti quando i dati sono inattivi. 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) utilizzando Cloud Key Management Service (Cloud KMS).

Per ulteriori informazioni su CMEK in generale, ad esempio quando e perché abilitarla, consulta la documentazione di Cloud KMS.

Prima di iniziare

Crea i tuoi progetti

  1. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea due progetti Google Cloud:

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

    • Un progetto workstation contiene workstation criptate con una chiave CMEK.

    Puoi utilizzare lo stesso progetto per il progetto chiave e per il progetto delle workstation, ma come best practice, ti consigliamo di usare due progetti per la separazione dei compiti.

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

  3. Abilita le API richieste in ogni progetto.

  4. Assicurati di installare e inizializzare l'interfaccia a riga di comando gcloud. Per inizializzare l'interfaccia a riga di comando gcloud, esegui questo comando:

    gcloud init
    

Ruoli obbligatori

Anche se puoi 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 distinte e fai in modo che si coprano, anziché chiedere a Cloud KMS di essere anche l'amministratore di Cloud Workstations. Per ulteriori informazioni, consulta le best practice per la sicurezza e l'utilizzo sicuro di IAM.

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

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

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea keyring e chiave di crittografia

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

  1. Crea o seleziona un keyring.

    Puoi condividere i keyring tra i servizi ma, come best practice, ti consigliamo di utilizzare una chiave diversa per ogni risorsa protetta. Consulta la sezione sulla separazione dei compiti.

  2. Crea una chiave di crittografia simmetrica.

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

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

Verifica le configurazioni di workstation

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

Utilizzo delle chiavi di crittografia gestite dal cliente

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

Console

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

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

    Vai a Gestione delle chiavi

  2. Fai clic sul nome del keyring che contiene la chiave.

  3. Seleziona la casella di controllo relativa alla chiave che vuoi utilizzare.

    La scheda Autorizzazioni viene visualizzata sotto forma di 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/decriptazione CryptoKey Cloud KMS.

  6. Fai clic su Aggiungi un altro ruolo.

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

  8. Fai clic su Salva.

Per attivare CMEK dalla console Google Cloud:

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

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

  3. Fai clic su expand_more Espandi altro 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 progetto della chiave.

      Se la chiave che hai creato non è presente nell'elenco, fai clic su Inserisci la chiave manualmente per selezionarla 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 avvia la configurazione della workstation per criptare i dischi permanenti nel 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 quindi abilita CMEK specificando tale chiave nella configurazione della workstation:

  1. Concedi all'account di servizio KMS e all'agente di servizio Compute Engine per il progetto delle workstation il ruolo Autore crittografia/decrittografia di Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) nella chiave CMEK. Ciò consente al servizio Compute Engine di creare risorse criptate nel tuo 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 il keyring.
    • KEY_RING: il nome del keyring.
    • WORKSTATIONS_PROJECT_NUMBER: l'identificatore numerico univoco generato automaticamente e incluso come prima parte dell'account di servizio predefinito di Compute Engine del progetto Workstations.
    • KMS_PROJECT_ID: ID progetto, una stringa univoca utilizzata per differenziare il tuo progetto Cloud KMS da tutti gli altri in Google Cloud.

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

  2. Per recuperare l'account di servizio di gestione delle workstation per il progetto workstation, utilizza il comando seguente:

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

    Sostituisci WORKSTATIONS_PROJECT_ID con l'ID progetto delle tue workstation.

  3. Concedi all'account di servizio di gestione delle workstation per il tuo progetto il ruolo Visualizzatore Cloud KMS (roles/cloudkms.viewer) nella chiave CMEK. In questo modo il servizio 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 il keyring.
    • KEY_RING: il nome del keyring.
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: l'account di servizio di gestione delle workstation ottenuto nel passaggio precedente.
    • KMS_PROJECT_ID: l'ID progetto, una stringa univoca utilizzata per differenziare il progetto della chiave Cloud KMS da tutti gli altri in Google Cloud.

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

  4. Facoltativo: se non hai ancora creato un cluster di workstation, creane uno utilizzando il comando dell'interfaccia a riga di comando clusters create gcloud.

    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 e incluso come prima parte dell'account di servizio predefinito di Compute Engine del progetto Workstations
  5. Supponendo che tu abbia già creato un cluster, crea una configurazione di workstation con le impostazioni encryption_key.

    Per creare una configurazione di workstation con il tipo di macchina e2-standard-2, il timeout di inattività di 3600s e le risorse workstation criptate con CMEK, esegui il seguente comando dell'interfaccia a riga di comando gcloud:

    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: ID progetto, una stringa univoca utilizzata per distinguere il tuo progetto da tutti gli altri in Google Cloud.
    • KEY_RING: il nome del keyring.
    • KEY_NAME: il nome della chiave.
    • WORKSTATIONS_PROJECT_NUMBER: l'identificatore numerico univoco generato automaticamente e incluso come prima parte dell'account di servizio predefinito di Compute Engine del progetto Workstations

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

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 criptati con CMEK possono consumare queste quote per ogni caricamento o download. Le operazioni di crittografia e decriptazione mediante 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 all'interno di 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, non è possibile avviare la workstation.

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

Passaggi successivi