Questo documento mostra come utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per criptare e controllare i dati inattivi in un servizio cloud tramite Cloud Key Management Service. CMEK è integrato con la personalizzazione del codice per Gemini Code Assist. Gemini Code Assist non supporta l'utilizzo delle chiavi Cloud EKM.
In questo documento:
- Scopri come creare una CMEK.
- Concedi le autorizzazioni al account di servizio di Gemini Code Assist.
- Crea un indice del repository di codice con una CMEK.
- Rimuovi l'accesso a un repository CMEK.
Per impostazione predefinita, Gemini for Google Cloud cripta i contenuti dei clienti inattivi. Gemini gestisce la crittografia senza che tu debba eseguire ulteriori azioni. Questa opzione è denominata crittografia predefinita di Google.
Se vuoi controllare le chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con i servizi integrati con CMEK, incluso Gemini. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione , la località, la pianificazione della rotazione, le autorizzazioni di utilizzo e di accesso e i limiti crittografici. Con Cloud KMS puoi anche visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece di Google, sei tu ad avere la proprietà e la gestione delle chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati. Puoi controllare e gestire queste chiavi in Cloud KMS.
Dopo aver configurato le risorse con le CMEK, l'esperienza di accesso alle risorse Gemini è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, vedi Chiavi di crittografia gestite dal cliente (CMEK).
Prima di iniziare
-
Nella Google Cloud console, attiva Cloud Shell.
Nell'ambiente di sviluppo in cui hai configurato gcloud CLI, esegui il
gcloud components updatecomando per assicurarti di aver aggiornato tutti i componenti installati di gcloud CLI all'ultima versione.gcloud components update
Creare una CMEK e concedere le autorizzazioni
Per creare una CMEK e concedere le autorizzazioni account di servizio di Gemini Code Assist sulla chiave:
Nel Google Cloud progetto in cui vuoi gestire le chiavi:
Crea il portachiavi e la chiave direttamente in Cloud KMS.
Concedi il ruolo IAM Autore crittografia/decrittografia CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter) al account di servizio di Gemini Code Assist. Concedi questa autorizzazione sulla chiave che hai creato.Console
Vai a Gestione delle chiavi.
Seleziona la chiave che hai creato.
Concedi l'accesso al account di servizio di Gemini Code Assist:
- Fai clic su Aggiungi entità.
- Aggiungi il account di servizio di Gemini Code Assist. Il
account di servizio è
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.iam.gserviceaccount.com, dove PROJECT_NUMBER è il numero di progetto del Google Cloud progetto in cui è abilitato Gemini Code Assist. - In Seleziona un ruolo, seleziona Cloud KMS > Autore crittografia/decrittografia CryptoKey Cloud KMS.
- Fai clic su Salva.
Ripeti il passaggio precedente per concedere l'accesso all'account che creerà l'indice del repository di codice con una CMEK.
Torna alla pagina Gestione delle chiavi e seleziona di nuovo la chiave.
Seleziona Mostra riquadro informazioni. Dovresti visualizzare i ruoli nella colonna Ruolo/Membro.
gcloud CLI
Per concedere l'accesso al service account di Gemini Code Assist, in un ambiente shell, utilizza il
kms keys add-iam-policy-bindingcomando: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 località della chiave.
- KEYRING_NAME: il nome delle chiavi automatizzate.
- PROJECT_NUMBER: il numero di progetto del Google Cloud progetto con Gemini Code Assist abilitato.
Ripeti il passaggio precedente per concedere l'accesso all'account che creerà l'indice del repository di codice con una CMEK.
Per saperne di più su questo comando, consulta la
gcloud kms keys add-iam-policy-bindingdocumentazione.
Ora puoi creare un indice del repository di codice con una CMEK utilizzando l'API e specificare la chiave da utilizzare per la crittografia.
Creare un indice del repository di codice con una CMEK
Per creare un nuovo repository con protezione CMEK, esegui una delle seguenti operazioni:
gcloud CLI
Utilizza il gemini code-repository-indexes create comando:
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 del nuovo indice del repository di codice che creerai.
- LOCATION: la località della chiave.
- KEY_PROJECT_ID: l'ID progetto.
- KEYRING_NAME: il nome delle chiavi automatizzate.
- KEY_NAME: il nome della chiave.
API
Crea un file JSON contenente le seguenti informazioni:
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }Sostituisci quanto segue:
KEY_PROJECT_ID: l'ID progettoKEY_LOCATION: la località della chiaveKEYRING_NAME: il nome delle chiavi automatizzateKEY_NAME: il nome della chiave
Utilizza un
cURLcomando per chiamare ilprojects.locations.codeRepositoryIndexes.createmetodo:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"Sostituisci quanto segue:
JSON_FILE_NAME: il percorso del file JSON che hai creato nel passaggio precedente.PROJECT_ID: l'ID del progetto in cui creare il repository.KEY_LOCATION: la località in cui creare il repository, che deve corrispondere alla località in cui esiste la CMEK.CODE_REPOSITORY_INDEX_NAME: il nome del nuovo indice del repository di codice che creerai. Ad esempio,zg-btf-0001.
La risposta restituisce un insieme di voci di log.
Rimuovere l'accesso a un repository CMEK
Esistono diversi modi per rimuovere l'accesso a un repository criptato con CMEK:
- Revoca il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS dal account di servizio di Gemini Code Assist utilizzando la console o gcloud CLI.Google Cloud
- Disabilita temporaneamente la CMEK.
- Elimina definitivamente la CMEK.
Ti consigliamo di revocare le autorizzazioni dal account di servizio di Gemini Code Assist prima di disabilitare o eliminare una chiave. Le modifiche alle autorizzazioni sono coerenti in pochi secondi, quindi puoi osservare gli impatti della disabilitazione o dell'eliminazione di una chiave.