Cripta i dati utilizzando chiavi di crittografia gestite dal cliente (CMEK)

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.

  1. Nel progetto Google Cloud in cui vuoi gestire le chiavi:

    1. Abilita l'API Cloud KMS.

    2. 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 keyring
      • LOCATION: la posizione del keyring; usa uno dei regioni supportate
        Mostra 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 Content

      Dovresti 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 keyring
      • LOCATION: la posizione del keyring; usa uno dei regioni supportate
        Mostra 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
      
      Dovresti ricevere una risposta vuota:
      $

    3. 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 keyring
      • LOCATION: la posizione del keyring; usa uno dei regioni supportate
        Mostra 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 ring
      • KEY_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 Content

      Dovresti 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 keyring
      • LOCATION: la posizione del keyring; usa uno dei regioni supportate
        Mostra 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 ring
      • KEY_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"
      
      Dovresti ricevere una risposta vuota:
      $

  2. 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

  3. 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 AI
    • KEY_ID: identificatore definito dall'utente per la chiave
    • LOCATION: la posizione del keyring; usa uno dei regioni supportate
      Mostra 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
    • PROJECT_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:

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