Applica o limita i tipi di crittografia per un bucket

Questo documento descrive come configurare i metodi di crittografia consentiti o limitati per i nuovi oggetti in un bucket Cloud Storage. Puoi configurare un bucket per applicare o limitare l'utilizzo della crittografia standard (crittografia predefinita di Google), delle chiavi di crittografia gestite dal cliente (CMEK) o delle chiavi di crittografia fornite dal cliente (CSEK) per tutti i nuovi oggetti creati all'interno del bucket.

Ad esempio, per proteggerti dagli attacchi ransomware, puoi richiedere che tutti i nuovi oggetti vengano criptati con la crittografia standard o CMEK e limitare l'utilizzo delle chiavi di crittografia fornite dal cliente.

Per ulteriori informazioni sui metodi di crittografia disponibili, vedi Opzioni di crittografia dei dati.

Cloud Storage applica la configurazione della crittografia a tutte le azioni che creano un nuovo oggetto, ad esempio caricare un oggetto, copiarlo, comporre oggetti e ripristinare un oggetto eliminato temporaneamente.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per configurare l'applicazione della crittografia per un bucket, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) sul bucket. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per configurare l'applicazione della crittografia per un bucket. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per configurare l'applicazione della crittografia per un bucket sono necessarie le seguenti autorizzazioni:

  • Imposta la configurazione durante la creazione di un nuovo bucket: storage.buckets.create
  • Aggiorna la configurazione di un bucket esistente: storage.buckets.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Crea un bucket che applichi i tipi di crittografia

Puoi specificare i metodi di crittografia consentiti o limitati per gli oggetti in un bucket quando crei un nuovo bucket.

Se imposti una chiave Cloud KMS predefinita per il bucket, devi anche consentire la crittografia utilizzando le chiavi di crittografia gestite dal cliente (CMEK) o le chiavi di crittografia fornite dal cliente.

gcloud

  1. Crea un file JSON contenente le seguenti informazioni:

    {
      "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"},
      "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"},
      "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"}
    }

    Sostituisci quanto segue:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Indica se la crittografia che utilizza la crittografia standard (crittografia predefinita di Google) è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare la crittografia standard.
      • FullyRestricted: i nuovi oggetti non possono utilizzare la crittografia standard.
    • CMEK_RESTRICTION_MODE: Indica se la crittografia con CMEK è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare le chiavi CMEK.
      • FullyRestricted: i nuovi oggetti non possono utilizzare CMEK.
    • CSEK_RESTRICTION_MODE: Indica se la crittografia con chiavi di crittografia fornite dal cliente è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare chiavi di crittografia fornite dal cliente.
      • FullyRestricted: i nuovi oggetti non possono utilizzare chiavi di crittografia fornite dal cliente.

    Devi consentire almeno un tipo di crittografia. Se ometti la configurazione dell'applicazione forzata per un tipo di crittografia specifico, questo tipo di crittografia è consentito per impostazione predefinita.

  2. Utilizza il comando gcloud storage buckets create con il flag --encryption-enforcement-file:

    gcloud storage buckets create gs://BUCKET_NAME \
      --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE

    Sostituisci quanto segue:

    • BUCKET_NAME: il nome del bucket.
    • ENCRYPTION_ENFORCEMENT_FILE: il percorso del file JSON creato nel passaggio precedente.

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file JSON contenente le impostazioni del bucket. Per un elenco completo delle impostazioni, consulta la documentazione Bucket: inserimento. Le seguenti impostazioni definiscono solo il nome del bucket e la crittografia:

    {
      "name": "BUCKET_NAME",
      "encryption": {
        "googleManagedEncryptionEnforcementConfig": {
          "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"
        },
        "customerManagedEncryptionEnforcementConfig": {
          "restrictionMode": "CMEK_RESTRICTION_MODE"
        },
        "customerSuppliedEncryptionEnforcementConfig": {
          "restrictionMode": "CSEK_RESTRICTION_MODE"
        }
      }
    }

    Sostituisci quanto segue:

    • BUCKET_NAME: il nome del bucket.
    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Indica se la crittografia che utilizza la crittografia standard (crittografia predefinita di Google) è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare la crittografia standard.
      • FullyRestricted: i nuovi oggetti non possono utilizzare la crittografia standard.
    • CMEK_RESTRICTION_MODE: Indica se la crittografia con CMEK è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare le chiavi CMEK.
      • FullyRestricted: i nuovi oggetti non possono utilizzare CMEK.
    • CSEK_RESTRICTION_MODE: Indica se la crittografia con chiavi di crittografia fornite dal cliente è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare chiavi di crittografia fornite dal cliente.
      • FullyRestricted: i nuovi oggetti non possono utilizzare chiavi di crittografia fornite dal cliente.

    Devi consentire almeno un tipo di crittografia. Se ometti la configurazione dell'applicazione forzata per un tipo di crittografia specifico, questo tipo di crittografia è consentito per impostazione predefinita.

  3. Utilizza cURL per chiamare l'API JSON con una richiesta POST Bucket:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b?project=PROJECT_ID"

    Sostituisci quanto segue:

    • JSON_FILE_NAME: il percorso del file JSON creato nel passaggio precedente.
    • PROJECT_ID: l'ID o il numero del progetto per il tuo bucket.

API XML

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file XML che contenga le impostazioni per il bucket. Per un elenco completo delle impostazioni, consulta la documentazione XML: Create a bucket. Le seguenti impostazioni definiscono solo l'applicazione della crittografia:

    <CreateBucketConfiguration>
      <EncryptionConfiguration>
        <GoogleManagedEncryptionEnforcement>
          <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode>
        </GoogleManagedEncryptionEnforcement>
        <CustomerManagedEncryptionEnforcement>
          <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode>
        </CustomerManagedEncryptionEnforcement>
        <CustomerSuppliedEncryptionEnforcement>
          <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode>
        </CustomerSuppliedEncryptionEnforcement>
      </EncryptionConfiguration>
    </CreateBucketConfiguration>

    Sostituisci quanto segue:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Indica se la crittografia che utilizza la crittografia standard (crittografia predefinita di Google) è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare la crittografia standard.
      • FullyRestricted: i nuovi oggetti non possono utilizzare la crittografia standard.
    • CMEK_RESTRICTION_MODE: Indica se la crittografia con CMEK è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare le chiavi CMEK.
      • FullyRestricted: i nuovi oggetti non possono utilizzare CMEK.
    • CSEK_RESTRICTION_MODE: Indica se la crittografia con chiavi di crittografia fornite dal cliente è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare chiavi di crittografia fornite dal cliente.
      • FullyRestricted: i nuovi oggetti non possono utilizzare chiavi di crittografia fornite dal cliente.

    Devi consentire almeno un tipo di crittografia. Se ometti la configurazione dell'applicazione forzata per un tipo di crittografia specifico, questo tipo di crittografia è consentito per impostazione predefinita.

  3. Utilizza cURL per chiamare l'API XML con una richiesta PUT Bucket:

    curl -X PUT --data-binary @XML_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "x-goog-project-id: PROJECT_ID" \
      "https://storage.googleapis.com/BUCKET_NAME"

    Sostituisci quanto segue:

    • XML_FILE_NAME: il percorso del file XML che hai creato nel passaggio precedente.
    • PROJECT_ID: l'ID o il numero del progetto per il tuo bucket.
    • BUCKET_NAME: il nome del bucket.

Aggiorna i tipi di crittografia consentiti per un bucket

Per aggiornare i metodi di crittografia consentiti per i nuovi oggetti in un bucket esistente, completa i seguenti passaggi.

Se il bucket ha impostato una chiave KMS predefinita, non puoi limitare sia CMEK sia le chiavi di crittografia fornite dal cliente perché ciò impedirebbe la creazione di nuovi oggetti. Consenti CMEK o CSEK in un bucket di questo tipo oppure rimuovi la chiave Cloud KMS predefinita dal bucket.

gcloud

  1. Crea un file JSON contenente le seguenti informazioni:

    {
      "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"},
      "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"},
      "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"}
    }

    Sostituisci quanto segue:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Indica se la crittografia che utilizza la crittografia standard (crittografia predefinita di Google) è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare la crittografia standard.
      • FullyRestricted: i nuovi oggetti non possono utilizzare la crittografia standard.
    • CMEK_RESTRICTION_MODE: Indica se la crittografia con CMEK è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare le chiavi CMEK.
      • FullyRestricted: i nuovi oggetti non possono utilizzare CMEK.
    • CSEK_RESTRICTION_MODE: Indica se la crittografia con chiavi di crittografia fornite dal cliente è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare chiavi di crittografia fornite dal cliente.
      • FullyRestricted: i nuovi oggetti non possono utilizzare chiavi di crittografia fornite dal cliente.

    Devi consentire almeno un tipo di crittografia. Se ometti un tipo di crittografia, la configurazione esistente viene mantenuta.

  2. Utilizza il comando gcloud storage buckets update con il flag --encryption-enforcement-file:

    gcloud storage buckets update gs://BUCKET_NAME \
      --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE

    Sostituisci quanto segue:

    • BUCKET_NAME: il nome del bucket.
    • ENCRYPTION_ENFORCEMENT_FILE: il percorso del file JSON creato nel passaggio precedente.

    Potrebbero essere necessari fino a due minuti prima che la configurazione aggiornata diventi effettiva.

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file JSON contenente le seguenti informazioni:

    {
      "encryption": {
        "googleManagedEncryptionEnforcementConfig": {
          "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"
        },
        "customerManagedEncryptionEnforcementConfig": {
          "restrictionMode": "CMEK_RESTRICTION_MODE"
        },
        "customerSuppliedEncryptionEnforcementConfig": {
          "restrictionMode": "CSEK_RESTRICTION_MODE"
        }
      }
    }

    Sostituisci quanto segue:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Indica se la crittografia che utilizza la crittografia standard (crittografia predefinita di Google) è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare la crittografia standard.
      • FullyRestricted: i nuovi oggetti non possono utilizzare la crittografia standard.
    • CMEK_RESTRICTION_MODE: Indica se la crittografia con CMEK è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare le chiavi CMEK.
      • FullyRestricted: i nuovi oggetti non possono utilizzare CMEK.
    • CSEK_RESTRICTION_MODE: Indica se la crittografia con chiavi di crittografia fornite dal cliente è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare chiavi di crittografia fornite dal cliente.
      • FullyRestricted: i nuovi oggetti non possono utilizzare chiavi di crittografia fornite dal cliente.

    Devi consentire almeno un tipo di crittografia. Se ometti un tipo di crittografia, la configurazione esistente viene mantenuta.

  3. Utilizza cURL per chiamare l'API JSON con una richiesta PATCH Bucket:

    curl -X PATCH --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"

    Sostituisci quanto segue:

    • JSON_FILE_NAME: il percorso del file JSON creato nel passaggio precedente.
    • BUCKET_NAME: il nome del bucket.

    Potrebbero essere necessari fino a due minuti prima che la configurazione aggiornata diventi effettiva.

API XML

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file XML che contenga le impostazioni di crittografia per il bucket. Le seguenti impostazioni definiscono solo la configurazione dell'applicazione della crittografia.

    <EncryptionConfiguration>
      <GoogleManagedEncryptionEnforcement>
        <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode>
      </GoogleManagedEncryptionEnforcement>
      <CustomerManagedEncryptionEnforcement>
        <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode>
      </CustomerManagedEncryptionEnforcement>
      <CustomerSuppliedEncryptionEnforcement>
        <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode>
      </CustomerSuppliedEncryptionEnforcement>
    </EncryptionConfiguration>

    Sostituisci quanto segue:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Indica se la crittografia che utilizza la crittografia standard (crittografia predefinita di Google) è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare la crittografia standard.
      • FullyRestricted: i nuovi oggetti non possono utilizzare la crittografia standard.
    • CMEK_RESTRICTION_MODE: Indica se la crittografia con CMEK è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare le chiavi CMEK.
      • FullyRestricted: i nuovi oggetti non possono utilizzare CMEK.
    • CSEK_RESTRICTION_MODE: Indica se la crittografia con chiavi di crittografia fornite dal cliente è consentita durante la creazione di oggetti in questo bucket. Sono supportati i seguenti valori:
      • NotRestricted: i nuovi oggetti possono utilizzare chiavi di crittografia fornite dal cliente.
      • FullyRestricted: i nuovi oggetti non possono utilizzare chiavi di crittografia fornite dal cliente.

    Devi consentire almeno un tipo di crittografia.

  3. Utilizza cURL per chiamare l'API XML con una richiesta PUT Bucket con ambito ?encryptionConfig:

    curl -X PUT --data-binary @XML_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"

    Sostituisci quanto segue:

    • XML_FILE_NAME: il percorso del file XML che hai creato nel passaggio precedente.
    • BUCKET_NAME: il nome del bucket.

    Potrebbero essere necessari fino a due minuti prima che la configurazione aggiornata diventi effettiva.

Visualizza le impostazioni di crittografia per un bucket

Per i passaggi per visualizzare i metodi di crittografia consentiti per un bucket, consulta Recuperare i metadati del bucket.

Passaggi successivi