Chiavi di crittografia gestite dal cliente

Per impostazione predefinita, AI Applications cripta i contenuti inattivi dei clienti. AI Applications gestisce la crittografia per conto tuo senza che tu debba fare altro. Questa opzione è denominata Crittografia predefinita di Google.

Se vuoi controllare le tue chiavi di crittografia, puoi utilizzare le chiavi di crittografia gestite dal cliente (CMEK) in Cloud KMS con servizi integrati con CMEK, tra cui AI Applications. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il livello di protezione, la posizione, la pianificazione della rotazione, l'utilizzo e le autorizzazioni di accesso e i limiti crittografici. L'utilizzo di Cloud KMS consente anche di monitorare l'utilizzo delle chiavi, visualizzare i log di controllo e controllare i cicli di vita delle chiavi. Anziché essere di proprietà di Google e gestite da Google, le chiavi di crittografia delle chiavi (KEK) simmetriche che proteggono i tuoi dati sono controllate e gestite da te in Cloud KMS.

Dopo aver configurato le risorse con le chiavi CMEK, l'esperienza di accesso alle risorse delle applicazioni di AI è simile all'utilizzo della crittografia predefinita di Google. Per saperne di più sulle opzioni di crittografia, consulta Chiavi di crittografia gestite dal cliente (CMEK).

Limitazioni di Cloud KMS nelle applicazioni AI

Si applicano le seguenti limitazioni alle chiavi CMEK (Cloud KMS) in AI Applications:

  • Le chiavi già applicate a un datastore non possono essere modificate.
  • Una volta registrata, una chiave non può essere annullata o rimossa da un datastorei.
  • Devi utilizzare app e data store multiregionali US o EU (non globali). Per saperne di più sulle multiregioni e sulla residenza dei dati, inclusi i limiti associati all'utilizzo di località non globali, consulta la sezione Località.
  • Se devi registrare più di una chiave per un progetto, contatta il team del tuo account Google per richiedere un aumento della quota per le configurazioni CMEK, fornendo una motivazione per cui hai bisogno di più di una chiave.

  • L'utilizzo di External Key Manager (EKM) con CMEK è disponibile a livello GA con la lista consentita. Per utilizzare EKM con CMEK, contatta il tuo team dell'account Google.

    Si applicano le seguenti limitazioni a EKM o HSM con CMEK:

    • La quota EKM e HSM per le chiamate di crittografia e decrittografia deve avere almeno 1000 QPM di margine. Per informazioni su come controllare le quote, consulta la sezione Controllare le quote di Cloud KMS.

    • Se utilizzi EKM, la chiave deve essere raggiungibile per più del 90% di qualsiasi finestra temporale più lunga di 30 secondi. Se la chiave non è raggiungibile per questo periodo di tempo, può influire negativamente sull'indicizzazione e sulla freschezza della ricerca.

    • Se si verificano problemi di fatturazione, problemi persistenti di superamento della quota o problemi persistenti di mancata raggiungibilità per più di 12 ore, il servizio disattiva automaticamente CmekConfig associato alla chiave EKM o HSM.

  • I datastore creati prima della registrazione di una chiave nel progetto non possono essere protetti dalla chiave.

  • Non puoi ottimizzare i modelli di ricerca per i datastore protetti da chiavi.

  • Per le app con più datastore, se un datastore utilizza una configurazione CMEK, anche tutti gli altri datastore devono utilizzare la stessa configurazione CMEK.

  • La rotazione delle chiavi non è supportata per le chiavi a una sola regione per i connettori di terze parti. Se disattivi o distruggi una versione della chiave che protegge un datastore associato a un connettore di terze parti, il connettore smette di funzionare.

  • La rotazione della chiave non è compatibile con Analytics. Se esegui la rotazione delle chiavi per un datastore, le app che lo utilizzano non mostrano più le analisi.

  • Non puoi utilizzare Terraform per configurare CMEK per le applicazioni AI.

Informazioni sulle chiavi per singola regione per i connettori di terze parti

Se utilizzi connettori di terze parti e vuoi utilizzare le tue chiavi per proteggere i dati connessi, devi creare tre chiavi supplementari a singola regione oltre alla chiave multiregionale. I comandi per la creazione delle chiavi sono riportati nella procedura seguente, Registra la chiave Cloud KMS.

Le chiavi singole devono essere create per le seguenti regioni:

Più regioni Regioni singole
eu europe-west1 europe-west4 europe-north1
us us-east1 us-central1 us-west1

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Crea una chiave Cloud KMS simmetrica multiregionale. Consulta Creare un keyring e Creare una chiave nella documentazione di Cloud KMS.

    • Imposta il periodo di rotazione su Mai (rotazione manuale).

    • In Località, seleziona Più regioni e poi europe o us dal menu a discesa.

  • Il ruolo IAM Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) per la chiave è stato concesso all'agente di servizio Discovery Engine. L'account agente di servizio ha un indirizzo email che utilizza il seguente formato: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com. Per istruzioni generali su come aggiungere un ruolo a un agente di servizio, vedi Concedere o revocare un singolo ruolo.

  • Il ruolo IAM Autore crittografia/decrittografia CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) per la chiave è stato concesso all'agente di servizio Cloud Storage. Se questo ruolo non viene concesso, l'importazione dei dati per i datastore protetti da CMEK non andrà a buon fine perché Discovery Engine non è in grado di creare il bucket e la directory temporanei protetti da CMEK necessari per l'importazione.

  • Non creare datastore o app che vuoi gestire con la tua chiave finché non hai completato le istruzioni per la registrazione della chiave riportate in questa pagina.

Registra la chiave Cloud KMS

Per criptare i dati utilizzando CMEK, devi registrare la chiave multiregionale. (Facoltativo) Se i tuoi dati richiedono chiavi a singola regione, ad esempio quando utilizzi connettori di terze parti, devi registrare le chiavi a singola regione.

REST

Per registrare la tua chiave per le applicazioni AI, segui questi passaggi:

  1. Chiama il metodo UpdateCmekConfig con la chiave che vuoi registrare.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"kmsKey":"projects/KMS_PROJECT_ID/locations/KMS_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"}' \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID?set_default=SET_DEFAULT"
    

    Sostituisci quanto segue:

    • KMS_PROJECT_ID: l'ID del progetto che contiene la chiave. Il numero di progetto non funzionerà.
    • KMS_LOCATION: la multiregione della chiave: us o europe.
    • KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.
    • KEY_NAME: il nome della chiave.
    • PROJECT_ID: l'ID del progetto che contiene il datastore.
    • LOCATION: la multiregione del tuo datastore: us o eu.
    • CMEK_CONFIG_ID: imposta un ID univoco per la risorsa CmekConfig, ad esempio default_cmek_config.
    • SET_DEFAULT: impostato su true per utilizzare la chiave come chiave predefinita per i datastore successivi creati nella multiregione.
  2. (Facoltativo) Registra il valore name restituito dal metodo e segui le istruzioni riportate in Visualizzare i dettagli di un'operazione di lunga durata per vedere quando l'operazione è completata.

    In genere, la registrazione di una chiave richiede pochi minuti.

    Al termine dell'operazione, i nuovi datastore in quella multiregione sono protetti dalla chiave. Per informazioni generali sulla creazione di datastore, vedi Informazioni su app e datastore.

Console

Prima di iniziare

Assicurati che la regione non sia già protetta da una chiave. La seguente procedura non va a buon fine se una chiave è già registrata per la regione tramite il comando REST.

Per determinare se esiste una chiave attiva in AI Applications per una località, consulta Visualizzare le chiavi Cloud KMS.

Procedura

Per registrare la tua chiave per le applicazioni AI, segui questi passaggi:

  1. Nella Google Cloud console, vai alla pagina AI Applications.

    Applicazioni di AI

  2. Fai clic su Impostazioni e seleziona la scheda CMEK.

  3. Fai clic su Aggiungi chiave per la posizione us o eu.

    Fai clic su Aggiungi chiave per una posizione.
    Fai clic su Aggiungi chiave.
    1. Fai clic sul menu a discesa Seleziona una chiave Cloud KMS e seleziona la chiave.

      • Se la chiave si trova in un altro progetto, fai clic su Cambia progetto, fai clic sul nome del progetto, digita il nome della chiave che hai creato e seleziona la chiave.

      • Se conosci il nome risorsa della chiave, fai clic su Inserisci manualmente, incolla il nome risorsa della chiave e fai clic su Salva.

    2. Fai clic su Ok > Salva.

In questo modo viene registrata la chiave e viene creato un CmekResource denominato default_cmek_config.

Possono essere necessarie diverse ore prima che i dati importati vengano visualizzati nei risultati di ricerca.

Visualizza le chiavi Cloud KMS

Per visualizzare una chiave registrata per le applicazioni di AI, esegui una delle seguenti operazioni:

  • Se hai il nome risorsa CmekConfig, chiama il metodo GetCmekConfig:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    Sostituisci quanto segue:

    • LOCATION: la multiregione del tuo datastore: us o eu.
    • PROJECT_ID: l'ID del progetto che contiene i dati.
    • CMEK_CONFIG_ID: l'ID della risorsa CmekConfig. Se hai registrato la chiave utilizzando la console, l'ID è default_cmek_config.

    Un esempio di chiamata curl e risposta è il seguente:

    $ curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
    
    { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true }

  • Se non hai il nome della risorsa CmekConfig, chiama il metodo ListCmekConfigs:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs"
    

    Sostituisci quanto segue:

    • LOCATION: la multiregione del tuo datastore: us o eu.
    • PROJECT_ID: l'ID del progetto che contiene i dati.

    Un esempio di chiamata curl e risposta è il seguente:

    $ curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs"
    
    { "cmek_configs": [ { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true } ] }

Annulla la registrazione della chiave Cloud KMS

Per annullare la registrazione della chiave dalle applicazioni AI, segui questi passaggi:

  1. Chiama il metodo DeleteCmekConfig con il nome della risorsa CmekConfig che vuoi annullare la registrazione.

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    Sostituisci quanto segue:

    • LOCATION: la multiregione del tuo datastore: us o eu.
    • PROJECT_ID: l'ID del progetto che contiene il datastore.
    • CMEK_CONFIG_ID: l'ID della risorsa CmekConfig. Se hai registrato la chiave utilizzando la console, l'ID è default_cmek_config.

    Un esempio di chiamata curl e risposta è il seguente:

    $ curl -X DELETE
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
     
    {
     "name": "projects/my-ai-app-project-123/locations/us/operations/delete-cmek-config-56789",
     "metadata": {
      "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.DeleteCmekConfigMetadata"
     }
    }
    

  2. (Facoltativo) Registra il valore name restituito dal metodo e segui le istruzioni riportate in Recuperare i dettagli di un'operazione di lunga durata per vedere quando l'operazione è completata.

    In genere, l'eliminazione di una chiave richiede pochi minuti.

Verificare che un datastore sia protetto da una chiave

I datastore creati prima della registrazione della chiave non sono protetti dalla chiave. Se vuoi verificare che un particolare datastore sia protetto dalla tua chiave, segui questi passaggi:

  1. Esegui questo comando curl sul datastore:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "x-goog-user-project: PROJECT_ID" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID"
    

    Sostituisci quanto segue:

    • LOCATION: la multiregione del tuo datastore: us o eu.
    • PROJECT_ID: l'ID del progetto che contiene il datastore.
    • DATA_STORE_ID: l'ID del datastore.

    Una chiamata curl di esempio ha il seguente aspetto:

    curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    -H "Content-Type: application/json"
    -H "x-goog-user-project: my-ai-app-project-123"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/collections/default_collection/dataStores/my-data-store-1"
    

  2. Esamina l'output del comando: se il campo cmekConfig è presente nell'output e il campo kmsKey mostra la chiave che hai registrato, l'datastore è protetto dalla chiave.

    Una risposta di esempio è simile alla seguente:

    {
     "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1",
     "displayName": "my-data-store-1",
     "industryVertical": "GENERIC",
     "createTime": "2023-09-05T21:20:21.520552Z",
     "solutionTypes": [
       "SOLUTION_TYPE_SEARCH"
     ],
     "defaultSchemaId": "default_schema",
     "cmekConfig": {
       "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1/cmekConfigs/default_cmek_config",
       "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key"
     }
    }
    

Altri dati protetti dalla chiave Cloud KMS

Oltre ai dati nei datastore, le chiavi possono proteggere altri tipi di informazioni di base di proprietà dell'app detenute dalle applicazioni AI, come i dati di sessione generati durante la ricerca con follow-up. Questo tipo di informazioni di base è protetto da CMEK se i datastore associati all'app sono protetti da CMEK.

Anche se non puoi eseguire un comando specifico per verificare che le sessioni siano protette, se esegui il comando Verifica che un datastore sia protetto da una chiave e vedi la chiave nella risorsa cmekConfig, sai che i dati di sessione sono protetti.

Ruotare le chiavi Cloud KMS

Quando ruoti le chiavi, crei una nuova versione della chiave e la imposti come versione principale. Lascia la versione originale della chiave abilitata per un po' prima di disattivarla. In questo modo, le operazioni a lunga esecuzione che potrebbero utilizzare la chiave precedente hanno il tempo di essere completate.

La seguente procedura descrive i passaggi per ruotare le chiavi per un datastore delle applicazioni AI. Per informazioni generali sulla rotazione delle chiavi, consulta la sezione Rotazione delle chiavi nella guida di Cloud KMS.

Importante:non ruotare le chiavi negli archivi dati associati alle app di consigli o a qualsiasi app che necessiti di analisi e non ruotare le chiavi a una sola regione utilizzate per i connettori di terze parti. Consulta la sezione Limitazioni di Cloud KMS nelle applicazioni di AI.

  1. Registra nuovamente la chiave. Per farlo, ripeti il passaggio 1 di Registra la tua chiave Cloud KMS.

  2. Per eseguire le seguenti operazioni, consulta le istruzioni nella sezione Gestire le chiavi della guida di Cloud KMS:

    1. Crea una nuova versione della chiave, attivala e impostala come primaria.

    2. Lascia abilitata la versione precedente della chiave.

    3. Dopo circa una settimana, disattiva la versione precedente della chiave e assicurati che tutto funzioni come prima.

    4. In un secondo momento, quando avrai la certezza che la disattivazione della versione precedente della chiave non ha causato problemi, potrai eliminarla.

Se una chiave Cloud KMS è disabilitata o revocata

Se una chiave è disabilitata o le autorizzazioni per la chiave vengono revocate, il datastore interrompe l'importazione e la pubblicazione dei dati entro 15 minuti. Tuttavia, la riattivazione di una chiave o il ripristino delle autorizzazioni richiede molto tempo. Potrebbero essere necessarie fino a 24 ore prima che il datastore possa riprendere a pubblicare dati.

Pertanto, non disattivare una chiave a meno che non sia necessario. La disattivazione e l'attivazione di una chiave in un datastore è un'operazione che richiede molto tempo. Ad esempio, se una chiave viene disattivata e attivata ripetutamente, il datastore impiegherà molto tempo per raggiungere uno stato protetto. La disattivazione di una chiave e la sua riattivazione immediata potrebbero causare giorni di inattività perché la chiave viene prima disattivata dal datastore e successivamente riattivata.