Objekte neu verschlüsseln, die gegen CMEK-Standardrichtlinien für Buckets verstoßen

Auf dieser Seite wird beschrieben, wie Sie mit dem Storage Intelligence-Berater Objekte identifizieren und neu verschlüsseln, die gegen die Standardrichtlinie für kundenverwaltete Verschlüsselungsschlüssel (CMEK) eines Buckets verstoßen.

Wenn Sie für einen Bucket einen Cloud KMS-Standardschlüssel festlegen, verschlüsselt Cloud Storage neue Objekte mit diesem Schlüssel, sofern in Ihrer Uploadanfrage kein anderer Schlüssel angegeben ist. Cloud Storage verschlüsselt jedoch nicht automatisch vorhandene Objekte neu, die Sie vor dem Festlegen des Standardschlüssels 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 die CMEK-Standardrichtlinien für Buckets an, wenn ein Bucket mit einem Standard-Cloud Key Management Service-Schlüssel (Cloud KMS) Objekte enthält, die nicht mit CMEK verschlüsselt sind. 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 Bucket- und Objektebene in Ihrem Projekt, Ordner oder Ihrer Organisation aus. Der Storage Intelligence-Berater generiert ein Ergebnis, wenn ein Bucket beide der folgenden Kriterien erfüllt:

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 verschlüsseln Sie sie mit dem Standard-Cloud KMS-Schlüssel des Buckets neu:

  1. Rufen Sie die Ergebnisdetails auf, um die betroffenen Buckets zu identifizieren, und kopieren Sie den Ressourcennamen des KMS-Standardschlüssels jedes Buckets.

  2. Optional: Wenn Sie die Liste der Objekte im Bucket aufrufen möchten, die nicht mit CMEK verschlüsselt sind, 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 != 'CMEK'
      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.
  3. Wählen Sie anhand der folgenden Tabelle die Methode zur erneuten Verschlüsselung Ihrer Live-Objekte aus:

    Szenario Empfohlene Maßnahmen Details
    Betroffene Live-Objekte verwenden die Standardverschlüsselung (GMEK) GMEK-verschlüsselte Objekte im großen Maßstab mit Storage-Batchvorgängen neu verschlüsseln Exportieren Sie CSV-Manifestdateien der betroffenen Live-GMEK-Objekte aus BigQuery und führen Sie einen Storage-Batchvorgangsjob aus, um die Objekte mit dem Cloud KMS-Standardschlüssel des Buckets neu zu schreiben.
    Betroffene Live-Objekte verwenden vom Kunden bereitgestellte Verschlüsselungsschlüssel (CSEK) 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. Verwenden Sie den Befehl gcloud storage objects update, um CSEK-verschlüsselte Objekte mit dem Cloud KMS-Standardschlüssel des Buckets 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:

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

Wenn Sie Live-GMEK-Objekte in großem Umfang 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 zu erstellen:

    EXPORT DATA OPTIONS(
      uri='gs://DESTINATION_BUCKET/manifests/objects_violating_default_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, den beiden folgenden Dienst-Agents die Rolle „Cloud KMS CryptoKey Encrypter/Decrypter“ (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den Standard-Cloud KMS-Schlüssel des Buckets 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 dem Cloud KMS-Standardschlüssel des Buckets neu zu verschlüsseln. 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_default_policies_*.csv" \
      --rewrite-object="kms-key=DEFAULT_KMS_KEY"

    Ersetzen Sie Folgendes:

    • JOB_NAME: eine eindeutige ID für den Batchjob, z. B. update-encryption-to-cmek-job.
    • BUCKET_NAME: der Name des betroffenen Buckets.
    • DESTINATION_BUCKET: der Name des Buckets, der Ihre exportierten Manifestdateien enthält.
    • DEFAULT_KMS_KEY: der Ressourcenname des Standard-Cloud KMS-Schlüssels des Buckets im Format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

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 mit CSEK verschlüsselte Objekte mit dem Standard-Cloud KMS-Schlüssel des Buckets 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=DEFAULT_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.
  • DEFAULT_KMS_KEY: der Ressourcenname des Standard-Cloud KMS-Schlüssels des Buckets im Format projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.

Nächste Schritte