Per impostazione predefinita, Google Cloud cripta automaticamente i dati in stato at-rest utilizzando chiavi di crittografia gestite da Google. Se hai requisiti specifici di conformità o normativi relativi alle chiavi che proteggono i tuoi dati, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) per i tuoi job di addestramento.
Puoi scoprire di più sui vantaggi specifici dell'utilizzo di CMEK con AI Platform Training nella sezione seguente di questa guida. Per saperne di più su CMEK in generale, incluso quando e perché attivarlo, consulta la documentazione di Cloud Key Management Service.
Questa guida descrive alcuni vantaggi dell'utilizzo di CMEK per AI Platform Training e illustra come configurare un job di addestramento per l'utilizzo di CMEK.
Informazioni su CMEK per AI Platform Training
Le sezioni seguenti descrivono le informazioni di base su CMEK per AI Platform Training che devi conoscere prima di configurare CMEK per i tuoi job di addestramento.
Vantaggi di CMEK
In generale, CMEK è più utile se hai bisogno del controllo completo sulle chiavi utilizzate per criptare i tuoi dati. Con CMEK, puoi gestire le tue chiavi in Cloud KMS. Ad esempio, puoi ruotare o disattivare una chiave oppure impostare una pianificazione di rotazione utilizzando l'API Cloud KMS. Per ulteriori informazioni su CMEK in generale, incluso quando e perché attivarlo, consulta la documentazione di Cloud KMS.
Quando esegui un job di addestramento, il codice viene eseguito su una o più istanze di macchine virtuali (VM) gestite da AI Platform Training. Quando attivi la funzionalità CMEK per AI Platform Training, la chiave che designi, anziché una chiave gestita da Google, viene utilizzata per criptare i dati sui dischi di avvio di queste VM. La chiave CMEK cripta i seguenti tipi di dati:
- La copia del codice di addestramento sulle VM.
- Tutti i dati caricati dal codice di addestramento.
- Eventuali dati temporanei salvati sul disco locale dal codice di addestramento.
La chiave CMEK non cripta i metadati associati al job di addestramento, come il nome e la regione del job. I metadati associati ai job di addestramento sono sempre criptati utilizzando il meccanismo di crittografia predefinito di Google.
Utilizzo di CMEK con altri prodotti Google Cloud
La configurazione di CMEK per AI Platform Training non configura automaticamente CMEK per altri prodotti Google Cloud che utilizzi insieme ad AI Platform Training. Per utilizzare CMEK per criptare i dati in altri prodotti Google Cloud, è necessaria una configurazione aggiuntiva. Ad esempio:
Cloud Storage: quando esegui un job di container non personalizzato, AI Platform Training carica la tua applicazione di addestramento da un bucket Cloud Storage. Inoltre, la maggior parte dei job di addestramento esporta anche gli artefatti dei modelli addestrati (ad esempio una directory SaveModel di TensorFlow) in un bucket Cloud Storage nell'ambito del proprio output.
Per assicurarti che i tuoi dati in Cloud Storage siano criptati con CMEK, consulta la guida di Cloud Storage all'utilizzo delle chiavi di crittografia gestite dal cliente. Puoi impostare la chiave di crittografia come chiave predefinita per i bucket Cloud Storage che utilizzi con AI Platform Training oppure puoi utilizzarla per criptare oggetti specifici.
Container Registry: quando esegui un job con container personalizzato, AI Platform Training carica l'immagine del container da Container Registry.
Per assicurarti che l'immagine del contenitore sia criptata con CMEK, leggi la guida di Container Registry sull'utilizzo delle chiavi di crittografia gestite dal cliente.
Cloud Logging: quando esegui un job di addestramento, AI Platform Training salva i log in Logging. Questi log non sono criptati con CMEK. Tuttavia, se utilizzi Logs Router, puoi configurare CMEK per determinati file temporanei creati da Logs Router.
Limitazioni
Non puoi utilizzare CMEK con AI Platform Training nelle seguenti situazioni:
- Non puoi utilizzare CMEK con i job di addestramento che utilizzano le TPU.
- Se hai iniziato a utilizzare l'API AI Platform Training e Prediction nel 2017 o prima e invii un job di addestramento con CMEK, potresti riscontrare un errore che descrive un meccanismo di autenticazione precedente incompatibile. In questo caso, crea un nuovo progetto Google Cloud o seleziona un progetto diverso per eseguire il job di AI Platform Training.
Configurazione di CMEK per il job di addestramento
Le sezioni seguenti descrivono come creare un portachiavi e una chiave in Cloud Key Management Service, concedere le autorizzazioni di crittografia e decrittografia di AI Platform Training per la chiave e creare un job di addestramento che utilizza la chiave CMEK.
Prima di iniziare
Questa guida presuppone che tu utilizzi due progetti Google Cloud separati per configurare CMEK per l'addestramento:
- Un progetto per la gestione della chiave di crittografia (indicata come "progetto Cloud KMS").
- Un progetto per accedere ad AI Platform Training, gestire i dati di addestramento o l'output in Cloud Storage e interagire con qualsiasi altro prodotto Google Cloud di cui hai bisogno per il tuo caso d'uso (chiamato "progetto AI Platform").
Questa configurazione consigliata supporta una separazione dei compiti.
In alternativa, puoi utilizzare un unico progetto Google Cloud per l'intera guida. A tale scopo, utilizza lo stesso progetto per tutte le attività seguenti che fanno riferimento al progetto Cloud KMS e alle attività che fanno riferimento al progetto Cloud AI Platform.
Configurazione del progetto Cloud KMS
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud KMS API.
Configurazione del progetto AI Platform
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction API.
Configurazione di Google Cloud CLI
gcloud CLI è obbligatoria per alcuni passaggi di questa guida e facoltativa per altri.Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Creazione di una chiave automatizzata e una chiave
Segui la guida di Cloud KMS per la creazione di chiavi simmetriche per creare un keyring e una chiave. Quando crei il tuo portachiavi, specifica una regione che supporta AI Platform Training come posizione del portachiavi. AI Platform Training supporta CMEK solo quando il job di addestramento e la chiave utilizzano la stessa regione. Non devi specificare una località con due regioni, più regioni o globale per il tuo keyring.
Assicurati di creare il keyring e la chiave nel progetto Cloud KMS.
Concedere le autorizzazioni di AI Platform Training
Per utilizzare CMEK per il tuo job di addestramento, devi concedere all'autorizzazione di AI Platform Training la possibilità di criptare e decriptare i dati utilizzando la tua chiave. AI Platform Training utilizza un agente di servizio per eseguire i job di addestramento. Questo agente di servizio è identificato da un indirizzo email con il seguente formato:
service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
Per trovare l'agente di servizio appropriato per il tuo progetto AI Platform, vai alla pagina IAM nella console Google Cloud e individua il membro che corrisponde a questo formato di indirizzo email, con il numero di progetto del tuo progetto AI Platform che sostituisce la variabile AI_PLATFORM_PROJECT_NUMBER. L'agente di servizio ha anche il nome Google Cloud ML Engine Service Agent
.
Prendi nota dell'indirizzo email di questo agente di servizio e utilizzalo nei passaggi seguenti per concedergli l'autorizzazione a criptare e decriptare i dati utilizzando la tua chiave. Puoi concedere l'autorizzazione utilizzando la console Google Cloud o Google Cloud CLI:
Console Google Cloud
Nella console Google Cloud, vai alla pagina Chiavi crittografiche e seleziona il tuo progetto Cloud KMS.
Fai clic sul nome del keyring che hai creato in una sezione precedente di questa guida per andare alla pagina Dettagli keyring.
Seleziona la casella di controllo per la chiave che hai creato in una sezione precedente di questa guida. Se un riquadro informazioni etichettato con il nome della chiave non è già aperto, fai clic su Mostra riquadro informazioni.
Nel riquadro delle informazioni, fai clic su
Aggiungi membro per aprire la finestra di dialogo Aggiungi membri a "KEY_NAME". In questa finestra di dialogo, procedi nel seguente modo:- Nella casella Nuovi membri, inserisci l'indirizzo email dell'account di servizio che hai annotato nella sezione precedente:
service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
Nell'elenco a discesa Seleziona un ruolo, fai clic su Cloud KMS e poi seleziona il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS.
Fai clic su Salva.
- Nella casella Nuovi membri, inserisci l'indirizzo email dell'account di servizio che hai annotato nella sezione precedente:
gcloud
Esegui questo comando:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--keyring=KEY_RING_NAME \
--location=REGION \
--project=KMS_PROJECT_ID \
--member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
In questo comando, sostituisci i seguenti segnaposto:
- KEY_NAME: il nome della chiave creata in una sezione precedente di questa guida.
- KEY_RING_NAME: il portachiavi che hai creato in una sezione precedente di questa guida.
- REGION: la regione in cui hai creato la chiave automatizzata.
- KMS_PROJECT_ID: l'ID del tuo progetto Cloud KMS.
- AI_PLATFORM_PROJECT_NUMBER: il numero del progetto AI Platform, che hai annotato nella sezione precedente come parte di un indirizzo email dell'account di servizio.
Creazione di un job di addestramento con CMEK
Ora che hai concesso ad AI Platform Training l'autorizzazione a criptare e decriptare i dati utilizzando la tua chiave, puoi creare un job di addestramento che cripta i dati temporanei utilizzando questa chiave. Quando crei un job di addestramento, specifica il campo encryptionConfig
nel campo trainingInput
del job.
Il seguente esempio mostra come eseguire questa operazione utilizzando gcloud CLI. Al momento non puoi creare un job di addestramento con CMEK nella console Google Cloud.
L'esempio presuppone che tu abbia un'applicazione di addestramento nel file system locale in una directory denominata trainer
con un modulo denominato task
.
Crea un file di configurazione
config.yaml
contenente quanto segue:trainingInput: encryptionConfig: kmsKeyName: projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Nel file di configurazione, sostituisci i seguenti segnaposto:
- KMS_PROJECT_ID: l'ID del tuo progetto Cloud KMS.
- KEY_RING_NAME: il nome del tuo mazzo di chiavi.
- KEY_NAME: il nome della chiave.
Per creare il job di addestramento, esegui il seguente comando:
gcloud ai-platform jobs submit training JOB_ID \ --config=config.yaml \ --job-dir=JOB_DIR \ --module-name=trainer.task \ --package-path=trainer \ --python-version=3.7 \ --region=REGION \ --runtime-version=2.11 \ --scale-tier=basic
In questo comando, sostituisci i seguenti segnaposto:
- JOB_ID: un nome scelto per il job.
JOB_DIR: un percorso a una directory Cloud Storage in cui caricare l'applicazione di addestramento. Il job di addestramento può utilizzare questa directory anche durante l'addestramento, ad esempio per salvare l'output. Per comodità, scegli una directory in un bucket Cloud Storage nel tuo progetto AI Platform.
REGION: la regione in cui hai creato il tuo portachiavi e dove prevedi di creare il job di addestramento.
In caso di esito positivo, il comando produce il seguente output:
Job [JOB_ID] submitted successfully. Your job is still active. You may view the status of your job with the command $ gcloud ai-platform jobs describe JOB_ID or continue streaming the logs with the command $ gcloud ai-platform jobs stream-logs JOB_ID jobId: JOB_ID state: QUEUED
Ora puoi monitorare il job di addestramento.
Oltre ai campi region
e encryptionConfig
, puoi personalizzare la configurazione del job di addestramento in base alle tue esigenze. Puoi persino utilizzare un container personalizzato per l'addestramento.
Passaggi successivi
- Scopri di più su CMEK su Google Cloud.
- Scopri come utilizzare CMEK con altri prodotti Google Cloud.
- Per scoprire come configurare opzioni aggiuntive oltre a CMEK, leggi la guida all'esecuzione di un job di addestramento.