Criptare le risorse della workstation utilizzando CMEK

Per impostazione predefinita, Cloud Workstations cripta i contenuti inattivi dei clienti. Cloud Workstations 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 Cloud Workstations. 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 accesso e i confini crittografici. L'utilizzo di Cloud KMS ti consente inoltre di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo 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 le chiavi CMEK, l'esperienza di accesso alle risorse di Cloud Workstations è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Per impostazione predefinita, Cloud Workstations utilizza un Google-owned and Google-managed encryption key 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) utilizzando 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 i seguenti Google Cloud progetti:

    • 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. Per ulteriori informazioni, consulta Verificare lo stato di fatturazione dei progetti.

  3. Abilita le API richieste in ogni progetto.

  4. Installa e inizializza l'interfaccia a riga di comando gcloud:

    1. Per installare gcloud CLI, consulta Installare gcloud CLI e segui le istruzioni per il tuo sistema operativo.

    2. Per inizializzare gcloud CLI, consulta Inizializzare gcloud CLI o 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 l'utilizzo sicuro di IAM.

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 ulteriori informazioni 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 chiavi automatizzate 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.

    Il portachiavi deve trovarsi nella stessa regione del cluster di workstation. Cloud Workstations non supporta le località Cloud KMS multiregionali o globali.

    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.

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

Concedi l'accesso alla tua chiave di crittografia

Cloud Workstations utilizza i seguenti account di servizio per gestire la crittografia delle risorse:

  1. L'agente di servizio Cloud Workstations: Cloud Workstations utilizza questo account per rilevare quando la chiave viene ruotata.

  2. L'account di servizio della chiave Cloud KMS: fornirai un account di servizio che le workstation Cloud possono utilizzare per accedere alla tua chiave per criptare e decriptare le risorse.

Concedi il ruolo Cloud KMS Viewer all'agente di servizio Cloud Workstations

L'agente di servizio Cloud Workstations consente a Cloud Workstations di svolgere funzioni di servizio nel tuo progetto. Quando hai attivato il servizio Cloud Workstations nel tuo progetto workstation, questo agente di servizio è stato creato automaticamente. Affinché la chiave CMEK funzioni correttamente, dovrai concedere all'agente di servizio Cloud Workstations per il tuo progetto di workstation il ruolo visualizzatore Cloud KMS (roles/cloudkms.viewer) sulla chiave Cloud KMS, in modo che Cloud Workstations possa rilevare la rotazione delle chiavi.

  1. Per recuperare l'agente di servizio Cloud Workstations per il progetto della tua workstation, utilizza il seguente comando:

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

    Sostituisci WORKSTATIONS_PROJECT_ID con l'ID del progetto della tua workstation.

    Workstations Service Agent di Cloud utilizza il seguente formato:
    service-$WORKSTATIONS_PROJECT_NUMBER@gcp-sa-workstations.iam.gserviceaccount.com.

  2. Concedi all'agente di servizio Cloud Workstations il ruolo Visualizzatore Cloud KMS (roles/cloudkms.viewer) sulla chiave CMEK. In questo modo, Cloud Workstations può rilevare la rotazione delle chiavi e criptare nuovamente le risorse in base alle esigenze del progetto.

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

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave.
    • KEY_RING: il nome del tuo mazzo di chiavi.
    • LOCATION: la posizione contenente il tuo mazzo di chiavi.
    • KMS_PROJECT_ID: l'ID del progetto contenente la chiave.
    • CLOUD_WORKSTATIONS_SERVICE_AGENT: il Workstations Service Agent di Cloud ottenuto dal passaggio precedente.

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

Configurare un account di servizio per le chiavi Cloud KMS

Cloud Workstations utilizza un account di servizio di tua scelta per eseguire la crittografia e la decrittografia con la chiave gestita dal cliente. Ci riferiamo a questo account come all'account di servizio chiavi Cloud KMS. Puoi scegliere di creare un nuovo account di servizio o di utilizzarne uno esistente. I requisiti per questo account sono:

  • L'amministratore di Cloud Workstations deve disporre dell'autorizzazioneiam.serviceAccounts.actAs per questo account di servizio.
  • L'account di servizio scelto deve disporre del ruolo Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) di Cloud KMS sulla chiave Cloud KMS.
  1. Se vuoi creare un nuovo account di servizio, utilizza il seguente comando:

    gcloud iam service-accounts create \
      KMS_KEY_SERVICE_ACCOUNT_NAME \
      --display-name="Service account for Cloud Workstations CMEK" \
      --project=WORKSTATIONS_PROJECT_ID
    

    Sostituisci quanto segue:

    • KMS_KEY_SERVICE_ACCOUNT_NAME: il nome dell'account di servizio.
    • WORKSTATIONS_PROJECT_ID: l'ID del progetto della workstation.

    L'account di servizio che hai creato ha un'email nel seguente formato: KMS_KEY_SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    Salva l'indirizzo email dell'account di servizio per un passaggio successivo.

  2. Per concedere il ruolo Utente account di servizio Amministratore di Cloud Workstations IAM (roles/iam.serviceAccountUser) all'account di servizio della chiave Cloud KMS, esegui il seguente comando:

    gcloud iam service-accounts add-iam-policy-binding \
        KMS_KEY_SERVICE_ACCOUNT_EMAIL \
        --member="user:CLOUD_WORKSTATIONS_ADMIN_EMAIL" \
        --project=WORKSTATIONS_PROJECT_ID \
        --role=roles/iam.serviceAccountUser
    

    Sostituisci quanto segue:

    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: l'indirizzo email dell'account del servizio chiavi Cloud KMS.
    • CLOUD_WORKSTATIONS_ADMIN_EMAIL: l'indirizzo email dell'amministratore di Cloud Workstations.
    • WORKSTATIONS_PROJECT_ID: l'ID del progetto della workstation.
  3. Per concedere all'account di servizio della chiave Cloud KMS il ruolo Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) per la chiave Cloud KMS, esegui il seguente comando:

      gcloud kms keys add-iam-policy-binding \
        KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --project KMS_PROJECT_ID \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --member serviceAccount:KMS_KEY_SERVICE_ACCOUNT_EMAIL\
    

    Sostituisci quanto segue:

    • KEY_NAME: il nome della chiave.
    • KEY_RING: il nome del tuo mazzo di chiavi.
    • LOCATION: la posizione contenente il tuo mazzo di chiavi.
    • KMS_PROJECT_ID: l'ID del progetto contenente la chiave.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: l'indirizzo email dell'account del servizio chiavi Cloud KMS.

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

Verifica la presenza di cluster di workstation

Se non hai cluster di workstation disponibili nella console Google Cloud, chiedi all'amministratore di Cloud Workstations di crearne uno per te nella stessa regione del portachiavi Cloud KMS oppure assicurati di avere un ruolo IAM di amministratore di Cloud Workstations nel progetto per poter creare autonomamente queste risorse.

Utilizzo delle chiavi di crittografia gestite dal cliente

  1. Se non hai ancora creato un cluster di workstation, creane uno utilizzando il comando CLI clusters create gcloud.

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

    Sostituisci quanto segue:

    • WORKSTATIONS_CLUSTER_NAME: il nome del cluster di workstation.
    • LOCATION: il nome della regione per il cluster di workstation.
    • WORKSTATIONS_PROJECT_ID: l'ID del progetto della workstation.
  2. 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="KMS_KEY_SERVICE_ACCOUNT_EMAIL" \
      --project=WORKSTATIONS_PROJECT_ID
    

    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 tuo mazzo di chiavi.
    • KEY_NAME: il nome della chiave.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: l'indirizzo email dell'account del servizio chiavi Cloud KMS.
    • WORKSTATIONS_PROJECT_ID: l'ID del progetto della workstation.

    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 hai concesso all'agente di servizio Cloud Workstations il ruolo Visualizzatore Cloud KMS (roles/cloudkms.viewer) sulla chiave CMEK, il servizio della workstation è in grado di rilevare la rotazione della chiave e ricripptare il tuo disco di casa utilizzando la nuova versione della chiave principale.

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 principale.

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 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, la workstation non può essere avviata.

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

Passaggi successivi