Crittografare i dati con chiavi di crittografia gestite dal cliente

Questo documento mostra come utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per criptare e controllare i dati a riposo in un servizio cloud tramite Cloud Key Management Service. Le CMEK sono integrate con la personalizzazione del codice per l'Assistente codice Gemini.

Se non utilizzi una chiave CMEK, Google gestisce automaticamente le chiavi che criptano i dati per impostazione predefinita. Questo comportamento è noto come crittografia predefinita di Google. Con questo comportamento predefinito, non hai il controllo sulle chiavi di crittografia.

In questo documento, esegui le seguenti operazioni:

  • Scopri come creare un CMEK.
  • Concedi le autorizzazioni all'account di servizio Gemini Code Assist.
  • Crea un indice del repository di codice con una CMEK.
  • Rimuovi l'accesso a un repository CMEK.

Per impostazione predefinita, Gemini per Google Cloud cripta i contenuti inattivi dei clienti. Gemini 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 Gemini. 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 le chiavi CMEK, l'esperienza di accesso alle risorse Gemini è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Prima di iniziare

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. Nell'ambiente shell, esegui il comando gcloud components update per assicurarti di aver aggiornato tutti i componenti installati dell'interfaccia a riga di comando gcloud alla versione più recente. Per questo passaggio, puoi installare e inizializzare gcloud CLI oppure utilizzare Cloud Shell.

    gcloud components update
    

Creare un CMEK e concedere le autorizzazioni

Per creare una chiave CMEK e concedere all'account di servizio Gemini Code Assist le autorizzazioni sulla chiave, svolgi le seguenti attività:

  1. Nel Google Cloud progetto in cui vuoi gestire le tue chiavi, procedi come segue:

    1. Abilita l'API Cloud Key Management Service.

    2. Crea un mazzo di chiavi e una chiave utilizzando una delle seguenti opzioni:

  2. Concedi il ruolo IAM Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) all'account di servizio Gemini Code Assist. Concedi questa autorizzazione alla chiave che hai creato.

    Console

    1. Vai a Gestione chiavi.

      Vai a Gestione chiavi

    2. Seleziona la chiave che hai creato.

    3. Concedi l'accesso all'account di servizio Gemini Code Assist:

      1. Fai clic su Aggiungi entità.
      2. Aggiungi l'account di servizio Gemini Code Assist. L'account servizio è service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com, dove PROJECT_NUMBER è il numero del progetto del progetto in cui è abilitato Gemini Code Assist. Google Cloud
      3. In Seleziona un ruolo, seleziona Cloud KMS > Autore crittografia/decrittografia CryptoKey Cloud KMS.
      4. Fai clic su Salva.
    4. Ripeti il passaggio precedente per concedere l'accesso all'account che creerà l'indice del repository di codice con un CMEK.

    5. Torna alla pagina Gestione chiavi e seleziona di nuovo la chiave.

    6. Seleziona Mostra riquadro informazioni. Dovresti vedere i ruoli nella colonna Ruolo/Membro.

    gcloud

    1. Per concedere l'accesso all'account di servizio Gemini Code Assist, in un ambiente shell, utilizza il comando kms keys add-iam-policy-binding:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --keyring=KEYRING_NAME \
          --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \
          --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
      

      Sostituisci quanto segue:

      • KEY_NAME: il nome della chiave.
      • PROJECT_ID: l'ID del progetto che contiene la chiave.
      • LOCATION: la posizione della chiave.
      • KEYRING_NAME: il nome della chiave automatizzata.
      • PROJECT_NUMBER: il numero del progetto del progetto Google Cloud con Gemini Code Assist abilitato.
    2. Ripeti il passaggio precedente per concedere l'accesso all'account che creerà l'indice del repository di codice con un CMEK.

    Per ulteriori informazioni su questo comando, consulta la documentazione di gcloud kms keys add-iam-policy-binding.

Ora puoi creare un indice del repository di codice con un CMEK utilizzando l'API e specificare la chiave da utilizzare per la crittografia.

Creare un indice del repository di codice con una CMEK

In gcloud CLI, crea un nuovo repository nel servizio protetto da un CMEK:

gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
    --location=LOCATION \
    --kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"

Sostituisci quanto segue:

  • CODE_REPOSITORY_INDEX_NAME: il nome dell'indice del nuovo repository di codice che creerai.
  • LOCATION: la posizione della chiave.
  • KEY_PROJECT_ID: l'ID progetto principale.
  • KEYRING_NAME: il nome della chiave automatizzata.
  • KEY_NAME: il nome della chiave.

Rimuovere l'accesso a un repository CMEK

Esistono diversi modi per rimuovere l'accesso a un repository criptato con CMEK:

Ti consigliamo di revocare le autorizzazioni dall'account di servizio Gemini Code Assist prima di disattivare o distruggere una chiave. Le modifiche alle autorizzazioni sono coerenti entro pochi secondi, quindi puoi osservare gli impatti della disattivazione o dell'eliminazione di una chiave.