Questa pagina descrive come criptare i contenuti archiviati nei repository tramite chiavi di crittografia gestite dal cliente (CMEK).
Panoramica
Per impostazione predefinita, Artifact Registry cripta i contenuti inattivi dei clienti at rest. Artifact Registry gestisce la crittografia per conto tuo senza che tu debba fare altro. 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, tra cui Artifact Registry. 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 chiavi CMEK, l'esperienza di accesso alle risorse di Artifact Registry è simile a quella della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).
CMEK con Autokey di Cloud KMS
Puoi creare le chiavi CMEK manualmente per proteggere le risorse di Artifact Registry oppure utilizzare Cloud KMS Autokey. Con Autokey, le chiavi e le chiavi automatizzate vengono generate on demand per supportare la creazione di risorse in Artifact Registry. Vengono creati gli agenti di servizio che utilizzano le chiavi per le operazioni di crittografia e decrittografia, se non esistono già, e ricevono i ruoli IAM (Identity and Access Management) richiesti. Per saperne di più, consulta la panoramica di Autokey.
Per configurare CMEK manualmente, consulta Creare una chiave e concedere le autorizzazioni
Per configurare CMEK utilizzando Autokey, consulta Utilizzare Autokey per creare le chiavi in questa pagina.
Assegna una chiave CMEK quando crei un repository. Non puoi modificare il meccanismo di crittografia di un repository esistente. Se hai un repository criptato con CMEK, non puoi modificare il meccanismo di crittografia per utilizzare una basata su Google Cloud o assegnare una chiave Cloud KMS diversa per la crittografia.
Per saperne di più su CMEK in generale, inclusi quando e perché abilitarla, consulta la panoramica di CMEK.
Creare una chiave e concedere le autorizzazioni
Le istruzioni riportate di seguito spiegano come creare una chiave per un repository e concedere le autorizzazioni per criptare e decriptare i dati del repository con la chiave. Puoi utilizzare una chiave creata direttamente in Cloud KMS o una chiave gestita esternamente che rendi disponibile con Cloud External Key Manager.
Nel Google Cloud progetto in cui vuoi gestire le chiavi:
Crea un keyring e una chiave utilizzando una delle seguenti opzioni:
La località della chiave Cloud KMS deve corrispondere alla località del repository che cripti.
Se non hai creato un repository nel progetto Artifact Registry, il account di servizio Artifact Registry non esiste. Per creare il account di servizio, esegui questo comando:
gcloud beta services identity create --service=artifactregistry.googleapis.com --project=PROJECTSostituisci PROJECT con l'ID del progetto in cui è in esecuzione Artifact Registry.
Concedi il ruolo IAM Autore crittografia/decrittografia CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter) al account di servizio Artifact Registry. Concedi questa autorizzazione per la chiave che hai creato.Console
Vai alla pagina Chiavi di crittografia.
Seleziona la chiave che hai creato.
Concedi l'accesso al account di servizio Artifact Registry:
- Seleziona MOSTRA RIQUADRO INFORMAZIONI.
- Fai clic su AGGIUNGI MEMBRO.
- Aggiungi il account di servizio Artifact Registry. Il account di servizio è service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, dove PROJECT-NUMBER è il numero del progetto del Google Cloud progetto in cui è in esecuzione Artifact Registry.
- In Seleziona un ruolo, seleziona Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- Fai clic su SALVA.
Ripeti il passaggio precedente per concedere l'accesso all'account che creerà i repository.
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
Esegui questo comando per concedere l'accesso al account di servizio Artifact Registry:
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.cryptoKeyEncrypterDecrypterDove
- PROJECT è l'ID del progetto che contiene la chiave.
- KEY è il nome della chiave.
- LOCATION è la località della chiave. La località della chiave deve corrispondere alla località del repository che cripti.
- KEYRING è il nome del keyring.
- PROJECT-NUMBER è il numero del progetto in cui è in esecuzione Artifact Registry. Google Cloud
Ripeti il passaggio precedente per concedere l'accesso all'account che creerà i repository.
Per saperne di più su questo comando, consulta la documentazione di gcloud kms keys add-iam-policy-binding.
Successivamente, crea un repository e specifica la chiave da utilizzare per la crittografia.
Utilizzare Autokey per creare le chiavi
Autokey crea una nuova chiave nella stessa località del repository.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per utilizzare Autokey per creare repository protetti, chiedi all'amministratore di concederti i seguenti ruoli IAM per la cartella o il progetto:
-
Utente Autokey di Cloud KMS (
roles/cloudkms.autokeyUser) -
Amministratore di Artifact Registry (
roles/artifactregistry.admin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea chiavi
Prima di creare le chiavi con Autokey, devi abilitare Cloud KMS Autokey.
Apri la pagina Repository nella Google Cloud console.
Fai clic su Crea repository.
Compila i campi obbligatori e facoltativi per il repository standard, remoto, o virtuale.
Nella sezione Crittografia, scegli Cloud KMS con gestione automatica di Autokey.
Fai clic su Crea.
Rimozione dell'accesso in corso…
Esistono diversi modi per rimuovere l'accesso a un repository criptato con CMEK:
- Revoca il ruolo Cloud KMS CryptoKey Encrypter/Decrypter dal service account Artifact Registry utilizzando uno dei seguenti metodi:
- Disabilita temporaneamente la chiave di crittografia gestita dal cliente
- Elimina definitivamente la chiave CMEK
Ti consigliamo di revocare le autorizzazioni dal account di servizio Artifact Registry prima di disabilitare o eliminare una chiave. Le modifiche alle autorizzazioni sono coerenti in pochi secondi, quindi puoi osservare gli impatti della disattivazione o dell'eliminazione di una chiave.
Quando disabiliti o elimini la chiave di crittografia per un repository, non puoi più visualizzare o recuperare i dati degli artefatti. Tutti i dati degli artefatti archiviati nel repository diventano inaccessibili, inclusi gli artefatti creati, i dati binari arbitrari (blob) e i manifest come un manifest Docker o un file packument npm.
Gli utenti con il ruolo Lettore di Artifact Registry (roles/artifactregistry.reader) o Visualizzatore (roles/artifactregistry.viewer) possono comunque visualizzare i metadati degli artefatti, come il nome, la versione o il tag dell'artefatto.
Gli utenti con il ruolo di amministratore di Artifact Registry (roles/artifactregistry.admin) o Proprietario (roles/owner) possono eliminare il repository.
Policy dell'organizzazione per le chiavi CMEK
Artifact Registry supporta i vincoli delle policy dell'organizzazione che possono richiedere la protezione CMEK.
Le policy possono limitare le CryptoKey Cloud KMS che possono essere utilizzate per la protezione CMEK.
Quando l'API Artifact Registry si trova nell'elenco dei servizi
Denydel 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 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 Google Cloud progetto, Artifact Registry
tenta di creare automaticamente un argomento Pub/Sub con l'ID argomento
gcr utilizzando di proprietà di Google e gestite da Google basate su Google Cloud. Tuttavia, se l'API Pub/Sub si trova nell'elenco delle policy Deny per il vincolo constraints/gcp.restrictNonCmekServices, Pub/Sub non creerà l'argomento. In questo scenario, devi creare l'argomento gcr con la crittografia CMEK. Per saperne di più, consulta le istruzioni di Pub/Sub
per la crittografia degli argomenti.
Per saperne di più sulla configurazione delle policy dell'organizzazione, consulta Policy dell'organizzazione per le chiavi CMEK.
Passaggi successivi
- Crea un repository criptato con CMEK
- Scopri di più su CMEK
- Scopri di più sulle di proprietà di Google e gestite da Google basate su Google Cloud