Crittografa nuovamente gli oggetti che violano le regole di crittografia applicate

Questa pagina descrive come utilizzare l'advisor di Storage Intelligence per identificare e criptare nuovamente gli oggetti che violano la configurazione di applicazione della crittografia nel bucket.

Quando applichi o limiti i tipi di crittografia per un bucket, Cloud Storage applica questa configurazione a tutti gli oggetti nuovi o riscritti nel bucket. Tuttavia, Cloud Storage non cripta automaticamente gli oggetti esistenti che hai caricato prima dell'applicazione della configurazione. Questi oggetti rimangono criptati con il metodo di crittografia originale. Per saperne di più sui metodi di crittografia disponibili, consulta Opzioni di crittografia dei dati.

Il advisor di Storage Intelligence visualizza il risultato Gli oggetti violano le regole di crittografia applicate quando un bucket contiene oggetti che utilizzano un metodo di crittografia limitato. Un risultato è un'anomalia o una lacuna nella configurazione della sicurezza rilevata dalle metriche e dai metadati degli oggetti che richiede la tua attenzione. Per una panoramica di Storage Intelligence Advisor, consulta Informazioni su Storage Intelligence Advisor. Per un elenco completo dei risultati, consulta il catalogo di riferimento dei risultati.

Soglie che attivano un risultato

Quando abiliti Storage Intelligence, Cloud Storage valuta automaticamente i metadati di crittografia a livello di oggetto rispetto alle configurazioni di applicazione della crittografia a livello di bucket nel progetto, nella cartella o nell'organizzazione. L'advisor di Storage Intelligence genera un risultato quando un bucket soddisfa entrambi i seguenti criteri:

  • Il bucket limita uno o più metodi di crittografia nella sua configurazione enforcedEncryptionAllowedTypes, ad esempio la crittografia standard (crittografia predefinita di Google o GMEK), le chiavi di crittografia gestite dal cliente (CMEK) o le chiavi di crittografia fornite dal cliente (CSEK).
  • Il bucket contiene almeno un oggetto in cui il campo dei metadati encryptionType non è presente nell'elenco enforcedEncryptionAllowedTypes del bucket.

I risultati della baseline iniziale vengono visualizzati entro 48 ore dall'attivazione di Storage Intelligence e vengono aggiornati ogni 24 ore. Per ridurre il volume degli avvisi, l'advisor di Storage Intelligence aggrega le violazioni a livello di oggetto per bucket nella dashboard. Puoi eseguire query sui metadati di crittografia a livello di oggetto nei set di dati di Storage Insights.

Rispondi a un risultato

Per rispondere al risultato, identifica gli oggetti interessati in ogni bucket e riscrivi gli oggetti non conformi con un metodo di crittografia consentito:

  1. Visualizza i dettagli del risultato per identificare i bucket interessati e i relativi tipi di crittografia consentiti (CMEK, GMEK o CSEK).

  2. (Facoltativo) Per elencare gli oggetti in un bucket interessato che violano la configurazione di crittografia applicata, esegui una query sul set di dati Storage Insights in BigQuery. Se non hai configurato un set di dati collegato, consulta Configura i set di dati Storage Insights.

    SELECT
      bucket,
      name,
      encryptionType
    FROM
      `DATASET_NAME.object_attributes_latest_snapshot_view`
    WHERE
      bucket = 'BUCKET_NAME'
      AND encryptionType NOT IN (ALLOWED_ENCRYPTION_TYPES)
      AND timeDeleted IS NULL
      AND softDeleteTime IS NULL;

    Sostituisci quanto segue:

    • DATASET_NAME: il nome del set di dati collegato a Storage Insights in BigQuery.
    • BUCKET_NAME: il nome del bucket interessato.
    • ALLOWED_ENCRYPTION_TYPES: un elenco separato da virgole dei tipi di crittografia consentiti dal bucket, ad esempio 'CMEK' o 'CMEK', 'GMEK'.
  3. Utilizza la tabella seguente per selezionare il metodo di nuova crittografia per i tuoi oggetti live:

    Scenario Azione consigliata Dettagli
    Il bucket consente chiavi di crittografia gestite dal cliente (CMEK) Crittografa di nuovo gli oggetti con CMEK Per gli oggetti GMEK attivi, esporta i file manifest CSV da BigQuery ed esegui un job di operazioni batch di archiviazione per riscrivere gli oggetti con una chiave Cloud KMS. Per gli oggetti criptati con CSEK, esegui il comando gcloud storage objects update.
    Il bucket consente la crittografia standard (GMEK) Crittografa nuovamente gli oggetti con la crittografia standard (GMEK) Verifica che il bucket non abbia una chiave Cloud KMS predefinita, quindi utilizza il comando gcloud storage objects update con il flag --clear-encryption-key per riscrivere gli oggetti interessati con la crittografia standard.
    Il bucket consente solo chiavi di crittografia fornite dal cliente (CSEK) Crittografa nuovamente gli oggetti con CSEK Utilizza il comando gcloud storage objects update con il flag --encryption-key per riscrivere gli oggetti interessati con la tua chiave di crittografia AES-256.

    Dopo aver criptato nuovamente tutti gli oggetti non conformi in un bucket, il risultato viene cancellato per quel bucket durante il successivo ciclo di aggiornamento di 24 ore. Tuttavia, il risultato rimane attivo nei seguenti casi finché tu o Cloud Storage non eliminate definitivamente le versioni degli oggetti conservati:

Crittografa nuovamente gli oggetti con CMEK

Se il bucket consente chiavi di crittografia gestite dal cliente (CMEK), cripta nuovamente gli oggetti interessati in base al metodo di crittografia attuale.

Crittografa di nuovo gli oggetti criptati con GMEK su larga scala utilizzando le operazioni batch di archiviazione

Per crittografare nuovamente gli oggetti criptati con GMEK con CMEK su larga scala, esporta i file manifest CSV da BigQuery ed esegui un job di operazioni batch di archiviazione:

  1. Eseguire la seguente query EXPORT DATA in BigQuery per creare un manifesto CSV utilizzando i set di dati di Storage Insights per gli oggetti attivi interessati che utilizzano la crittografia standard (GMEK):

    EXPORT DATA OPTIONS(
      uri='gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_policies_*.csv',
      format='CSV',
      overwrite=true,
      header=true
    ) AS
    SELECT
      bucket,
      name
    FROM
      `DATASET_NAME.object_attributes_latest_snapshot_view`
    WHERE
      bucket = 'BUCKET_NAME'
      AND encryptionType = 'GMEK'
      AND timeDeleted IS NULL
      AND softDeleteTime IS NULL;

    Sostituisci quanto segue:

    • DESTINATION_BUCKET: il nome del bucket Cloud Storage in cui vuoi archiviare i file manifest CSV esportati.
    • DATASET_NAME: il nome del set di dati collegato a Storage Insights in BigQuery.
    • BUCKET_NAME: il nome del bucket interessato.
  2. Completa i prerequisiti per le operazioni batch di archiviazione e chiedi all'amministratore di concedere il ruolo Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) sulla chiave Cloud KMS a entrambi i seguenti agenti di servizio:

    • L'agente di servizio per le operazioni batch di archiviazione (service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.iam.gserviceaccount.com)
    • Il service agent Cloud Storage (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

    Sostituisci PROJECT_NUMBER con il numero del progetto che contiene il bucket.

  3. Esegui il comando gcloud storage batch-operations jobs create per creare un job di operazioni batch di archiviazione utilizzando il file manifest e riscrivere gli oggetti con la chiave Cloud KMS. Per verificare la configurazione del job prima di modificare gli oggetti, includi il flag --dry-run:

    gcloud storage batch-operations jobs create JOB_NAME \
      --bucket="BUCKET_NAME" \
      --manifest-location="gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_policies_*.csv" \
      --rewrite-object="kms-key=KMS_KEY"

    Sostituisci quanto segue:

    • JOB_NAME: un ID univoco per il job batch, ad esempio re-encrypt-objects-job.
    • BUCKET_NAME: il nome del bucket interessato.
    • DESTINATION_BUCKET: il nome del bucket che contiene i file manifest esportati.
    • KMS_KEY: il nome della risorsa della chiave Cloud KMS che vuoi utilizzare per criptare gli oggetti. La chiave deve trovarsi nella stessa località del bucket e utilizzare il formato projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Crittografa di nuovo gli oggetti criptati con CSEK utilizzando Google Cloud CLI

Poiché Google Cloud non archivia le chiavi di crittografia fornite dal cliente (CSEK), le operazioni batch di archiviazione non possono decriptare gli oggetti criptati con CSEK. Per criptare nuovamente gli oggetti criptati con CSEK con CMEK, esegui il comando gcloud storage objects update con i flag --decryption-keys e --encryption-key:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \
  --decryption-keys=DECRYPTION_KEY \
  --encryption-key=KMS_KEY

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket interessato.
  • OBJECT_NAME: il nome dell'oggetto criptato con CSEK che vuoi criptare nuovamente. Per aggiornare più oggetti con un unico comando, utilizza i caratteri jolly URI o il flag --read-paths-from-stdin (-I).
  • DECRYPTION_KEY: la chiave AES-256 codificata in base64 RFC 4648 che cripta l'oggetto.
  • KMS_KEY: il nome della risorsa della chiave Cloud KMS che vuoi utilizzare per criptare l'oggetto, nel formato projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Crittografa nuovamente gli oggetti con la crittografia standard (GMEK)

Per criptare nuovamente gli oggetti con la crittografia standard (crittografia predefinita di Google o GMEK), verifica che il bucket non abbia una chiave Cloud KMS predefinita e cancella la chiave di crittografia personalizzata su ogni oggetto interessato:

  1. Verifica che il bucket non abbia una chiave Cloud KMS predefinita. Quando cancelli la chiave di crittografia personalizzata di un oggetto, Cloud Storage cripta l'oggetto con la crittografia standard (GMEK) solo se il bucket non ha una chiave Cloud KMS predefinita. Se il bucket ha una chiave Cloud KMS predefinita, Cloud Storage cripta l'oggetto con quella chiave. Se il bucket limita anche CMEK, la riscrittura non va a buon fine.

    Per rimuovere una chiave Cloud KMS predefinita dal bucket, esegui il comando gcloud storage buckets update con il flag --clear-default-encryption-key:

    gcloud storage buckets update gs://BUCKET_NAME \
      --clear-default-encryption-key

    Sostituisci BUCKET_NAME con il nome del bucket interessato.

  2. Utilizza il comando gcloud storage objects update con il flag --clear-encryption-key per riscrivere gli oggetti interessati con la crittografia standard. Se gli oggetti sono criptati con chiavi di crittografia fornite dal cliente (CSEK), includi anche il flag --decryption-keys:

    gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \
      --clear-encryption-key \
      [--decryption-keys=DECRYPTION_KEY]

    Sostituisci quanto segue:

    • BUCKET_NAME: il nome del bucket interessato.
    • OBJECT_NAME: il nome dell'oggetto che vuoi criptare nuovamente. Per aggiornare più oggetti con un unico comando, utilizza i caratteri jolly URI (come gs://BUCKET_NAME/**) o il flag --read-paths-from-stdin (-I).
    • DECRYPTION_KEY: se l'oggetto è criptato con CSEK, la chiave AES-256 con codifica base64 RFC 4648 che cripta l'oggetto. Se l'oggetto è criptato con CMEK, ometti il flag --decryption-keys.

Crittografa nuovamente gli oggetti con CSEK

Se il bucket consente solo chiavi di crittografia fornite dal cliente (CSEK), utilizza il comando gcloud storage objects update con il flag --encryption-key per riscrivere gli oggetti interessati con la tua chiave di crittografia AES-256. Se un oggetto è criptato con una CSEK diversa, includi anche il flag --decryption-keys:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \
  --encryption-key=YOUR_ENCRYPTION_KEY \
  [--decryption-keys=DECRYPTION_KEY]

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket interessato.
  • OBJECT_NAME: il nome dell'oggetto che vuoi criptare nuovamente. Per aggiornare più oggetti con un singolo comando, utilizza i caratteri jolly URI o il flag --read-paths-from-stdin (-I).
  • YOUR_ENCRYPTION_KEY: la stringa della chiave di crittografia AES-256 codificata in base64 RFC 4648.
  • DECRYPTION_KEY: se l'oggetto è criptato con un CSEK diverso, la chiave AES-256 con codifica base64 RFC 4648 che cripta l'oggetto. Se l'oggetto è criptato con GMEK o CMEK, ometti il flag --decryption-keys.

Passaggi successivi