Abilitazione delle chiavi di crittografia gestite dal cliente

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.

  1. Nel Google Cloud progetto in cui vuoi gestire le chiavi:

    1. Abilita l'API Cloud KMS.

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

  2. 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=PROJECT
    

    Sostituisci PROJECT con l'ID del progetto in cui è in esecuzione Artifact Registry.

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

    1. Vai alla pagina Chiavi di crittografia.

      Apri la pagina Cloud KMS

    2. Seleziona la chiave che hai creato.

    3. Concedi l'accesso al account di servizio Artifact Registry:

      1. Seleziona MOSTRA RIQUADRO INFORMAZIONI.
      2. Fai clic su AGGIUNGI MEMBRO.
      3. 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.
      4. In Seleziona un ruolo, seleziona Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
      5. Fai clic su SALVA.
    4. Ripeti il passaggio precedente per concedere l'accesso all'account che creerà i repository.

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

    6. Seleziona MOSTRA RIQUADRO INFORMAZIONI. Dovresti visualizzare i ruoli nella colonna Ruolo/Membro.

    gcloud

    1. 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.cryptoKeyEncrypterDecrypter
      

      Dove

      • 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
    2. 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:

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.

  1. Apri la pagina Repository nella Google Cloud console.

    Apri la pagina Repositori

  2. Fai clic su Crea repository.

  3. Compila i campi obbligatori e facoltativi per il repository standard, remoto, o virtuale.

  4. Nella sezione Crittografia, scegli Cloud KMS con gestione automatica di Autokey.

  5. Fai clic su Crea.

Rimozione dell'accesso in corso…

Esistono diversi modi per rimuovere l'accesso a un repository criptato con 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 Deny del vincolo constraints/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