Proteggi i tuoi dati con CMEK (1ª generazione)
Puoi utilizzare Cloud Key Management Service chiavi di crittografia gestite dal cliente (CMEK) per proteggere Funzioni di Cloud Run e relative dati at-rest. Queste chiavi sono create e gestite tramite Cloud KMS e archiviate come chiavi software, in un cluster HSM oppure esternamente.
Il deployment di una funzione con una chiave CMEK protegge i dati associati utilizzando una chiave di crittografia sotto il tuo controllo totale. Questo tipo di crittografia consente soddisfare i requisiti di conformità in alcuni settori, ad esempio i servizi di machine learning. Poiché la chiave è di tua proprietà e non è controllata da Google, nessuno (incluso te) può accedere ai dati protetti da queste chiavi di crittografia quando le chiavi sono disattivate o distrutte.
I seguenti tipi di dati delle funzioni Cloud Run vengono criptati quando si utilizza una chiave CMEK:
- Codice sorgente della funzione caricato per il deployment e archiviato da Google in Cloud Storage, utilizzato nel processo di compilazione.
- I risultati del processo di compilazione della funzione, tra cui:
- L'immagine container creata dal codice sorgente della funzione.
- Ogni istanza della funzione di cui viene eseguito il deployment.
- Dati a riposo per i canali di trasporto degli eventi interni.
Il processo di compilazione della funzione stessa è protetto da una chiave temporanea generata in modo univoco per ogni compilazione. Consulta: Conformità CMEK in Cloud Build per ulteriori informazioni informazioni. Inoltre, tieni presente quanto segue:
Metadati dei file, ad esempio percorsi del file system o timestamp delle modifiche non è criptato.
Se una chiave viene disabilitata, non è possibile eseguire il deployment dell'immagine container e di istanze gestite non possono essere avviate.
La protezione CMEK delle funzioni di Cloud Run si applica solo alle le risorse delle funzioni Cloud Run; sei responsabile della protezione dei dati risorse gestite da te, come i tuoi repository di codice sorgente o qualsiasi usati dalle tue funzioni.
La configurazione di CMEK per le funzioni Cloud Run comporta quanto segue:
Concessione dell'accesso alla chiave agli account di servizio necessari:
- Per tutte le funzioni, devi concedere alle funzioni Cloud Run, agli account di servizio Artifact Registry e Cloud Storage l'accesso alla chiave.
Creazione di un repository Artifact Registry protetto da CMEK per archiviare il tuo le immagini delle funzioni.
Attivare CMEK nella funzione.
Se vuoi, attiva i criteri dell'organizzazione CMEK per obbligare tutte le nuove funzioni a essere conformi a CMEK.
Questi passaggi sono descritti più dettagliatamente di seguito.
Prima di iniziare
Crea una chiave a singola regione da utilizzare per criptare le tue funzioni. Per scoprire come per creare una chiave, consulta Creazione di chiavi di crittografia simmetriche.
Crea un repository Artifact Registry con CMEK abilitato. Devi utilizzare la stessa chiave per il repository Artifact Registry che utilizzi per attivare la CMEK per una funzione.
Concessione dell'accesso alla chiave agli account di servizio
Per tutte le funzioni, devi concedere alla chiave l'accesso ai seguenti account di servizio:
Agente di servizio funzioni Cloud Run (
service-PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
)Agente di servizio Artifact Registry (
service-PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
)Agente di servizio Cloud Storage (
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
)
Per concedere a questi account di servizio l'accesso alla chiave, aggiungi ogni account di servizio come entità della chiave e poi concedi all'account di servizio il ruolo Cloud KMS CryptoKey Encrypter/Decrypter
:
Console
Vai alla pagina Cloud Key Management Service nella console Google Cloud:
Vai alla pagina di Cloud KMSFai clic sul nome del keyring che contiene la chiave scelta.
Fai clic sul nome della chiave per visualizzarne i dettagli.
Nella scheda Autorizzazioni, fai clic su Concedi l'accesso.
Nel campo Nuove entità, inserisci gli indirizzi email di tutte e tre le entità account di servizio mostrati in precedenza per assegnare le autorizzazioni a tutti e tre gli account contemporaneamente.
Nel menu a discesa Seleziona un ruolo, seleziona Cloud KMS CryptoKey Encrypter/Decrypter.
Fai clic su Salva.
gcloud
Per ogni account di servizio discusso in precedenza, esegui il seguente comando:
gcloud kms keys add-iam-policy-binding KEY \ --keyring KEY_RING \ --location LOCATION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Sostituisci quanto segue:
KEY
: il nome della chiave. Ad esempio,my-key
.KEY_RING
: il nome del keyring. Ad esempio,my-keyring
.LOCATION
: la posizione della chiave. Ad esempio:us-central1
.SERVICE_AGENT_EMAIL
: l'indirizzo email dell'account servizio.
Abilitazione di CMEK per funzione
Dopo aver configurato un repository Artifact Registry con CMEK abilitato e aver concesso alle funzioni Cloud Run l'accesso alla chiave, puoi abilitare CMEK per la tua funzione.
Per abilitare CMEK per una funzione:
Console
Vai alla pagina Funzioni Cloud Run nella console Google Cloud:
Vai alla pagina Funzioni Cloud RunFai clic sul nome della funzione per la quale vuoi attivare CMEK.
Fai clic su Modifica.
Fai clic su Runtime, build… per espandere le opzioni di configurazione avanzata.
Seleziona la scheda Repository per sicurezza e immagini.
Nella sezione Crittografia, seleziona Chiave di crittografia gestita dal cliente (CMEK).
Seleziona la chiave scelta dal menu a discesa.
In Posizione del contenitore, seleziona Artifact Registry gestito dal cliente.
Nell'elenco a discesa Artifact Registry (Artifact Registry), seleziona il repository protetto da CMEK.
Fai clic su Avanti.
Fai clic su Esegui il deployment.
gcloud
Esegui questo comando.
gcloud functions deploy FUNCTION \ --no-gen2 \ --kms-key=KEY \ --docker-repository=REPOSITORY \ --source=YOUR_SOURCE_LOCATION FLAGS...
Sostituisci quanto segue:
FUNCTION
: il nome della funzione per abilitare CMEK attiva. Ad esempio,cmek-function
.KEY
: il nome completo della chiave, nel seguente formato:projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
.REPOSITORY
: il nome del repository Artifact Registry completamente qualificato, nel seguente formato:projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY
.YOUR_SOURCE_LOCATION
: quando attivi CMEK per un funzione preesistenti, assicurati che il codice sorgente desiderato venga nuovamente eseguito il deployment specificando questo parametro in modo esplicito.FLAGS...
: flag aggiuntivi che potrebbero essere per il deployment della funzione, in particolare per la creazione dei deployment. Per i dettagli, vedi Esegui il deployment di una funzione Cloud Run.
CMEK è attivato per la funzione.
Tieni presente che Cloud Run Functions utilizza sempre la versione principale di una chiave per la protezione CMEK. Non puoi specificare una determinata versione della chiave da utilizzare durante l'abilitazione CMEK per le tue funzioni.
Se una chiave viene eliminata o disattivata o se le autorizzazioni richieste vengono revocate, le istanze attive delle funzioni protette da quella chiave non vengono arrestate. Le esecuzioni di funzioni già in corso continueranno a essere eseguite, ma quelle nuove avrà esito negativo finché le funzioni Cloud Run non hanno accesso alla chiave.
Test della protezione CMEK
Per verificare che la protezione CMEK funzioni, puoi disattivare la chiave utilizzata per attivare CMEK per una funzione, quindi provare ad attivarla:
Disattiva la chiave utilizzata per proteggere la funzione.
Prova a visualizzare il codice sorgente associato a questa funzione. Il tentativo dovrebbe non riuscire.
Prova a attivare la funzione protetta tramite CMEK. Il tentativo non dovrebbe andare a buon fine.
Dopo aver verificato che la protezione CMEK funziona, abilitare la chiave.
La protezione CMEK della funzione è stata confermata.
Passaggi successivi
- Scopri come ruotare i tasti.
- Scopri di più sulla crittografia predefinita di Google.
- Scopri di più su CMEK.
- Scopri di più sui criteri dell'organizzazione CMEK.