Objekte neu verschlüsseln, die gegen erzwungene Verschlüsselungsregeln verstoßen

Auf dieser Seite wird beschrieben, wie Sie mit dem Storage Intelligence-Berater Objekte identifizieren und neu verschlüsseln, die gegen die Konfiguration zur Verschlüsselungserzwingung für ihren Bucket verstoßen.

Wenn Sie die Verschlüsselungstypen für einen Bucket erzwingen oder einschränken, erzwingt Cloud Storage diese Konfiguration für alle neuen oder umgeschriebenen Objekte im Bucket. Cloud Storage verschlüsselt jedoch nicht automatisch vorhandene Objekte neu, die Sie vor dem Inkrafttreten der Konfiguration hochgeladen haben. Diese Objekte bleiben mit ihrer ursprünglichen Verschlüsselungsmethode verschlüsselt. Weitere Informationen zu den verfügbaren Verschlüsselungsmethoden finden Sie unter Datenverschlüsselungsoptionen.

Der Storage Intelligence-Berater zeigt das Ergebnis Objekte verstoßen gegen erzwungene Verschlüsselungsregeln an, wenn ein Bucket Objekte enthält, die eine eingeschränkte Verschlüsselungsmethode verwenden. Ein Ergebnis ist eine Anomalie oder eine Sicherheitskonfigurationslücke, die anhand Ihrer Messwerte und Objektmetadaten erkannt wurde und Ihre Aufmerksamkeit erfordert. Eine Übersicht über den Storage Intelligence-Berater finden Sie unter Storage Intelligence-Berater. Eine vollständige Liste der Ergebnisse finden Sie im Referenzkatalog für Ergebnisse.

Grenzwerte, die ein Ergebnis auslösen

Wenn Sie Storage Intelligence aktivieren, wertet Cloud Storage automatisch Verschlüsselungsmetadaten auf Objektebene anhand von Konfigurationen zur Verschlüsselungserzwingung auf Bucket-Ebene in Ihrem Projekt, Ordner oder Ihrer Organisation aus. Der Storage Intelligence-Berater generiert ein Ergebnis, wenn ein Bucket die beiden folgenden Kriterien erfüllt:

  • Der Bucket schränkt eine oder mehrere Verschlüsselungsmethoden in seiner enforcedEncryptionAllowedTypes-Konfiguration ein, z. B. die Standardverschlüsselung (standardmäßige Google-Verschlüsselung oder GMEK), kundenverwaltete Verschlüsselungsschlüssel (CMEK) oder vom Kunden bereitgestellte Verschlüsselungsschlüssel (CSEK).
  • Der Bucket enthält mindestens ein Objekt, bei dem das Metadatenfeld encryptionType nicht in der enforcedEncryptionAllowedTypes-Liste des Buckets enthalten ist.

Die ersten Baseline-Ergebnisse werden innerhalb von 48 Stunden nach der Aktivierung von Storage Intelligence angezeigt und alle 24 Stunden aktualisiert. Um die Anzahl der Benachrichtigungen zu reduzieren, fasst der Storage Intelligence-Berater Verstöße auf Objektebene nach Bucket in Ihrem Dashboard zusammen. Sie können Verschlüsselungsmetadaten auf Objektebene in Storage Insights-Datasets abfragen.

Auf ein Ergebnis reagieren

Um auf das Ergebnis zu reagieren, identifizieren Sie die betroffenen Objekte in jedem Bucket und schreiben Sie die nicht konformen Objekte mit einer zulässigen Verschlüsselungsmethode neu:

  1. Sehen Sie sich die Ergebnisdetails an, um die betroffenen Buckets und ihre zulässigen Verschlüsselungstypen (CMEK, GMEK oder CSEK) zu ermitteln.

  2. Optional: Wenn Sie die Objekte in einem betroffenen Bucket auflisten möchten, die gegen die erzwungene Verschlüsselungskonfiguration verstoßen, fragen Sie Ihr Storage Insights-Dataset in BigQuery ab. Wenn Sie kein verknüpftes Dataset konfiguriert haben, finden Sie weitere Informationen unter Storage Insights-Datasets konfigurieren.

    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;

    Ersetzen Sie Folgendes:

    • DATASET_NAME: der Name Ihres mit Storage Insights verknüpften Datasets in BigQuery.
    • BUCKET_NAME: der Name des betroffenen Buckets.
    • ALLOWED_ENCRYPTION_TYPES: eine durch Kommas getrennte Liste der Verschlüsselungstypen, die der Bucket zulässt, z. B. 'CMEK' oder 'CMEK', 'GMEK'.
  3. Wählen Sie anhand der folgenden Tabelle die Methode zur erneuten Verschlüsselung Ihrer Live-Objekte aus:

    Szenario Empfohlene Maßnahmen Details
    Bucket lässt kundenverwaltete Verschlüsselungsschlüssel (CMEK) zu Objekte mit CMEK neu verschlüsseln Exportieren Sie für Live-GMEK-Objekte CSV-Manifestdateien aus BigQuery und führen Sie einen Storage-Batchvorgangsjob aus, um die Objekte mit einem Cloud KMS-Schlüssel neu zu schreiben. Führen Sie für CSEK-verschlüsselte Objekte den Befehl gcloud storage objects update aus.
    Bucket lässt Standardverschlüsselung zu (GMEK) Objekte mit Standardverschlüsselung (GMEK) neu verschlüsseln Prüfen Sie, ob der Bucket keinen Standard-Cloud KMS-Schlüssel hat, und verwenden Sie dann den Befehl gcloud storage objects update mit dem Flag --clear-encryption-key, um betroffene Objekte mit Standardverschlüsselung umzuschreiben.
    Bucket lässt nur vom Kunden bereitgestellte Verschlüsselungsschlüssel (CSEK) zu Objekte mit CSEK neu verschlüsseln Verwenden Sie den Befehl gcloud storage objects update mit dem Flag --encryption-key, um betroffene Objekte mit Ihrem AES-256-Verschlüsselungsschlüssel neu zu schreiben.

    Nachdem Sie alle nicht konformen Objekte in einem Bucket neu verschlüsselt haben, wird das Ergebnis für diesen Bucket während des nächsten 24-Stunden-Aktualisierungszyklus gelöscht. In den folgenden Fällen bleibt das Ergebnis jedoch aktiv, bis Sie oder Cloud Storage die aufbewahrten Objektversionen endgültig löschen:

Objekte mit CMEK neu verschlüsseln

Wenn der Bucket kundenverwaltete Verschlüsselungsschlüssel (CMEK) zulässt, verschlüsseln Sie die betroffenen Objekte basierend auf ihrer aktuellen Verschlüsselungsmethode neu.

GMEK-verschlüsselte Objekte im großen Maßstab mit Storage-Batchvorgängen neu verschlüsseln

Wenn Sie GMEK-verschlüsselte Objekte in großem Umfang mit CMEK neu verschlüsseln möchten, exportieren Sie CSV-Manifestdateien aus BigQuery und führen Sie einen Storage-Batchvorgangsjob aus:

  1. Führen Sie die folgende EXPORT DATA-Abfrage in BigQuery aus, um ein CSV-Manifest mithilfe von Storage Insights-Datasets für betroffene Live-Objekte zu erstellen, die die Standardverschlüsselung (GMEK) verwenden:

    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;

    Ersetzen Sie Folgendes:

    • DESTINATION_BUCKET: der Name des Cloud Storage-Bucket, in dem Sie die exportierten CSV-Manifestdateien speichern möchten.
    • DATASET_NAME: der Name Ihres mit Storage Insights verknüpften Datasets in BigQuery.
    • BUCKET_NAME: der Name des betroffenen Buckets.
  2. Erfüllen Sie die Voraussetzungen für Storage-Batchvorgänge und bitten Sie Ihren Administrator, die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den Cloud KMS-Schlüssel den beiden folgenden Dienst-Agents zuzuweisen:

    • Der Dienst-Agent für Storage-Batchvorgänge (service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.iam.gserviceaccount.com)
    • Der Cloud Storage-Dienst-Agent (service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)

    Ersetzen Sie PROJECT_NUMBER durch die Projektnummer des Projekts, das den Bucket enthält.

  3. Führen Sie den Befehl gcloud storage batch-operations jobs create aus, um mithilfe der Manifestdatei einen Storage-Batchvorgangsjob zu erstellen und die Objekte mit Ihrem Cloud KMS-Schlüssel neu zu schreiben. Wenn Sie die Jobkonfiguration vor dem Ändern von Objekten prüfen möchten, fügen Sie das Flag --dry-run ein:

    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"

    Ersetzen Sie Folgendes:

    • JOB_NAME: eine eindeutige ID für den Batchjob, z. B. re-encrypt-objects-job.
    • BUCKET_NAME: der Name des betroffenen Buckets.
    • DESTINATION_BUCKET: der Name des Buckets, der Ihre exportierten Manifestdateien enthält.
    • KMS_KEY: der Ressourcenname des Cloud KMS-Schlüssels, den Sie zum Verschlüsseln der Objekte verwenden möchten. Der Schlüssel muss sich am selben Standort wie der Bucket befinden und das Format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY haben.

CSEK-verschlüsselte Objekte mit der Google Cloud CLI neu verschlüsseln

Da Google Cloud keine vom Kunden bereitgestellten Verschlüsselungsschlüssel (CSEK) speichert, können Storage-Batchvorgänge keine mit CSEK verschlüsselten Objekte entschlüsseln. Wenn Sie CSEK-verschlüsselte Objekte mit CMEK neu verschlüsseln möchten, führen Sie den Befehl gcloud storage objects update mit den Flags --decryption-keys und --encryption-key aus:

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

Ersetzen Sie Folgendes:

  • BUCKET_NAME: der Name des betroffenen Buckets.
  • OBJECT_NAME: der Name des CSEK-verschlüsselten Objekts, das Sie neu verschlüsseln möchten. Wenn Sie mehrere Objekte mit einem einzigen Befehl aktualisieren möchten, verwenden Sie URI-Platzhalter oder das Flag --read-paths-from-stdin (-I).
  • DECRYPTION_KEY: der gemäß RFC 4648 mit Base64 codierte AES-256-Schlüssel, der das Objekt verschlüsselt.
  • KMS_KEY: der Ressourcenname des Cloud KMS-Schlüssels, den Sie zum Verschlüsseln des Objekts verwenden möchten, im Format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Objekte mit Standardverschlüsselung (GMEK) neu verschlüsseln

Wenn Sie Objekte mit der Standardverschlüsselung (standardmäßige Google-Verschlüsselung oder GMEK) neu verschlüsseln möchten, prüfen Sie, ob der Bucket einen Cloud KMS-Standardschlüssel hat, und löschen Sie den benutzerdefinierten Verschlüsselungsschlüssel für jedes betroffene Objekt:

  1. Prüfen Sie, ob der Bucket einen Cloud KMS-Standardschlüssel hat. Wenn Sie den benutzerdefinierten Verschlüsselungsschlüssel eines Objekts löschen, verschlüsselt Cloud Storage das Objekt nur dann mit der Standardverschlüsselung (GMEK), wenn der Bucket keinen Cloud KMS-Standardschlüssel hat. Wenn der Bucket einen Standard-Cloud KMS-Schlüssel hat, verschlüsselt Cloud Storage das Objekt stattdessen mit diesem Schlüssel. Wenn der Bucket auch CMEK einschränkt, schlägt das Umschreiben fehl.

    Führen Sie den Befehl gcloud storage buckets update mit dem Flag --clear-default-encryption-key aus, um einen Cloud KMS-Standardschlüssel aus dem Bucket zu entfernen:

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

    Ersetzen Sie BUCKET_NAME durch den Namen des betroffenen Buckets.

  2. Verwenden Sie den Befehl gcloud storage objects update mit dem Flag --clear-encryption-key, um die betroffenen Objekte mit der Standardverschlüsselung neu zu schreiben. Wenn die Objekte mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (CSEK) verschlüsselt sind, fügen Sie auch das Flag --decryption-keys hinzu:

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

    Ersetzen Sie Folgendes:

    • BUCKET_NAME: der Name des betroffenen Buckets.
    • OBJECT_NAME: der Name des Objekts, das Sie neu verschlüsseln möchten. Wenn Sie mehrere Objekte mit einem einzigen Befehl aktualisieren möchten, verwenden Sie URI-Platzhalter (z. B. gs://BUCKET_NAME/**) oder das Flag --read-paths-from-stdin (-I).
    • DECRYPTION_KEY: Wenn das Objekt mit CSEK verschlüsselt ist, der RFC 4648-base64-codierte AES-256-Schlüssel, der das Objekt verschlüsselt. Wenn das Objekt mit CMEK verschlüsselt ist, lassen Sie das Flag --decryption-keys weg.

Objekte mit CSEK neu verschlüsseln

Wenn der Bucket nur vom Kunden bereitgestellte Verschlüsselungsschlüssel (CSEK) zulässt, verwenden Sie den Befehl gcloud storage objects update mit dem Flag --encryption-key, um die betroffenen Objekte mit Ihrem AES-256-Verschlüsselungsschlüssel umzuschreiben. Wenn ein Objekt mit einem anderen CSEK verschlüsselt ist, fügen Sie auch das Flag --decryption-keys hinzu:

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

Ersetzen Sie Folgendes:

  • BUCKET_NAME: der Name des betroffenen Buckets.
  • OBJECT_NAME: der Name des Objekts, das Sie neu verschlüsseln möchten. Wenn Sie mehrere Objekte mit einem einzigen Befehl aktualisieren möchten, verwenden Sie URI-Platzhalter oder das Flag --read-paths-from-stdin (-I).
  • YOUR_ENCRYPTION_KEY: Ihr gemäß RFC 4648 mit Base64 codierter AES-256-Verschlüsselungsschlüssel-String.
  • DECRYPTION_KEY: Wenn das Objekt mit einem anderen CSEK verschlüsselt ist, der gemäß RFC 4648 mit Base64 codierte AES-256-Schlüssel, der das Objekt verschlüsselt. Wenn das Objekt mit GMEK oder CMEK verschlüsselt ist, lassen Sie das Flag --decryption-keys weg.

Nächste Schritte