Crittografare i dati con chiavi di crittografia gestite dal cliente

Per impostazione predefinita, Filestore cripta i contenuti inattivi dei clienti. Filestore 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 i servizi integrati con CMEK, tra cui Filestore. L'utilizzo delle chiavi Cloud KMS ti consente di controllare il loro livello di protezione, la posizione, la pianificazione della rotazione, le autorizzazioni di utilizzo e accesso e i confini di crittografia. L'utilizzo di Cloud KMS ti consente inoltre di visualizzare gli audit log e controllare i cicli di vita delle chiavi. Invece che essere di proprietà e gestite da Google, le chiavi di crittografia della chiave (KEK) simmetriche che proteggono i tuoi dati sono sotto il tuo controllo e vengono gestite in Cloud KMS.

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

I CMEK sono supportati per l'utilizzo con le istanze e i backup di Filestore.

Opzioni CMEK

Filestore supporta le chiavi CMEK archiviate come chiavi software, come chiavi hardware in un cluster HSM e come chiavi archiviate esternamente in Cloud External Key Manager (Cloud EKM).

Per saperne di più, consulta Cloud Key Management Service.

Interruzioni del servizio EKM

Per impostazione predefinita, le chiavi esterne sono gestite da terze parti. In queste circostanze, Google Cloud non è responsabile della disponibilità delle chiavi.

Se Cloud Key Management Service (Cloud KMS) viene informato dall'External Key Manager (EKM) che una chiave esterna non è raggiungibile, gli utenti ricevono una notifica ekm_key_unreachable_detected. Per un massimo di un'ora, gli utenti hanno accesso limitato alle operazioni sull'istanza. Dopo un'ora, se lo stato della chiave non è cambiato, vengono applicate le seguenti azioni:

  • La chiave è disattivata.
  • Tutte le operazioni di crittografia e decrittografia non riescono.
  • L'istanza Filestore è sospesa.

In alcuni casi, ad esempio in caso di un evento imprevisto come il riavvio di una VM, l'accesso all'istanza potrebbe essere interrotto prima di un'ora.

Le notifiche relative alle chiavi non raggiungibili possono essere visualizzate dalla pagina dei dettagli dell'istanza Filestore:

Vai alla pagina delle istanze Filestore

Gli utenti ricevono anche notifiche ekm_key_unreachable_detected per qualsiasi delle seguenti operazioni se eseguite entro un'ora dalla prima notifica segnalata:

Livelli supportati

La tabella seguente mostra i livelli di servizio Filestore che supportano i CMEK:

Livello Supporto CMEK
HDD base No
SSD base No
A livello di zona
Regionale
Aziende

Crea una chiave automatizzata e una chiave da utilizzare con l'istanza

Il keyring e la chiave possono trovarsi in un progetto diverso dall'istanza Filestore, ma devono trovarsi nella stessa posizione. Se hai già un keyring e una chiave Cloud KMS che vuoi utilizzare con Filestore, vai alla sezione successiva. In caso contrario, segui le istruzioni sulla creazione di chiavi di crittografia simmetriche per creare un mazzo di chiavi e una chiave.

Concedi l'autorizzazione di accesso alla chiave all'account di servizio Filestore

Prima di poter creare un'istanza Filestore che utilizza un CMEK, il service account Filestore deve disporre del ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter).

  1. Un account di servizio Filestore viene creato la prima volta che crei un'istanza Filestore nel progetto. Se non hai ancora un account di servizio Filestore, esegui il seguente comando services identity create:

    gcloud beta services identity create --service=file.googleapis.com --project=INSTANCE_PROJECT_NUMBER_OR_ID
    

    Sostituisci INSTANCE_PROJECT_NUMBER_OR_ID con il numero o l'ID del progetto in cui vuoi creare l'istanza Filestore.

  2. Assegna all'account di servizio Filestore il ruolo Autore crittografia/decrittografia CryptoKey Cloud KMS eseguendo il comando projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding KMS_PROJECT_NUMBER_OR_ID \
        --member serviceAccount:service-INSTANCE_PROJECT_NUMBER@cloud-filer.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Sostituisci quanto segue:

    • KMS_PROJECT_NUMBER_OR_ID con il numero o l'ID del progetto che contiene la chiave Cloud KMS che vuoi utilizzare.
    • INSTANCE_PROJECT_NUMBER con il numero di progetto (non l'ID progetto) del progetto in cui vuoi creare l'istanza Filestore.

Crea un'istanza che utilizza la tua chiave Cloud KMS

Console Google Cloud

Per creare un'istanza che utilizzi la chiave Cloud KMS per la crittografia dei dati:

  1. Nella console Google Cloud, vai alla pagina Istanze Filestore.

    Vai alla pagina delle istanze Filestore

  2. Fai clic su Crea istanza.

  3. Seleziona un livello di istanza che supporti i CMEK e compila tutti gli altri campi obbligatori e facoltativi come faresti normalmente.

  4. Fai clic su Mostra opzioni avanzate.

  5. Seleziona la casella di controllo Utilizza una chiave di crittografia gestita dal cliente (CMEK).

  6. Seleziona la chiave Cloud KMS che vuoi utilizzare per l'istanza.

  7. Fai clic su Crea.

Interfaccia a riga di comando gcloud

Per creare un'istanza Filestore che utilizzi la chiave Cloud KMS per la crittografia dei dati, specifica il flag --kms-key nel comando filestore instances create:

gcloud filestore instances create nfs-server \
    --tier=<var>TIER</var> \
    --location=us-central1 \
    --file-share=name="vol1",capacity=1TiB \
    --network=name="default" \
    --kms-key=KMS_KEY

Sostituisci quanto segue:

  • TIER con un livello Filestore che supporta i CMEK.
  • KMS_KEY con il nome completo della chiave Cloud KMS che vuoi utilizzare. In alternativa, puoi specificare ogni argomento separatamente nel formato:
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID

Sostituisci quanto segue:

  • KMS_KEY con il nome della chiave Cloud KMS.
  • KMS_PROJECT_NUMBER_OR_ID con il numero o l'ID del progetto in cui viene creata la chiave.
  • KMS_KEY_RING con il nome della chiave automatizzata.
  • KMS_REGION con la regione del portachiavi. Il portachiavi e l'istanza devono trovarsi nella stessa regione.

Visualizzare un elenco di chiavi

Puoi ottenere un elenco di chiavi eseguendo il comando kms keys list:

  gcloud kms keys list \
  --project=KMS_PROJECT_NUMBER_OR_ID \
  --keyring=KEY_RING \
  --location=KMS_REGION

Sostituisci quanto segue:

  • KMS_PROJECT_NUMBER_OR_ID con il numero o l'ID del progetto in cui viene creata la chiave.
  • KEY_RING con il nome della chiave automatizzata.
  • KMS_REGION con la regione del portachiavi.

La colonna Nome dell'output fornisce il nome completo delle chiavi esistenti. Ad esempio:

projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key

Ottenere le informazioni sulle chiavi dell'istanza

Le sezioni seguenti descrivono come ottenere le informazioni chiave dell'istanza.

Elenca le istanze che utilizzano una determinata chiave Cloud KMS

Puoi elencare le istanze Filestore che utilizzano una determinata chiave eseguendo il comando instances list:

gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"

Sostituisci KMS_KEY con il nome completo della chiave che vuoi utilizzare.

Esempio:

gcloud filestore instances list \
    --filter="kmsKeyName=projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key"

L'output è simile al seguente:

INSTANCE_NAME LOCATION    TIER       CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS   STATE CREATE_TIME
nfs-server    us-central1 ENTERPRISE 1024        vol1            10.166.108.2 READY 2021-08-12T11:38:56

Ottenere le informazioni sulla chiave Cloud KMS per un'istanza

Utilizza uno dei seguenti metodi per ottenere le informazioni sulle chiavi Cloud KMS per un'istanza Filestore:

Console Google Cloud

  1. Vai alla pagina delle istanze Filestore.

    Vai alla pagina delle istanze Filestore

  2. Fai clic sull'ID istanza per aprire la pagina dei dettagli dell'istanza.

  3. Fai clic sulla scheda Panoramica.

Se l'istanza cripta i dati utilizzando una chiave Cloud KMS anziché una chiave di proprietà e gestita da Google, il nome della chiave viene visualizzato nel campo Chiave di crittografia.

Interfaccia a riga di comando gcloud

Esegui il seguente comando instances describe:

gcloud filestore instances describe INSTANCE_ID \
   --location=INSTANCE_LOCATION

Sostituisci quanto segue:

  • INSTANCE_ID con l'ID istanza dell'istanza Filestore su cui vuoi ricevere informazioni.
  • INSTANCE_LOCATION con la regione o la zona in cui si trova l'istanza.

L'output è simile al seguente:

createTime: '2021-08-12T11:38:56.851157387Z'
fileShares:
- capacityGb: '1024'
  name: vol1
kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
labels:
  key: val
name: projects/consumer-project/locations/us-central1/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.100.2
  modes:
  - MODE_IPV4
  network: network
  reservedIpRange: 10.166.108.0/23
state: READY
tier: ENTERPRISE

Disattivare o eliminare una chiave Cloud KMS utilizzata da un'istanza

Se viene rilevata una modifica dello stato della chiave Cloud KMS, l'istanza interrompe automaticamente l'erogazione dei dati. Ecco alcuni esempi:

  • Disattivazione di una chiave o di una versione della chiave.
  • Distruzione di una chiave o di una versione della chiave.
  • Modifica delle autorizzazioni di una chiave.

Questo rilevamento avviene in genere entro pochi minuti dalla modifica dello stato della chiave, ma in alcuni casi può richiedere fino a un'ora.

Una volta arrestata un'istanza, viene bloccato tutto l'accesso ai dati delle condivisioni file e a eventuali snapshot. Le istanze arrestate continuano a essere fatturate finché non vengono eliminate.

Avvio di un'istanza arrestata

Se un'istanza Filestore interrotta utilizza una chiave Cloud KMS per la crittografia dei dati, tutte le versioni della chiave devono essere attivate o ripristinate prima di riavviare l'istanza.

Una volta attivato lo stato della chiave Cloud KMS, l'istanzarileverà automaticamente le modifiche alle chiavi e si riavvierà senza alcuna azione aggiuntiva, solitamente entro 20 minuti.

Supporto di CMEK per le catene di backup

Puoi utilizzare le chiavi CMEK per criptare non solo le tue istanze Filestore, ma anche le tue catene di backup.

Le catene di backup si trovano in un unico bucket e nella stessa regione. Per archiviare e criptare i dati di backup in una regione esterna all'istanza di origine, gli utenti devono applicare due CMEK distinti: uno per l'istanza e uno per la catena di backup. Sono previsti alcuni requisiti:

  • Un CMEK deve trovarsi nella stessa regione della catena di backup che cripta.

  • Un singolo CMEK viene applicato al bucket in cui è archiviata la catena di backup e non può essere combinato o sostituito.

  • Per creare un backup utilizzando un nuovo CMEK, deve prima essere eliminata l'intera catena di backup esistente.

Il supporto di CMEK non è disponibile per i backup di livello base.

Per ulteriori informazioni, consulta Backup.

Passaggi successivi