Verschlüsselungstypen für einen Bucket erzwingen oder einschränken

In diesem Dokument wird beschrieben, wie Sie konfigurieren, welche Verschlüsselungsmethoden für neue Objekte in einem Cloud Storage-Bucket zulässig oder eingeschränkt sind. Sie können einen Bucket so konfigurieren, dass die Verwendung der Standardverschlüsselung (Google-Standardverschlüsselung), von Kunden verwalteter Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) oder von Kunden bereitgestellter Verschlüsselungsschlüssel (Customer-Supplied Encryption Keys, CSEK) für alle neuen Objekte, die im Bucket erstellt werden, erzwungen oder eingeschränkt wird.

Um beispielsweise vor Ransomware-Angriffen zu schützen, können Sie festlegen, dass alle neuen Objekte entweder mit der Standardverschlüsselung oder mit CMEK verschlüsselt werden müssen, und die Verwendung von vom Kunden bereitgestellten Verschlüsselungsschlüsseln einschränken.

Weitere Informationen zu den verfügbaren Verschlüsselungsmethoden finden Sie unter Datenverschlüsselungsoptionen.

Cloud Storage erzwingt die Verschlüsselungskonfiguration für alle Aktionen, die ein neues Objekt erstellen, z. B. das Hochladen eines Objekts, das Kopieren eines Objekts, das Zusammensetzen von Objekten und das Wiederherstellen eines vorläufig gelöschten Objekts.

Hinweis

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage Admin (roles/storage.admin) für den Bucket zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren der Verschlüsselungserzwingung für einen Bucket benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Konfigurieren der Verschlüsselungserzwingung für einen Bucket erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um die Verschlüsselung für einen Bucket zu erzwingen:

  • Legen Sie die Konfiguration beim Erstellen eines neuen Buckets fest: storage.buckets.create
  • Konfiguration für einen vorhandenen Bucket aktualisieren: storage.buckets.update

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Bucket erstellen, in dem Verschlüsselungstypen erzwungen werden

Sie können die Verschlüsselungsmethoden angeben, die für die Objekte in einem Bucket zulässig oder eingeschränkt sind, wenn Sie einen neuen Bucket erstellen.

Wenn Sie einen Cloud KMS-Standardschlüssel für den Bucket festlegen, müssen Sie auch die Verschlüsselung mit CMEKs oder vom Kunden bereitgestellten Verschlüsselungsschlüsseln zulassen.

gcloud

  1. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

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

    Ersetzen Sie Folgendes:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit Standardverschlüsselung (Google-Standardverschlüsselung) beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können die Standardverschlüsselung verwenden.
      • FullyRestricted: Neue Objekte können nicht mit der Standardverschlüsselung verschlüsselt werden.
    • CMEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit CMEKs beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können CMEKs verwenden.
      • FullyRestricted: Neue Objekte können keine CMEKs verwenden.
    • CSEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Für neue Objekte können vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet werden.
      • FullyRestricted: Für neue Objekte können keine vom Kunden bereitgestellten Verschlüsselungsschlüssel verwendet werden.

    Sie müssen mindestens einen Verschlüsselungstyp zulassen. Wenn Sie die Erzwingungskonfiguration für einen bestimmten Verschlüsselungstyp weglassen, ist dieser Verschlüsselungstyp standardmäßig zulässig.

  2. Führen Sie den Befehl gcloud storage buckets create mit dem Flag --encryption-enforcement-file aus.

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

    Ersetzen Sie Folgendes:

    • BUCKET_NAME: der Name des Buckets.
    • ENCRYPTION_ENFORCEMENT_FILE: der Pfad zur JSON-Datei, die Sie im vorherigen Schritt erstellt haben.

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Erstellen Sie eine JSON-Datei mit den Einstellungen für den Bucket. Eine vollständige Liste der Einstellungen finden Sie in der Dokumentation zu Buckets: Insert. Die folgenden Einstellungen definieren nur den Bucket-Namen und die Verschlüsselung:

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

    Ersetzen Sie Folgendes:

    • BUCKET_NAME: Der Name des Buckets.
    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit Standardverschlüsselung (Google-Standardverschlüsselung) beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können die Standardverschlüsselung verwenden.
      • FullyRestricted: Neue Objekte können nicht mit der Standardverschlüsselung verschlüsselt werden.
    • CMEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit CMEKs beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können CMEKs verwenden.
      • FullyRestricted: Neue Objekte können keine CMEKs verwenden.
    • CSEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Für neue Objekte können vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet werden.
      • FullyRestricted: Für neue Objekte können keine vom Kunden bereitgestellten Verschlüsselungsschlüssel verwendet werden.

    Sie müssen mindestens einen Verschlüsselungstyp zulassen. Wenn Sie die Erzwingungskonfiguration für einen bestimmten Verschlüsselungstyp weglassen, ist dieser Verschlüsselungstyp standardmäßig zulässig.

  3. Verwenden Sie cURL, um die JSON API mit einer POST-Bucket-Anfrage aufzurufen:

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

    Ersetzen Sie Folgendes:

    • JSON_FILE_NAME: der Pfad zur JSON-Datei, die Sie im vorherigen Schritt erstellt haben.
    • PROJECT_ID: die ID oder Nummer des Projekts für Ihren Bucket.

XML API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Erstellen Sie eine XML-Datei mit den Einstellungen für den Bucket. Eine vollständige Liste der Einstellungen finden Sie in der Dokumentation XML: Bucket erstellen. Die folgenden Einstellungen definieren nur die Erzwingung der Verschlüsselung:

    <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>

    Ersetzen Sie Folgendes:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit Standardverschlüsselung (Google-Standardverschlüsselung) beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können die Standardverschlüsselung verwenden.
      • FullyRestricted: Neue Objekte können nicht mit der Standardverschlüsselung verschlüsselt werden.
    • CMEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit CMEKs beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können CMEKs verwenden.
      • FullyRestricted: Neue Objekte können keine CMEKs verwenden.
    • CSEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Für neue Objekte können vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet werden.
      • FullyRestricted: Für neue Objekte können keine vom Kunden bereitgestellten Verschlüsselungsschlüssel verwendet werden.

    Sie müssen mindestens einen Verschlüsselungstyp zulassen. Wenn Sie die Erzwingungskonfiguration für einen bestimmten Verschlüsselungstyp weglassen, ist dieser Verschlüsselungstyp standardmäßig zulässig.

  3. Verwenden Sie cURL, um die XML API mit einer PUT-Bucket-Anfrage aufzurufen:

    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.s3nsapis.fr/BUCKET_NAME"

    Ersetzen Sie Folgendes:

    • XML_FILE_NAME: der Pfad zur XML-Datei, die Sie im vorherigen Schritt erstellt haben.
    • PROJECT_ID: die ID oder Nummer des Projekts für Ihren Bucket.
    • BUCKET_NAME: der Name des Buckets.

Zulässige Verschlüsselungstypen für einen Bucket aktualisieren

So aktualisieren Sie die zulässigen Verschlüsselungsmethoden für neue Objekte in einem vorhandenen Bucket:

Wenn für den Bucket ein KMS-Standardschlüssel festgelegt ist, können Sie nicht sowohl CMEK- als auch vom Kunden bereitgestellte Verschlüsselungsschlüssel einschränken, da sonst keine neuen Objekte erstellt werden könnten. Entweder Sie lassen CMEK oder CSEK für einen solchen Bucket zu oder Sie entfernen den Cloud KMS-Standardschlüssel aus dem Bucket.

gcloud

  1. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

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

    Ersetzen Sie Folgendes:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit Standardverschlüsselung (Google-Standardverschlüsselung) beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können die Standardverschlüsselung verwenden.
      • FullyRestricted: Neue Objekte können nicht mit der Standardverschlüsselung verschlüsselt werden.
    • CMEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit CMEKs beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können CMEKs verwenden.
      • FullyRestricted: Neue Objekte können keine CMEKs verwenden.
    • CSEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Für neue Objekte können vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet werden.
      • FullyRestricted: Für neue Objekte können keine vom Kunden bereitgestellten Verschlüsselungsschlüssel verwendet werden.

    Sie müssen mindestens einen Verschlüsselungstyp zulassen. Wenn Sie keinen Verschlüsselungstyp angeben, wird die vorhandene Konfiguration beibehalten.

  2. Führen Sie den Befehl gcloud storage buckets update mit dem Flag --encryption-enforcement-file aus.

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

    Ersetzen Sie Folgendes:

    • BUCKET_NAME: der Name des Buckets.
    • ENCRYPTION_ENFORCEMENT_FILE: der Pfad zur JSON-Datei, die Sie im vorherigen Schritt erstellt haben.

    Es kann bis zu zwei Minuten dauern, bis die aktualisierte Konfiguration wirksam wird.

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

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

    Ersetzen Sie Folgendes:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit Standardverschlüsselung (Google-Standardverschlüsselung) beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können die Standardverschlüsselung verwenden.
      • FullyRestricted: Neue Objekte können nicht mit der Standardverschlüsselung verschlüsselt werden.
    • CMEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit CMEKs beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können CMEKs verwenden.
      • FullyRestricted: Neue Objekte können keine CMEKs verwenden.
    • CSEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Für neue Objekte können vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet werden.
      • FullyRestricted: Für neue Objekte können keine vom Kunden bereitgestellten Verschlüsselungsschlüssel verwendet werden.

    Sie müssen mindestens einen Verschlüsselungstyp zulassen. Wenn Sie keinen Verschlüsselungstyp angeben, wird die vorhandene Konfiguration beibehalten.

  3. Verwenden Sie cURL, um die JSON API mit einer PATCH-Bucket-Anfrage aufzurufen:

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

    Ersetzen Sie Folgendes:

    • JSON_FILE_NAME: der Pfad zur JSON-Datei, die Sie im vorherigen Schritt erstellt haben.
    • BUCKET_NAME: der Name des Buckets.

    Es kann bis zu zwei Minuten dauern, bis die aktualisierte Konfiguration wirksam wird.

XML API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Erstellen Sie eine XML-Datei, die die Verschlüsselungseinstellungen für den Bucket enthält. Die folgenden Einstellungen definieren nur die Konfiguration für die Erzwingung der Verschlüsselung.

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

    Ersetzen Sie Folgendes:

    • STANDARD_ENCRYPTION_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit Standardverschlüsselung (Google-Standardverschlüsselung) beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können die Standardverschlüsselung verwenden.
      • FullyRestricted: Neue Objekte können nicht mit der Standardverschlüsselung verschlüsselt werden.
    • CMEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit CMEKs beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Neue Objekte können CMEKs verwenden.
      • FullyRestricted: Neue Objekte können keine CMEKs verwenden.
    • CSEK_RESTRICTION_MODE: Gibt an, ob die Verschlüsselung mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln beim Erstellen von Objekten in diesem Bucket zulässig ist. Folgende Werte werden unterstützt:
      • NotRestricted: Für neue Objekte können vom Kunden bereitgestellte Verschlüsselungsschlüssel verwendet werden.
      • FullyRestricted: Für neue Objekte können keine vom Kunden bereitgestellten Verschlüsselungsschlüssel verwendet werden.

    Sie müssen mindestens einen Verschlüsselungstyp zulassen.

  3. Verwenden Sie cURL, um die XML API mit einer PUT-Bucket-Anfrage aufzurufen, die auf ?encryptionConfig beschränkt ist:

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

    Ersetzen Sie Folgendes:

    • XML_FILE_NAME: der Pfad zur XML-Datei, die Sie im vorherigen Schritt erstellt haben.
    • BUCKET_NAME: der Name des Buckets.

    Es kann bis zu zwei Minuten dauern, bis die aktualisierte Konfiguration wirksam wird.

Verschlüsselungseinstellungen für einen Bucket ansehen

Eine Anleitung dazu, wie Sie herausfinden, welche Verschlüsselungsmethoden für einen Bucket zulässig sind, finden Sie unter Bucket-Metadaten abrufen.

Nächste Schritte