Vom Kunden verwaltete Verschlüsselungsschlüssel

Zu den Beispielen

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

Zusätzlich zu von Google verwalteten Verschlüsselungsschlüsseln können Sie vom Cloud Key Management Service generierte Schlüssel verwenden. Diese Schlüssel werden als vom Kunden verwaltete Verschlüsselungsschlüssel bezeichnet. Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel verwenden, werden Ihre Verschlüsselungsschlüssel in Cloud KMS gespeichert. Das Projekt, das Ihre Verschlüsselungsschlüssel enthält, kann dann unabhängig von dem Projekt sein, das Ihre Buckets enthält, wodurch eine bessere Aufgabentrennung ermöglicht 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.

Dienstkonten

Die Ver- und Entschlüsselung mit vom Kunden verwalteten Verschlüsselungsschlüsseln erfolgt mithilfe von Dienstkonten. Nachdem Sie Ihrem Cloud Storage-Dienstkonto Zugriff auf einen Verschlüsselungsschlüssel gewährt haben, verschlüsselt dieses Dienstkonto:

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. Während einer solchen Anfrage entschlüsselt das Dienstkonto das angeforderte Objekt automatisch, solange:

  • Das Dienstkonto weiterhin über die Berechtigung verfügt, mit dem Schlüssel zu entschlüsseln
  • Sie den Schlüssel nicht deaktiviert oder zerstört haben

Wenn eine dieser Bedingungen nicht erfüllt ist, entschlüsselt das Dienstkonto die Daten nicht und die Anfrage schlägt fehl.

Wichtige Ressourcen

Eine Cloud KMS-Schlüsselressource hat folgendes Format:

projects/[PROJECT_STORING_KEYS]/locations/[LOCATION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]

Dabei gilt:

  • [PROJECT_STORING_KEYS] ist die ID des Projekts, das mit dem Schlüssel verknüpft ist. Beispiel: my-pet-project
  • [LOCATION] ist der Speicherort des Schlüssels. Beispiel: US-EAST1
  • [KEY_RING_NAME] ist der Name des Schlüsselbunds. Beispiel: my-key-ring
  • [KEY_NAME] ist der Name des Schlüssels. Beispiel: my-key

Beschränkungen

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

  • Sie können die Methode "Compose Object" der JSON API nicht verwenden, wenn mindestens eines der Quellobjekte mit einem vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsselt ist.

  • Eine Aktualisierung der Metadaten des Objekts führt nicht dazu, dass Sie ein Objekt mit einem vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsseln können. Fügen Sie den Schlüssel stattdessen hinzu, während Sie das Objekt neu schreiben.

  • Sie müssen den Cloud KMS-Schlüssel am selben Standort wie die Daten erstellen, die Sie verschlüsseln möchten. Beispiel: Wenn sich Ihr Bucket in US-EAST1 befindet, müssen alle Cloud KMS-Schlüssel, die Objekte in diesem Bucket verschlüsseln, ebenfalls in US-EAST1 erstellt werden. Informationen zu verfügbaren Cloud KMS-Standorten finden Sie unter Cloud KMS-Standorte.

  • Sie können einen vom Kunden verwalteten Verschlüsselungsschlüssel nicht als Teil einer Übertragung des Storage Transfer Service angeben. Solche Schlüssel für Quellobjekte werden nicht auf die übertragenen Objekte angewendet. Legen Sie stattdessen vor der Übertragung den vom Kunden verwalteten Schlüssel als Standardschlüssel für Ihren Bucket fest.

Bezug zu vom Kunden bereitgestellten Verschlüsselungsschlüssel

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.

  • Sie können als Standardschlüssel für Ihren Bucket einen vom Kunden verwalteten Schlüssel festlegen, aber keinen vom Kunden bereitgestellten Schlüssel.

Schlüsselverwaltung: Schlüsselversionen rotieren, deaktivieren oder löschen

Rotation mit Cloud Key Management Service

Cloud KMS unterstützt sowohl die automatische als auch die manuelle Schlüsselrotation. Nach dem Rotieren eines Schlüssels wird die neue Version zur primären Version für alle Vorgänge in Cloud Storage, die etwas mit dem Schlüssel verschlüsseln. Beispiel:

  • Objekte, die mit dem Schlüssel als Standardverschlüsselungsschlüssel in Buckets hochgeladen werden, werden jetzt mit der neuen Schlüsselversion verschlüsselt.

  • Für das Hochladen, Kopieren und Umschreiben von Objekten, die speziell auf den Schlüssel verweisen, wird jetzt die neue Schlüsselversion verwendet.

Frühere Versionen des Schlüssels werden weder deaktiviert noch gelöscht. Daher können vorhandene Objekte, die mit diesen Versionen verschlüsselt wurden, weiterhin von Cloud Storage entschlüsselt werden.

Schlüsselversionen deaktivieren oder löschen

Das Deaktivieren und Löschen bestimmter Schlüsselversionen hat folgende Auswirkungen auf Cloud Storage-Buckets und -Objekte:

Wenn es sich um eine primäre Version handelt und keine neue primäre Version festgelegt wurde oder wenn alle Schlüsselversionen deaktiviert oder gelöscht wurden:

  • Uploads in Buckets, die den Schlüssel standardmäßig verwenden, führen zu einem Fehler.
  • Upload-, Kopier- oder Umschreibvorgänge für Objekte, bei denen auf den Schlüssel verwiesen wird, führen zu einem Fehler.
  • Downloads von Objekten, die mit den betroffenen Schlüsselversionen verschlüsselt wurden, führen zu einem Fehler.

Wenn die Version keine primäre Version ist oder eine neue primäre Version festgelegt wurde, gilt Folgendes:

  • Downloads von Objekten, die mit den betroffenen Schlüsselversionen verschlüsselt wurden, führen zu einem Fehler.
  • Uploads in Buckets, die den Schlüssel standardmäßig verwenden, funktionieren weiterhin mit der Primärschlüsselversion.
  • Upload-, Kopier- oder Umschreibvorgänge für Objekte, bei denen auf den Schlüssel verwiesen wird, funktionieren weiterhin und zwar mit der Primärschlüsselversion.

Wenn Sie eine Schlüsselversion wieder aktivieren, können Sie die mit dieser Version verschlüsselten Objekte wieder herunterladen.

Wenn eine Schlüsselversion dauerhaft gelöscht wird, können Sie nie wieder mit dieser Version verschlüsselte Objekte herunterladen.

Alten Schlüssel durch neuen Schlüssel ersetzen

Wenn Sie einen vorhandenen Schlüssel (alle Versionen) nicht mehr mit Cloud Storage verwenden und durch einen neuen Schlüssel ersetzen möchten, empfehlen wir die folgenden Schritte:

  • Identifizieren Sie alle Buckets, die den alten Schlüssel als Standardschlüssel verwenden, und aktualisieren Sie diese so, dass sie den neuen Schlüssel verwenden. Dadurch wird sichergestellt, dass bei allen neuen Objektuploads in diese Buckets ab sofort der neue Schlüssel verwendet wird.

  • Identifizieren Sie alle Objekte in allen Buckets, die mit dem alten Schlüssel verschlüsselt wurden. Verwenden Sie die Methode [Rewrite Object][12], um jedes Objekt mit dem neuen Schlüssel neu zu verschlüsseln. Dadurch wird sichergestellt, dass nach dem Deaktivieren oder Löschen des alten Schlüssels weiterhin auf vorhandene Objekte zugegriffen werden kann.

  • Sie sollten den alten Schlüssel zuerst deaktivieren, bevor Sie ihn endgültig löschen. Behalten Sie die Client- und Dienstlogs im Blick, um zu prüfen, ob Vorgänge fehlschlagen, weil der alte Schlüssel nicht mehr verfügbar ist.

Hinweise zum Verwenden eines Schlüssels mit in Cloud Storage gespeicherten Daten

Bevor Sie Schlüsselverwaltungsvorgänge wie das Deaktivieren oder Löschen von Schlüsselversionen durchführen, sollten Sie unbedingt vollständig verstehen, wie der betroffene Schlüssel mit Ihren Buckets und Objekten verwendet wird. Beachten Sie Folgendes:

  • Buckets können einen Schlüssel als Standardschlüssel verwenden. Identifizieren Sie über die Console oder programmatisch alle Buckets, die auf den Schlüsselnamen verweisen.

    [LOCATION]/[KEY_RING_NAME]/[KEY_NAME]

  • Objekte werden mit einer bestimmten Schlüsselversion verschlüsselt. Identifizieren Sie über die Console oder programmatisch alle Objekte, die auf die jeweilige Schlüsselversion verweisen.

    [LOCATION]/[KEY_RING_NAME]/[KEY_NAME]/[KEY_VERSION]
  • Prüfen Sie Ihren Quellcode und Ihre Quellkonfiguration, um zu verstehen, auf welche Schlüssel für laufende Vorgänge in Cloud Storage verwiesen wird, einschließlich des Konfigurierens des Buckets und des Hochladens, Kopierens und Umschreibens von Objekten.

Weitere Informationen