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
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.
-
Führen Sie den Befehl
gcloud storage buckets createmit dem Flag--encryption-enforcement-fileaus.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
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.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.
Verwenden Sie
cURL, um die JSON API mit einerPOST-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.googleapis.com/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
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.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.
-
Verwenden Sie
cURL, um die XML API mit einerPUT-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.googleapis.com/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
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.
-
Führen Sie den Befehl
gcloud storage buckets updatemit dem Flag--encryption-enforcement-fileaus.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
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.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.
-
Verwenden Sie
cURL, um die JSON API mit einerPATCH-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.googleapis.com/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
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.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.
-
Verwenden Sie
cURL, um die XML API mit einerPUT-Bucket-Anfrage aufzurufen, die auf?encryptionConfigbeschränkt ist:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/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
- Cloud KMS-Standardschlüssel für einen Bucket festlegen
- Benutzerdefinierte Einschränkungen zum Erzwingen von Verschlüsselungstypen verwenden