Vom Kunden verwaltete Verschlüsselungsschlüssel

Einrichtung

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.

Überblick

Wenn Sie mehr Kontrolle über Schlüsselvorgänge benötigen, als die Standardverschlüsselung von Cloud Storage zulässt, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel 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 vom Kunden verwaltete Verschlüsselungsschlüssel für einzelne Objekte verwenden oder Ihren Bucket so konfigurieren, dass ein Schlüssel standardmäßig für alle neuen Objekte verwendet wird, die einem Bucket hinzugefügt werden.

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.

Wann wird der Schlüssel verwendet?

Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel auf ein Objekt anwenden, verwendet Cloud Storage den Schlüssel, um Folgendes zu 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 vom Kunden verwalteten Verschlüsselungsschlüssel deaktiviert oder gelöscht haben.

Kundenservicemitarbeiter

Jedes Projekt verfügt über ein spezielles Cloud Storage-Dienstkonto, dem sogenannten Dienst-Agent, der die Verschlüsselung und Entschlüsselung mit vom Kunden verwalteten Verschlüsselungsschlüsseln durchführt. Nachdem Sie dem Dienst-Agent Zugriff auf einen Verschlüsselungsschlüssel gewährt haben, verschlüsselt dieser Dienst-Agent:

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 Sender ein Objekt lesen möchten, das mit einem vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsselt ist, können sie wie gewohnt auf das Objekt zugreifen. 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

Vom Kunden verwaltete Verschlüsselungsschlüssel unterliegen den folgenden Beschränkungen:

  • Sie können ein Objekt nicht mit einem vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsseln, indem Sie seine Metadaten aktualisieren. Fügen Sie den Schlüssel stattdessen hinzu, während Sie das Objekt neu schreiben.

    • gcloud storage verwendet den Befehl objects 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 in US-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 Multiregion US erstellt werden.

    • Für die vordefinierten Dual-Regionen ASIA1, EUR4 und NAM4 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 vom Kunden verwalteten Verschlüsselungsschlüsseln verschlüsselt wurden, werden beim Auflisten von Objekten mit der JSON API nicht zurückgegeben.

    • Gegebenenfalls führen einige Tools wie gcloud storage für jedes Objekt, das mit einem vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsselt ist, eine zusätzliche Metadatenanfrage GET durch, um CRC32C- und MD5-Informationen abzurufen. Diese zusätzliche 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.
  • Cloud Storage kann den Entschlüsselungsabschnitt von asymmetrischen Schlüsseln, die in Cloud KMS gespeichert sind, nicht verwenden, um relevante Objekte automatisch auf dieselbe Weise zu entschlüsseln wie von Kunden verwaltete Verschlüsselungsschlüssel.

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 vom Kunden verwalteter Schlüssel 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:

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

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

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

  4. 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üllen, kann die Schlüsselversion gelöscht werden, auch wenn die Objekte nicht gelöscht werden. In diesem Fall sind die betroffenen Objektdaten dauerhaft unzugänglich.

Nächste Schritte