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 eliminare definitivamente la chiave CMEK, i dati criptati con quella chiave non possono essere o rifiutano le richieste in base all'organizzazione a cui si accede.
AML AI supporta solo CMEK utilizzando Cloud KMS. Non supporta Google Crittografia predefinita.
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 consente di scegliere tra diversi livelli di protezione, tra cui:
- Chiavi software
- Moduli di sicurezza hardware (HSM) che utilizzano Cloud HSM
Leggi come configurare CMEK in AML AI. Non tutte e 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 ad AML AI come set di dati, configurazioni di motori, 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 dei servizi per conoscere la definizione di Dati dei clienti, che potrebbero non includere identificatori di risorsa, attributi o altri etichette 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 da AML AI.
Scopri di più sulla crittografia in BigQuery.
Rotazione chiave
La rotazione periodica e automatica delle chiavi è una prassi di sicurezza consigliata. Con CMEK, sei tu a controllare rotazione della chiave. Quando ruoti una chiave, i dati con le versioni precedenti della chiave non viene ricriptata automaticamente con 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 del keyring di Cloud KMS deve corrispondere località di per l'istanza che cripti.REST
Prima di utilizzare i dati della richiesta, 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 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 uno qualsiasi dei dati di comando 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 parametro key ring
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
projects.locations.keyRings.cryptoKeys
.REST
Prima di utilizzare i dati della richiesta, 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 la key ringKEY_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 uno qualsiasi dei dati di comando 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 la key ringKEY_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
: il progetto Google Cloud ID per il progetto in cui è in esecuzione AML AI
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 sulla chiave che hai creato.Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:
PROJECT_ID
: il progetto Google Cloud ID per il progetto in cui è in esecuzione AML AIKEY_ID
: identificatore definito dall'utente per la chiaveLOCATION
: 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 ringPROJECT_NUMBER
: Google Cloud numero progetto del progetto in cui viene eseguito AML AI
Esegui la persone che seguo :
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 crea 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 strumento di crittografia/decrittografia CryptoKey Cloud KMS role dal Account di servizio AML AI utilizzando Console Google Cloud o il gcloud CLI
- Disattiva temporaneamente la chiave CMEK
- Elimina definitivamente la chiave CMEK
Ti consigliamo di revocare le autorizzazioni da AML AI l'account di servizio prima di disabilitare o eliminare 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, dei motori di ricerca, i risultati dei backtest e i risultati delle previsioni. Utenti con qualsiasi Il ruolo di visualizzatore AML AI può ancora visualizzare il nome dell'istanza o gli altri campi risorsa restituiti il recupero delle risorse AML AI.
Qualsiasi operazione che utilizza o esporta i dati dei clienti, ad esempio l'esportazione
backtestResults
metadati.
Utenti con il ruolo Amministratore AML AI o Proprietario può eliminare l'istanza.
Criteri dell'organizzazione CMEK
AML AI non supporta
Criteri dell'organizzazione CMEK. Tuttavia,
AML AI 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
- Usa il peering perimetrale VPC
Passaggi successivi
- Crea un'istanza
- Scopri di più su CMEK