Questa pagina descrive come criptare i contenuti archiviati nei repository tramite chiavi di crittografia gestite dal cliente (CMEK).
Panoramica
Per impostazione predefinita, Google Cloud cripta automaticamente i dati quando sono riposa utilizzando chiavi di proprietà e gestite da Google. Se hai requisiti di conformità o normativi specifici relativi alle chiavi che proteggono i tuoi dati, puoi creare repository criptati con chiavi CMEK. I metadati relativi a un repository, ad esempio il nome del repository, sono criptati con Crittografia predefinita di Google.
Quando attivi CMEK, i dati a riposo nei repository vengono criptati utilizzando una chiave che gestisci in Cloud Key Management Service. Puoi controllare l'accesso alla chiave CMEK usando Identity and Access Management. Se disabiliti temporaneamente o elimini definitivamente la CMEK non è possibile accedere ai dati criptati con quella chiave.
CMEK ti offre il controllo su più aspetti del ciclo di vita e della gestione delle tue chiavi, ma comporta anche costi aggiuntivi per il servizio Cloud KMS. Repository Artifact Registry e altri Anche le risorse Google Cloud criptate con CMEK possono utilizzare Quota di Cloud KMS, a seconda del tipo di chiave che usi. Verifica di disporre di una quota sufficiente per attivare la crittografia dei secret a livello di applicazione per le tue applicazioni e i tuoi flussi di lavoro.
Cloud KMS può essere eseguito nello stesso progetto Google Cloud di Artifact Registry o in un progetto separato in cui gestisci centralmente le chiavi per più progetti. Per favorire la separazione dei compiti e un maggior controllo sui per accedere alle chiavi, ti consigliamo di creare e gestire le chiavi in un che includa altre risorse Google Cloud.
Assegni una chiave CMEK quando crei un repository. Non puoi modificare meccanismo di crittografia di un repository esistente. Se hai un repository con crittografia CMEK, non puoi modificare il meccanismo di crittografia impostandolo sulla crittografia predefinita di Google o assegnare una chiave Cloud KMS diversa per la crittografia.
Per ulteriori informazioni su CMEK in generale, incluso quando e perché attivarlo, consulta la documentazione di Cloud KMS.
Creazione di una chiave e concessione delle autorizzazioni
Le seguenti istruzioni spiegano come creare una chiave per un repository concedere le autorizzazioni per criptare e decriptare i dati del repository con la chiave. Tu può utilizzare una chiave creata direttamente in Cloud KMS o una chiave che rendi disponibile con Cloud External Key Manager.
Nel progetto Google Cloud in cui vuoi gestire le chiavi:
Crea un mazzo di chiavi e una chiave utilizzando una delle seguenti opzioni:
- Crea il keyring e la chiave direttamente in Cloud KMS.
- Utilizza una chiave gestita esternamente. Crea la chiave esterna e poi crea una chiave EKM Cloud per renderla disponibile tramite Cloud KMS.
La posizione della chiave di Cloud KMS deve corrispondere alle località del repository del repository che cripterà.
Se non hai creato un repository nel progetto Artifact Registry, l'account di servizio Artifact Registry non esiste ancora. Per creare l'account di servizio, esegui il seguente comando:
gcloud beta services identity create --service=artifactregistry.googleapis.com --project=PROJECT
Sostituisci PROJECT con l'ID del progetto in cui Artifact Registry è in esecuzione.
Concedi il ruolo IAM Autore crittografia/decrittografia CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ad Artifact Registry l'account di servizio. Concedi questa autorizzazione sulla chiave che hai creato.Console
Vai alla pagina Chiavi di crittografia.
Seleziona la chiave che hai creato.
Concedi l'accesso all'account di servizio Artifact Registry:
- Seleziona MOSTRA RIQUADRO INFORMAZIONI.
- Fai clic su AGGIUNGI MEMBRO.
- Aggiungi l'account di servizio Artifact Registry. L'account di servizio è service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, dove PROJECT-NUMBER è il numero di progetto del progetto Google Cloud in cui Artifact Registry è in esecuzione.
- 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 e creare repository.
Torna alla pagina Chiavi crittografiche e seleziona di nuovo la chiave.
Seleziona MOSTRA RIQUADRO INFORMAZIONI. Dovresti vedere i ruoli nella colonna Ruolo/Membro.
gcloud
Esegui questo comando per concedere l'accesso ad Artifact Registry account di servizio:
gcloud kms keys add-iam-policy-binding [--project=PROJECT] \ KEY --location LOCATION --keyring=KEYRING \ --member serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Dove
- PROJECT è l'ID del progetto che contiene la chiave.
- KEY è il nome della chiave.
- LOCATION è la località principale. La posizione della chiave deve corrispondere alla località del repository del repository che cripterà.
- KEYRING è il nome del keyring.
- PROJECT-NUMBER è il numero del progetto del progetto Google Cloud in cui è in esecuzione Artifact Registry.
Ripeti il passaggio precedente per concedere l'accesso all'account che creerà i repository.
Per ulteriori informazioni su questo comando, consulta gcloud kms keys add-iam-policy-binding documentazione.
Ora puoi creare un repository e specificare la chiave da utilizzare per la crittografia.
Rimozione dell'accesso in corso…
Esistono diversi modi per rimuovere l'accesso a un repository criptato con CMEK:
- Revoca il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS dall'account di servizio Artifact Registry utilizzando la console Google Cloud o gcloud CLI
- Disattiva temporaneamente la chiave CMEK
- Distruggi definitivamente la chiave CMEK
Ti consigliamo di revocare le autorizzazioni da Artifact Registry l'account di servizio prima di disabilitare o eliminare una chiave. Le modifiche alle autorizzazioni sono coerente in pochi secondi, per poter osservare l'impatto della disattivazione l'eliminazione di una chiave.
Se disattivi o distruggi la chiave di crittografia di un repository, perdi la possibilità di visualizzare o recuperare i dati degli elementi. Tutti i dati degli artefatti archiviati al repository diventa inaccessibile, inclusi artefatti creati, codice binario arbitrario (BLOB) e manifest come un manifest Docker o un file di pacchetto npm. Utenti con il ruolo Artifact Registry Reader o Visualizzatore può comunque visualizzare i metadati dell'artefatto, come il nome, o tag.
Gli utenti con il ruolo o il ruolo Proprietario di Amministratore del registry di elementi possono eliminare il repository.
Criteri dell'organizzazione CMEK
Artifact Registry supporta i vincoli dei criteri dell'organizzazione che possono richiedere la protezione CMEK.
I criteri possono limitare le CryptoKey Cloud KMS utilizzabili Protezione CMEK.
Quando l'API Artifact Registry è nell'elenco dei servizi delle norme
Deny
del vincoloconstraints/gcp.restrictNonCmekServices
, Artifact Registry rifiuta di creare nuovi repository non protetti da CMEK.Quando
constraints/gcp.restrictCmekCryptoKeyProjects
è configurato, Artifact Registry crea repository protetti da CMEK che sono protetti da una CryptoKey di un progetto, una cartella o un'organizzazione consentiti.
Pub/Sub supporta gli stessi vincoli. Quando attivi l'API Artifact Registry in un progetto Google Cloud, Artifact Registry tenta di creare automaticamente un argomento Pub/Sub con l'ID argomentogcr
utilizzando chiavi di proprietà e gestite da Google. Quando l'API Pub/Sub si trova nell'elenco dei criteri Deny
per il vincolo
constraints/gcp.restrictNonCmekServices
, Pub/Sub si rifiuta di
creare l'argomento. Per creare l'argomento gcr
con crittografia CMEK, consulta le istruzioni di Pub/Sub per la crittografia degli argomenti.
Per saperne di più sulla configurazione dei criteri dell'organizzazione, consulta Criteri dell'organizzazione CMEK.
Passaggi successivi
- Crea un repository criptato con CMEK
- Scopri di più su CMEK
- Scopri di più sulla crittografia predefinita di Google