Questa pagina descrive come criptare i dati archiviati in AML AI con chiavi di crittografia gestite dal cliente (CMEK).
Panoramica
Tutti i dati dei clienti in un'istanza AML AI sono criptati at-rest usando una chiave CMEK. Puoi gestire la chiave all'interno di Cloud Key Management Service (Cloud KMS), e puoi controllare l'accesso alla chiave con Identity and Access Management. Se disattivi temporaneamente o distruggi definitivamente la chiave CMEK, non potrai accedere ai dati criptati con quella chiave.
AML AI supporta solo CMEK utilizzando Cloud KMS. Non supporta la crittografia predefinita di Google.
CMEK ti consente di controllare più aspetti del ciclo di vita e di gestire chiavi, ma comporta anche costi aggiuntivi per servizio Cloud KMS.
Cloud KMS può essere eseguito nello stesso progetto Google Cloud di AML AI o in un progetto separato in cui gestisci centralmente le chiavi per più progetti.
La configurazione della crittografia viene impostata quando crei un'istanza. Dopo aver creato un'istanza, non puoi e assegnare una chiave Cloud KMS diversa. Puoi comunque ruotare la chiave.
Per ulteriori informazioni su CMEK in generale, vedi le Documentazione di Cloud KMS.
Livelli di protezione
Cloud KMS ti consente di scegliere tra una serie di diversi livelli di protezione, tra cui:
- Chiavi software
- Moduli di sicurezza hardware (HSM) che utilizzano Cloud HSM
Scopri come configurare CMEK nell'AI AML. Non tutti i livelli di protezione sono disponibili in tutte le regioni. Tieni presente che AML AI non supporta le chiavi di crittografia fornite dal cliente (CSEK) o Cloud External Key Manager.
Dati del cliente
Tutti i Dati dei clienti trattati da AML AI viene criptato at-rest utilizzando la chiave CMEK specificata nella Istanza padre corrispondente risorsa. Sono inclusi tutti i dati dei clienti associati alle risorse AML AI, come set di dati, configurazioni del motore, modelli e altro ancora. Tutti i contenuti temporanei l'archiviazione permanente dei Dati dei clienti, incluse copie di input e output, caratteristiche ML generate, iperparametri del modello, pesi del modello e previsione vengono criptati usando la chiave CMEK dell'istanza corrispondente.
Consulta i termini specifici del servizio per la definizione dei dati dei clienti, che potrebbero non includere identificatori delle risorse, attributi o altre etichette dei dati.
Crittografia dei dati di input e output
La configurazione della crittografia AML AI in un'istanza viene utilizzata solo per le risorse di IA AML e i relativi dati. IA AML non gestisce la crittografia dei dati di input o di output in Google Cloud progetto. Se vuoi che questi dati vengano criptati utilizzando CMEK, devi configurare una chiave Cloud KMS in modo che corrisponda al livello di protezione della chiave scelto configurato nel set di dati BigQuery. Puoi anche riutilizzare la stessa chiave utilizzata dall'AI AML.
Scopri di più sulla crittografia in BigQuery.
Rotazione chiave
La rotazione periodica e automatica delle chiavi è una pratica di sicurezza consigliata. Con CMEK, sei tu a controllare rotazione della chiave. Quando ruoti una chiave, i dati criptati con le versioni precedenti della chiave non vengono criptati di nuovo automaticamente con la nuova versione della chiave.
Una singola risorsa AML AI può essere archiviata internamente unità. Se, durante la durata di una risorsa AML AI, la chiave ruotata, non tutte le unità possono essere criptate con la stessa versione della chiave.
Se ruoti una chiave, AML AI non ha modo di forzare o per determinare se è possibile eliminare in sicurezza le versioni precedenti della chiave.
Scopri di più sulla rotazione delle chiavi con Cloud KMS.
Creazione di una chiave e concessione delle autorizzazioni
Le seguenti istruzioni spiegano come creare una chiave per un'istanza e concedere autorizzazioni per criptare e decriptare i dati dell'istanza con la chiave. Puoi usare una chiave vengono create direttamente in Cloud KMS o in una chiave gestita esternamente, rendi disponibile con Cloud External Key Manager.
Nel progetto Google Cloud in cui vuoi gestire le chiavi:
Crea un keyring utilizzando
projects.locations.keyRings.create
. La posizione della raccolta di chiavi Cloud KMS deve corrispondere alla posizione dell'istanza che cripti.REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
KMS_PROJECT_ID
: il progetto Google Cloud ID per il progetto contenente il keyringLOCATION
: la posizione del keyring; usa uno dei 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 parametro key ring
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": "2023-03-14T15:52:55.358979323Z" }
gcloud
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
KMS_PROJECT_ID
: il progetto Google Cloud ID per il progetto contenente il keyringLOCATION
: la posizione del keyring; usa uno dei 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 la persone che seguo :
Linux, macOS o Cloud Shell
gcloud kms keyrings create KEY_RING_ID \ --project KMS_PROJECT_ID --location LOCATION
Windows (PowerShell)
gcloud kms keyrings create KEY_RING_ID ` --project KMS_PROJECT_ID --location LOCATION
Windows (cmd.exe)
gcloud kms keyrings create KEY_RING_ID ^ --project KMS_PROJECT_ID --location LOCATION
$
Crea una chiave utilizzando il metodo
projects.locations.keyRings.cryptoKeys
.REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
KMS_PROJECT_ID
: il progetto Google Cloud ID per il progetto contenente il keyringLOCATION
: la posizione del keyring; usa uno dei regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: l'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 corrente: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 corrente:@' { "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": "2023-03-14T15:52:55.358979323Z", "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "generateTime": "2023-03-14T15:52:55.358979323Z" }, "purpose": "ENCRYPT_DECRYPT", "createTime": "2023-03-14T15:52:55.358979323Z", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "destroyScheduledDuration": "86400s" }
gcloud
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
KMS_PROJECT_ID
: il progetto Google Cloud ID per il progetto contenente il keyringLOCATION
: la posizione del keyring; usa uno dei regioni supportateMostra localitàus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: l'identificatore definito dall'utente per il keyringKEY_ID
: un identificatore definito dall'utente per la chiave
Esegui la persone che seguo :
Linux, macOS o Cloud Shell
gcloud kms keys create KEY_ID \ --keyring KEY_RING_ID \ --project KMS_PROJECT_ID \ --location LOCATION \ --purpose "encryption"
Windows (PowerShell)
gcloud kms keys create KEY_ID ` --keyring KEY_RING_ID ` --project KMS_PROJECT_ID ` --location LOCATION ` --purpose "encryption"
Windows (cmd.exe)
gcloud kms keys create KEY_ID ^ --keyring KEY_RING_ID ^ --project KMS_PROJECT_ID ^ --location LOCATION ^ --purpose "encryption"
$
Se non hai creato un'istanza AML AI in progetto AML AI, poi il servizio AML AI L'account non esiste ancora. Crea il service account.
Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID progetto Google Cloud del progetto in cui è in esecuzione l'AI AML
Esegui la persone che seguo :
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 Ruolo IAM Autore crittografia/decrittografia CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ad AML AI l'account di servizio. Concedi questa autorizzazione alla chiave che hai creato.Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
PROJECT_ID
: il progetto Google Cloud ID per il progetto in cui è in esecuzione AML AIKEY_ID
: l'identificatore definito dall'utente per la chiaveLOCATION
: la posizione del keyring; usa uno dei regioni supportateSedi dei negozius-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 parametro key ringPROJECT_NUMBER
: Google Cloud numero progetto del progetto in cui viene eseguito AML AI
Esegui il 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 gcloud kms keys add-iam-policy-binding documentazione.
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 alla chiave dall'istanza criptata con CMEK:
- Revoca il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS dall'account di servizio AI AML utilizzando la console Google Cloud o gcloud CLI.
- Disattiva temporaneamente la chiave CMEK
- Distruggi definitivamente la chiave CMEK
Ti consigliamo di revocare le autorizzazioni dall'account di servizio AML AI prima di disattivare o distruggere una chiave. Le modifiche alle autorizzazioni sono vengono propagate in pochi secondi, per permetterti di osservare l'impatto della disattivazione l'eliminazione di una chiave.
Quando disabiliti o elimini la chiave di crittografia per un'istanza, perderai il valore di utilizzare o recuperare i dati dei clienti associati all'istanza. Tutti i dati dei clienti archiviati nell'istanza diventano inaccessibili, inclusi modelli, configurazioni dell'engine, risultati del backtest e risultati di previsione. Gli utenti con qualsiasi ruolo di visualizzatore dell'IA AML possono comunque visualizzare campi come il nome dell'istanza o gli altri campi delle risorse restituiti dalla retrieving risorse di IA AML.
Eventuali operazioni che utilizzano o esportano i dati dei clienti, ad esempio l'esportazione
backtestResults
dei metadati, non andranno a buon fine.
Gli utenti con il ruolo di amministratore dell'IA AML o il ruolo Proprietario possono eliminare l'istanza.
Criteri dell'organizzazione CMEK
L'AI AML non supporta
i criteri dell'organizzazione CMEK. Tuttavia,
l'AI AML richiede sempre l'utilizzo di CMEK, indipendentemente dal
constraints/gcp.restrictNonCmekServices
criterio dell'organizzazione.
Interazione con VPC-SC
Se hai configurato AML AI all'interno di un perimetro VPC-SC, La chiave CMEK deve essere ancora accessibile all'account di servizio. Se la chiave non è all'interno dello stesso perimetro VPC-SC, esistono vari modi per farlo, tra cui:
- Utilizza una regola in uscita per inserire la risorsa nella lista consentita
- Utilizzare il peering del perimetro VPC
Passaggi successivi
- Crea un'istanza
- Scopri di più su CMEK