Auf dieser Seite werden vom Kunden verwaltete Verschlüsselungsschlüssel und ihre Verwendung in Cloud Storage beschrieben. Weitere Verschlüsselungsoptionen finden Sie unter Datenverschlüsselungsoptionen.
Übersicht
Wenn Sie mehr Kontrolle über Schlüsselvorgänge benötigen, als die standardmäßige Verschlüsselung von Cloud Storage zulässt, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEKs) verwenden. Diese Schlüssel werden mit Cloud Key Management Service (Cloud KMS) erstellt und verwaltet und Sie speichern die Schlüssel als Softwareschlüssel in einem HSM-Cluster oder extern. Sie können CMEKs für einzelne Objekte verwenden oder Ihren Bucket so konfigurieren, dass standardmäßig für alle neuen Objekte, die einem Bucket hinzugefügt werden, ein Schlüssel verwendet wird.
Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel verwenden, wird ein Objekt von Cloud Storage zum Zeitpunkt der Speicherung in einem Bucket mit dem Schlüssel verschlüsselt. Das Objekt wird während der Speicherung automatisch von Cloud Storage entschlüsselt, wenn es für Anfragende bereitgestellt wird.
Sie können CMEKs direkt erstellen oder den Cloud KMS Autokey (Vorschau) verwenden, um diese Schlüssel für Sie zu erstellen. Weitere Informationen finden Sie unter Autokey-Übersicht.
Wann wird der Schlüssel verwendet?
Wenn Sie einen CMEK auf ein Objekt anwenden, verwendet Cloud Storage den Schlüssel zum Verschlüsseln:
- Die Daten des Objekts
- Die CRC32C-Prüfsumme des Objekts
- Den MD5-Hash des Objekts
Cloud Storage verwendet standardmäßige serverseitige Schlüssel zum Verschlüsseln der verbleibenden Metadaten für das Objekt, einschließlich des Objektnamens. Wenn Sie ausreichende Berechtigungen haben, können Sie also beispielsweise die meisten Metadaten lesen sowie Objekte auflisten und löschen, auch nachdem Sie den zugehörigen CMEK deaktiviert oder gelöscht haben.
Kundenservicemitarbeiter
Jedes Projekt verfügt über ein spezielles Cloud Storage-Dienstkonto, den sogenannten Dienst-Agent, der die Verschlüsselung und Entschlüsselung mit CMEKs durchführt. Nachdem Sie dem Dienst-Agent Zugriff auf einen Verschlüsselungsschlüssel gewährt haben, verschlüsselt dieser Dienst-Agent:
- Objekte, die einem Bucket hinzugefügt wurden, der den Schlüssel als Standardschlüssel verwendet
- Bestimmte Objekte, für die Sie angegeben haben, dass sie mit diesem Schlüssel verschlüsselt werden sollen
Wenn Sie sowohl einen Standardschlüssel für Ihren Bucket als auch einen spezifischen Schlüssel für die Anfrage festgelegt haben, verwendet Cloud Storage den spezifischen Schlüssel zum Verschlüsseln des Objekts, wenn ein Objekt in Cloud Storage hinzugefügt oder neu geschrieben wird.
Wenn ein Anforderer ein mit einem CMEK verschlüsseltes Objekt lesen möchte, greifen Sie wie gewohnt auf das Objekt zu. Bei einer solchen Anfrage entschlüsselt der Dienst-Agent automatisch das angeforderte Objekt, wenn diese Bedingungen gegeben sind:
- Der Dienst-Agent hat weiterhin die Berechtigung, mit dem Schlüssel zu entschlüsseln
- Sie haben den Schlüssel nicht deaktiviert oder gelöscht
Wenn eine dieser Bedingungen nicht erfüllt ist, entschlüsselt der Dienst-Agent die Daten nicht und die Anfrage schlägt fehl.
Beschränkungen
Die folgenden Einschränkungen gelten bei der Verwendung von CMEKs:
Eine Aktualisierung der Metadaten des Objekts führt nicht dazu, dass Sie ein Objekt mit einem CMEK verschlüsseln können. Fügen Sie den Schlüssel stattdessen hinzu, während Sie das Objekt neu schreiben.
gcloud storage
verwendet den Befehlobjects update
, um Verschlüsselungsschlüssel für Objekte festzulegen, aber der Befehl schreibt das Objekt als Teil der Anfrage neu.
Sie müssen den Cloud KMS-Schlüsselbund am selben Standort wie die Daten erstellen, die Sie verschlüsseln möchten. Beispiel: Wenn sich Ihr Bucket in
US-EAST1
befindet, muss jeder Schlüsselbund, der zum Verschlüsseln von Objekten in diesem Bucket verwendet wird, ebenfalls inUS-EAST1
erstellt werden.Für die meisten Dual-Regionen müssen Sie den Cloud KMS-Schlüsselbund in der zugehörigen Multiregion erstellen. Wenn sich Ihr Bucket beispielsweise im Paar
US-EAST1
,US-WEST1
befindet, muss jeder Schlüsselbund, der zum Verschlüsseln von Objekten in diesem Bucket verwendet wird, in der MultiregionUS
erstellt werden.Für die vordefinierten Dual-Regionen
ASIA1
,EUR4
undNAM4
müssen Sie den Schlüsselbund in derselben vordefinierten Dual-Region erstellen.Informationen zu verfügbaren Cloud KMS-Standorten finden Sie unter Cloud KMS-Standorte.
Verschlüsselungs- und Entschlüsselungsraten für Cloud KMS unterliegen einem Kontingent.
Die CRC32C-Prüfsumme und der MD5-Hash von Objekten, die mit CMEKs verschlüsselt sind, werden nicht zurückgegeben, wenn Objekte mit der JSON API aufgelistet werden
- Gegebenenfalls führen einige Tools wie
gcloud storage
für jedes mit einem CMEK verschlüsselte Objekt eine zusätzliche MetadatenanfrageGET
durch, um CRC32C- und MD5-Informationen abzurufen. Diese zusätzlichen Anfragen können die Auflistung wesentlich langsamer machen als die Auflistung von Objekten, die mit der standardmäßigen Cloud Storage-Verschlüsselung verschlüsselt sind.
- Gegebenenfalls führen einige Tools wie
Nur symmetrische Verschlüsselungsschlüssel können als CMEKs verwendet werden.
Bezug zu vom Kunden bereitgestellten Verschlüsselungsschlüsseln
Neben der Verschlüsselung, die vom Kunden verwaltet wird, bietet Cloud Storage zur Steuerung Ihrer Datenverschlüsselung auch vom Kunden bereitgestellte Verschlüsselungsschlüssel. Sie können verschiedene Objekte in einem einzelnen Bucket mit unterschiedlichen Verschlüsselungsmethoden verschlüsseln, beachten Sie aber Folgendes:
Ein einzelnes Objekt kann immer nur mit einer dieser Methoden verschlüsselt werden.
Wenn der Standardschlüssel für Ihren Bucket ein CMEK ist und Sie in einer Anfrage einen vom Kunden bereitgestellten Schlüssel angeben, verwendet Cloud Storage den vom Kunden bereitgestellten Schlüssel zum Verschlüsseln des Objekts.
Schlüsselverwaltung
In diesem Abschnitt werden Überlegungen zum Rotieren von Schlüsseln und Ersetzen von Schlüsseln sowie zum Deaktivieren oder Zerstören von Schlüsselversionen erläutert.
Schlüsselrotation
Cloud KMS unterstützt sowohl die automatische als auch die manuelle Schlüsselrotation auf eine neue Version. Nach dem Rotieren eines Schlüssels verwendet Cloud Storage die neue Version für alle Vorgänge, die mit dem Schlüssel verschlüsselt werden, z. B.:
Objektuploads, wenn der Ziel-Bucket den Schlüssel als Standardverschlüsselungsschlüssel verwendet.
Upload-, Kopier- oder Umschreibvorgänge für Objekte, die den Schlüssel im Vorgang verwenden.
Frühere Versionen des Schlüssels werden nicht deaktiviert oder zerstört, sodass Cloud Storage weiterhin vorhandene Objekte entschlüsseln kann, die zuvor mit diesen Versionen verschlüsselt wurden.
Schlüsselersatz
Beachten Sie die folgenden Richtlinien, wenn Sie den Schlüssel zum Verschlüsseln von Cloud Storage-Objekten durch einen neuen Schlüssel ersetzen:
Prüfen Sie Ihre Buckets, um zu sehen, welche den Schlüssel als Standardverschlüsselungsschlüssel verwenden. Ersetzen Sie bei diesen Buckets den alten Schlüssel durch einen neuen.
Dadurch wird sichergestellt, dass alle in den Bucket geschriebenen Objekte künftig den neuen Schlüssel verwenden.
Prüfen Sie Ihren Quellcode, um nachzuvollziehen, welche Anfragen den Schlüssel im laufenden Betrieb verwenden, z. B. beim Festlegen von Bucket-Konfigurationen und beim Hochladen, Kopieren oder Umschreiben von Objekten. Aktualisieren Sie diese Instanzen so, dass sie den neuen Schlüssel verwenden.
Suchen Sie in allen Buckets nach Objekten, die mit dem alten Schlüssel verschlüsselt sind. Verwenden Sie die Methode "Rewrite Object", um jedes Objekt mit dem neuen Schlüssel neu zu verschlüsseln.
Deaktivieren Sie alle Versionen des alten Schlüssels. Achten Sie nach dem Deaktivieren alter Schlüsselversionen bei Client- und Dienstlogs auf Vorgänge, die fehlschlagen, weil eine Version nicht mehr verfügbar ist.
Schlüsselversion deaktivieren oder löschen
Wenn Sie eine bestimmte Schlüsselversion deaktivieren oder zerstören, können Sie kein Objekt entschlüsseln, das derzeit mit dieser Schlüsselversion verschlüsselt ist.
Sie können das Objekt beispielsweise nicht herunterladen, kopieren oder umschreiben. Wenn Sie dies versuchen, wird ein Fehler angezeigt.
Wenn Sie eine Schlüsselversion deaktivieren, können Sie sie wieder aktivieren. Nach der erneuten Aktivierung können Sie auf Objekte zugreifen, die mit dieser Schlüsselversion verschlüsselt wurden.
Wenn Sie eine Schlüsselversion zerstören, sind Downloads von mit dieser Version verschlüsselten Objekten nie wieder möglich.
Bevor Sie eine Schlüsselversion deaktivieren oder zerstören, sollten Sie alle Objekte in allen Buckets identifizieren, die mit der spezifischen Schlüsselversion verschlüsselt wurden. Verwenden Sie nach der Identifizierung die Methode "Rewrite Object", um jedes Objekt mit einer neuen Schlüsselversion, einem völlig neuen Schlüssel oder serverseitigen Schlüsseln neu zu verschlüsseln.
Wenn Sie die Primärversion eines Schlüssels deaktivieren oder zerstören, können Sie den Schlüssel erst zur Verschlüsselung verwenden, wenn Sie eine neue Primärversion haben. Ohne Primärversion gilt beispielsweise Folgendes:
Sie können den Schlüssel nicht als Teil eines Upload-, Kopier- oder Umschreibvorgangs für Objekte angeben.
Sie können Objekte nicht in einen Bucket hochladen, kopieren oder umschreiben, in dem der Schlüssel als Standardverschlüsselungsschlüssel festgelegt ist, es sei denn, Sie geben im Rahmen des Vorgangs einen anderen gültigen Schlüssel an.
Sobald Sie eine Primärversion für Ihren Schlüssel haben, sind Vorgänge erfolgreich, bei denen der Schlüssel zum Verschlüsseln von Objekten verwendet wird.
Bevor Sie eine Schlüsselversion deaktivieren oder zerstören, die die primäre Version des Schlüssels ist, sollten Sie erst die Verwendung als primäre Version beenden. Dies kann auf zwei Arten geschehen:
- Sie können sie durch eine neue Primärversion ersetzen, normalerweise indem Sie eine Schlüsselrotation ausführen.
- Sie können Instanzen entfernen, in denen Sie den Schlüssel zur Verschlüsselung verwenden. Wenn Sie dies tun, verwendet Cloud Storage stattdessen serverseitige Schlüssel für die Verschlüsselung.
Schlüsselversionen und gesperrte Objekte
Wenn eine Schlüsselversion ein gesperrtes Objekt verschlüsselt, entweder weil das Objekt in einem Bucket mit einer gesperrten Aufbewahrungsrichtlinie gespeichert ist oder weil es eine eigene Konfiguration für gesperrte Aufbewahrung hat, lässt sich die Schlüsselversion nur löschen, wenn die folgenden Bedingungen erfüllt sind:
- Die Ablaufzeit der Aufbewahrung des verschlüsselten Objekts muss in der Vergangenheit liegen.
- Das verschlüsselte Objekt darf keine festgelegten Objekt-Holds haben.
Sobald alle relevanten Objekte diese Bedingungen erfüllt haben, kann die Schlüsselversion gelöscht werden, auch ohne die Objekte zu löschen. In diesem Fall sind die betroffenen Objektdaten dauerhaft unzugänglich.
Nächste Schritte
- Legen Sie CMEKs für Ihre Cloud Storage-Buckets und -Objekte fest.
- Weitere Informationen zur Verschlüsselung in Cloud Storage.
- Mehr über Cloud KMS erfahren