Questa pagina descrive come criptare i dati archiviati in istanze AML AI con chiavi di crittografia gestite dal cliente (CMEK).
Panoramica
Tutti i dati dei clienti in un'istanza AML AI vengono criptati utilizzando una chiave CMEK quando sono archiviati at-rest. Puoi gestire la chiave all'interno di Cloud Key Management Service e controllare l'accesso alla chiave utilizzando Identity and Access Management. Se disabiliti temporaneamente o elimini in modo definitivo la chiave CMEK, non sarà possibile accedere ai dati criptati con quella chiave.
CMEK consente di controllare più aspetti del ciclo di vita e della gestione delle chiavi, ma comporta anche costi aggiuntivi per il servizio Cloud KMS.
Cloud KMS può essere eseguito nello stesso progetto Google Cloud di AML AI o in un progetto separato in cui puoi gestire centralmente le chiavi per più progetti.
Assegni una chiave CMEK quando crei un'istanza. Tutte le istanze devono essere configurate utilizzando CMEK e non possono essere modificate per utilizzare la crittografia predefinita di Google.
Per ulteriori informazioni su CMEK in generale, incluso quando e perché abilitarla, consulta la documentazione di Cloud KMS.
Dati del cliente
Tutti i dati dei clienti gestiti da AML AI vengono criptati at-rest utilizzando la chiave CMEK specificata nella risorsa Istanza padre corrispondente. Ciò include tutti i dati dei clienti associati alle risorse IA AML, come set di dati, configurazioni di motori, modelli e altro ancora. Tutta l'archiviazione temporanea e permanente dei dati dei clienti, comprese le copie di input e output, le funzionalità ML generate, i log, gli iperparametri del modello, i pesi del modello e i risultati delle previsioni, vengono criptati utilizzando la chiave CMEK dell'istanza corrispondente.
AML AI non gestisce la crittografia dei dati di input o di output nel progetto Google Cloud. Se vuoi che questi dati vengano criptati, devi configurare una chiave CMEK separata nel progetto Google Cloud. La chiave KMS specificata in un'istanza viene utilizzata per le risorse AML AI e i relativi dati.
Creazione di una chiave e concessione delle autorizzazioni
Le seguenti istruzioni spiegano come creare una chiave per un'istanza e concedere le autorizzazioni per criptare e decriptare i dati dell'istanza 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 progetto Google Cloud in cui vuoi gestire le chiavi:
Crea un keyring utilizzando il metodo
projects.locations.keyRings.create
. La località del keyring di Cloud KMS deve corrispondere alla località dell'istanza che cripti.REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
KMS_PROJECT_ID
: l'ID progetto Google Cloud del progetto contenente il keyringLOCATION
: la posizione del keyring; utilizza una delle regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: un identificatore definito dall'utente per il keyring
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID", "createTime": CREATE_TIME }
gcloud
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
LOCATION
: la posizione del keyring; utilizza una delle regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: un identificatore definito dall'utente per il keyring
Esegui questo seguente comando:
Linux, macOS o Cloud Shell
gcloud kms keyrings create KEY_RING_ID \ --location LOCATION
Windows (PowerShell)
gcloud kms keyrings create KEY_RING_ID ` --location LOCATION
Windows (cmd.exe)
gcloud kms keyrings create KEY_RING_ID ^ --location LOCATION
$
Crea una chiave utilizzando il metodo
projects.locations.keyRings.cryptoKeys
.REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
KMS_PROJECT_ID
: l'ID progetto Google Cloud del progetto contenente il keyringLOCATION
: la posizione del keyring; utilizza una delle regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: identificatore definito dall'utente per il keyringKEY_ID
: un identificatore definito dall'utente per la chiave
Corpo JSON della richiesta:
{ "purpose": "ENCRYPT_DECRYPT" }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:cat > request.json << 'EOF' { "purpose": "ENCRYPT_DECRYPT" } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "purpose": "ENCRYPT_DECRYPT" } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID", "primary": { "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID/cryptoKeyVersions/1", "state": "ENABLED", "createTime": CREATE_TIME, "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "generateTime": GENERATE_TIME }, "purpose": "ENCRYPT_DECRYPT", "createTime": CREATE_TIME, "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "destroyScheduledDuration": "86400s" }
gcloud
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
LOCATION
: la posizione del keyring; utilizza una delle regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: identificatore definito dall'utente per il keyringKEY_ID
: un identificatore definito dall'utente per la chiave
Esegui questo seguente comando:
Linux, macOS o Cloud Shell
gcloud kms keys create KEY_ID \ --keyring KEY_RING_ID \ --location LOCATION \ --purpose "encryption"
Windows (PowerShell)
gcloud kms keys create KEY_ID ` --keyring KEY_RING_ID ` --location LOCATION ` --purpose "encryption"
Windows (cmd.exe)
gcloud kms keys create KEY_ID ^ --keyring KEY_RING_ID ^ --location LOCATION ^ --purpose "encryption"
$
Se non hai creato un'istanza AML AI nel progetto AML AI, l'account di servizio AML AI non esiste ancora. Crea il service account.
Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto Google Cloud per il progetto in cui è in esecuzione AML AI
Esegui questo seguente comando:
Linux, macOS o Cloud Shell
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Windows (PowerShell)
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Dovresti ricevere una risposta simile alla seguente:
Service identity created: service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com
Concedi il ruolo IAM Autore crittografia/decrittografia CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) all'account di servizio AML AI. Concedi questa autorizzazione sulla chiave che hai creato.Prima di utilizzare qualsiasi dato di comando riportato di seguito, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto Google Cloud per il progetto in cui è in esecuzione AML AIKEY_ID
: identificatore definito dall'utente per la chiaveLOCATION
: la posizione del keyring; utilizza una delle regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: un identificatore definito dall'utente per il keyringPROJECT_NUMBER
: il numero di progetto Google Cloud per il progetto in cui è in esecuzione AML AI
Esegui questo seguente comando:
Linux, macOS o Cloud Shell
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID \ --location LOCATION --keyring=KEY_RING_ID \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Windows (PowerShell)
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ` --location LOCATION --keyring=KEY_RING_ID ` --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ` --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Windows (cmd.exe)
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ^ --location LOCATION --keyring=KEY_RING_ID ^ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ^ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for key KEY_ID. bindings: - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwYCq0Sq4Ho= version: 1
Per ulteriori informazioni su questo comando, consulta la documentazione gcloud kms keys add-iam-policy-binding.
Ora puoi creare un'istanza e specificare la chiave da utilizzare per la crittografia.
Rimozione dell'accesso in corso...
Esistono diversi modi per rimuovere l'accesso a un'istanza criptata con CMEK:
- Revoca il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS dall'account di servizio AML AI utilizzando la console Google Cloud o l'interfaccia a riga di comando gcloud
- Disattiva temporaneamente la chiave CMEK
- Elimina definitivamente la chiave CMEK
Ti consigliamo di revocare le autorizzazioni dall'account di servizio AML AI prima di disabilitare o eliminare una chiave. Le modifiche alle autorizzazioni vengono propagate in pochi secondi, per consentirti di osservare gli effetti della disabilitazione o dell'eliminazione di una chiave.
Quando disabiliti o elimini la chiave di crittografia per un'istanza, perdi la possibilità di visualizzare o recuperare i dati dell'istanza. Tutti i dati archiviati nell'istanza diventano inaccessibili, comprese le risorse API come set di dati, modelli, configurazioni del motore, risultati di backtest e risultati delle previsioni. Gli utenti con il ruolo Visualizzatore AML AI possono comunque visualizzare i metadati dell'istanza, come il nome dell'istanza.
Gli utenti con il ruolo Amministratore o Proprietario AML AI possono eliminare l'istanza.
Criteri dell'organizzazione CMEK
AML AI non supporta i criteri dell'organizzazione CMEK. Tuttavia,
AML AI richiede sempre l'utilizzo di CMEK, indipendentemente dal
criterio dell'organizzazione constraints/gcp.restrictNonCmekServices
.
Che cosa succede dopo?
- Crea un'istanza
- Scopri di più su CMEK
- Scopri di più sulla crittografia predefinita di Google