Cripta i dati con chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Secure Source Manager cripta i contenuti inattivi dei clienti at rest. Secure Source Manager 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, incluso Secure Source Manager. 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 inoltre monitorare l'utilizzo delle chiavi, 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 Secure Source Manager è simile all'utilizzo della crittografia predefinita di Google. Per ulteriori informazioni sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Cloud KMS può essere eseguito in un progetto separato in cui gestisci centralmente le chiavi per più progetti o nello stesso Google Cloud progetto di Secure Source Manager. Per supportare la separazione dei compiti e un maggiore controllo sull'accesso alle chiavi, ti consigliamo di creare e gestire le chiavi in un progetto separato che non includa altre Google Cloud risorse.

Assegni una chiave Cloud KMS quando crei un'istanza. Non puoi modificare il meccanismo di crittografia di un'istanza esistente. Se hai un'istanza criptata con CMEK, non puoi modificare il meccanismo di crittografia in crittografia predefinita di Google o assegnare una chiave Cloud Key Management Service diversa per la crittografia.

L'istanza deve essere creata nella stessa località della chiave Cloud KMS.

CMEK con Autokey di Cloud KMS

Puoi creare le chiavi CMEK manualmente per proteggere le risorse Secure Source Manager oppure utilizzare Autokey di Cloud KMS. Con Autokey, le chiavi e le chiavi automatizzate vengono generate on demand per supportare la creazione di risorse in Secure Source Manager. 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 ulteriori informazioni, consulta la panoramica di Autokey.

Quote di Cloud KMS e Secure Source Manager

Quando utilizzi CMEK in Secure Source Manager, i tuoi progetti possono consumare le quote delle richieste di crittografia di Cloud KMS. Le istanze criptate con CMEK consumano queste quote al momento della creazione. Le operazioni di crittografia e decrittografia che utilizzano le chiavi CMEK influiscono sulle quote di Cloud KMS solo se utilizzi chiavi hardware (Cloud HSM) o esterne (Cloud EKM). Per ulteriori informazioni, consulta Quote di Cloud KMS.

Creare una chiave CMEK e concedere le autorizzazioni

Le seguenti istruzioni spiegano come creare una chiave e concedere le autorizzazioni del account di servizio Secure Source Manager sulla chiave.

  1. Crea una chiave Cloud KMS:

    Manualmente

    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 progetto in cui vuoi creare l'istanza Secure Source Manager.

    Utilizzo di Autokey

    1. Se non l'hai ancora fatto, abilita Autokey di Cloud KMS.

    2. Crea un nuovo KeyHandle di Cloud KMS Autokey:

      curl -H "Content-Type: application/json" \
          -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X POST https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/keyHandles \
          -d '{"resource_type_selector": "securesourcemanager.googleapis.com/Instance"}'
      

      Sostituisci quanto segue:

      • PROJECT: l'ID progetto del progetto in cui è abilitato Cloud KMS Autokey e in cui vuoi eseguire il deployment di un'istanza Secure Source Manager
      • LOCATION: la località KeyHandle. Deve corrispondere alla località in cui vuoi eseguire il deployment di un' istanza Secure Source Manager

      L'output è simile al seguente:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
        }
      }
      

      Prendi nota del OPERATION dall'output. Ti serve questo valore per ottenere l'ID risorsa della chiave creata.

    3. Trova la chiave Cloud KMS associata all'handle della chiave:

      curl -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X GET https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION
      

      Sostituisci quanto segue:

      • PROJECT: l'ID progetto del progetto in cui è abilitato Autokey di Cloud KMS e in cui vuoi eseguire il deployment di un'istanza Secure Source Manager
      • LOCATION: la località KeyHandle. Deve corrispondere alla località in cui vuoi eseguire il deployment di un' istanza Secure Source Manager
      • OPERATION: l'identificatore dell'operazione di richiesta dell'handle della chiave dall'output del passaggio precedente

      L'output è simile al seguente:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
          "name": "projects/PROJECT/locations/LOCATION/keyHandles/KEY_HANDLE",
          "kmsKey": "projects/PROJECT/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
          "resourceTypeSelector": "securesourcemanager.googleapis.com/Instance"
        }
      }
      

      Il valore dell'elemento kmsKey nell'output è l'ID risorsa completo della chiave creata da Autokey di Cloud KMS per questa risorsa. Puoi utilizzare questo ID risorsa nello stesso modo in cui utilizzeresti l'ID risorsa per qualsiasi altra risorsa Cloud KMS.

  2. Se stai creando la prima istanza Secure Source Manager nel tuo progetto, devi creare manualmente l'agente di servizio Secure Source Manager eseguendo il seguente comando:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    Dove PROJECT è l'ID progetto del progetto in cui creerai l'istanza Secure Source Manager.

    Dopo aver creato il account di servizio per prodotto e per progetto (P4SA), devi concedere il ruolo Agente di servizio Secure Source Manager (roles/securesourcemanager.serviceAgent) all'entità service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com o la creazione dell'istanza non riuscirà.

  3. Concedi il ruolo IAM Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) al account di servizio Secure Source Manager. Concedi questa autorizzazione sulla chiave che hai creato.

    Console

    1. Vai alla pagina Gestione delle chiavi.

      Vai a Gestione delle chiavi

    2. Seleziona il keyring che vuoi utilizzare, apri la pagina Dettagli del keyring, quindi seleziona la chiave che hai creato.

    3. Concedi l'accesso al account di servizio Secure Source Manager:

      1. Fai clic su AGGIUNGI ENTITÀ.
      2. Aggiungi il account di servizio Secure Source Manager. Il account di servizio è service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, dove PROJECT-NUMBER è il numero del progetto in cui è abilitato Secure Source Manager. Google Cloud
      3. In Seleziona un ruolo, seleziona Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
      4. Fai clic su SALVA.
    4. Ripeti il passaggio precedente per concedere l'accesso all'account che creerà l'istanza Secure Source Manager.

    5. Torna alla pagina Gestione delle chiavi, seleziona il keyring e apri la pagina Dettagli del keyring. Quindi seleziona di nuovo la chiave.

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

    gcloud

    1. Esegui il seguente comando per concedere l'accesso al account di servizio Secure Source Manager:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY_NAME --location LOCATION --keyring=KEY_RING \
             --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Sostituisci quanto segue:

      • PROJECT: l'ID del progetto che contiene la chiave
      • KEY_NAME: il nome della chiave
      • LOCATION: la località della chiave. La località della chiave deve corrispondere alla località del progetto in cui vuoi eseguire il deployment di un' istanza Secure Source Manager
      • KEY_RING: il nome del keyring
      • PROJECT_NUMBER: il numero del progetto con Secure Source Manager abilitatoGoogle Cloud
    2. Ripeti il passaggio precedente per concedere l'accesso all'account che creerà l'istanza Secure Source Manager.

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

Rimuovi accesso

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

Ti consigliamo di revocare le autorizzazioni dal account di servizio Secure Source Manager prima di disattivare o eliminare una chiave. Le modifiche alle autorizzazioni sono coerenti in pochi secondi, quindi puoi osservare gli effetti della disattivazione o dell'eliminazione di una chiave.

Quando disattivi o elimini la chiave di crittografia per un'istanza, non puoi più visualizzare o recuperare i dati dall'istanza. Tutti i dati archiviati nell'istanza diventano inaccessibili, inclusi la cronologia del codice, le richieste di pull e i problemi.

Gli utenti con il ruolo Gestore di istanze Secure Source Manager o Proprietario dell'istanza possono eliminare l'istanza.

Policy dell'organizzazione per le chiavi CMEK

Secure Source Manager 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 Secure Source Manager si trova nell'elenco dei servizi Deny del vincolo constraints/gcp.restrictNonCmekServices, Secure Source Manager rifiuta di creare nuove istanze non protette da CMEK.

  • Quando constraints/gcp.restrictCmekCryptoKeyProjects è configurato, Secure Source Manager crea istanze protette da CMEK protette da una CryptoKey di un progetto, una cartella o un'organizzazione consentiti.

Per ulteriori informazioni sulla configurazione delle policy dell'organizzazione, consulta Policy dell'organizzazione per le chiavi CMEK.

Passaggi successivi