Daten mit Verschlüsselungsschlüsseln schützen

Auf dieser Seite wird beschrieben, wie Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) für AlloyDB for PostgreSQL erstellen, konfigurieren und anwenden.

Weitere Informationen zu CMEK finden Sie unter Informationen zu CMEK.

CMEK-Schlüssel für AlloyDB erstellen und autorisieren

  1. Erstellen Sie einen Schlüssel im Cloud Key Management Service (Cloud KMS). AlloyDB unterstützt die folgenden Arten von Schlüsseln:

    Der Schlüssel muss sich am selben Standort wie Ihr AlloyDB-Cluster befinden. Ein AlloyDB-Cluster in us-west1 kann beispielsweise nur Schlüssel in us-west1 verwenden.

    Wenn Sie bereits einen Cloud KMS-Schlüssel am richtigen Speicherort haben, können Sie diesen Schritt überspringen.

  2. Gewähren Sie AlloyDB Zugriff auf den Schlüssel.

    1. Erstellen und zeigen Sie den Dienst-Agent mit der Google Cloud CLI an oder zeigen Sie ihn an, wenn das Konto bereits vorhanden ist:
        gcloud beta services identity create --service=alloydb.googleapis.com \
            --project=PROJECT

    Mit dem Befehl gcloud services identity wird der Dienst-Agent erstellt oder abgerufen, den AlloyDB für den Zugriff auf den Cloud KMS-Schlüssel in Ihrem Namen verwenden kann.

    Die Dienstkonto-ID ähnelt einer E-Mail-Adresse:

        Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
    
    1. Weisen Sie dem Dienstkonto die Rolle cloudkms.cryptoKeyEncrypterDecrypter zu:
        gcloud kms keys add-iam-policy-binding KEY \
            --location REGION \
            --keyring KEYRING \
            --project=PROJECT \
            --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \
            --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    Ersetzen Sie Folgendes:

    • KEY: die Cloud KMS-ID des Schlüssels
    • REGION: Die Region des Schlüssels, z. B. us-central1
    • PROJECT: die ID des Projekts des Schlüssels
    • KEYRING: die ID des Cloud KMS-Schlüsselbunds des Schlüssels

    Mit dieser Rolle wird dem Dienstkonto die Berechtigung zum Ver- und Entschlüsseln mit dem Cloud KMS-Schlüssel gewährt. Weitere Informationen finden Sie unter Cloud KMS-Berechtigungen und -Rollen.

CMEK-verschlüsselten Cluster erstellen

Wenn Sie einen neuen Cluster erstellen, können Sie auswählen, ob der Cluster mit der standardmäßigen von Google verwalteten Verschlüsselung verschlüsselt werden soll oder ob stattdessen ein CMEK-Schlüssel verwendet werden soll. Weitere Informationen finden Sie unter Cluster und zugehörige primäre Instanz erstellen.

Verschlüsselungsmethode und CMEK-Schlüssel eines Clusters ansehen

Console

In der Spalte Verschlüsselung auf der Seite Cluster wird angezeigt, ob für die einzelnen Cluster in Ihrem Projekt die von Google verwaltete Verschlüsselung oder CMEK verwendet wird.

ZUR CLUSTERSEITE

Wenn Sie die wichtigsten Details eines Clusters mit CMEK aufrufen möchten, klicken Sie in der Spalte Ressourcenname auf den Namen des Clusters. Das Feld Verschlüsselungsschlüssel auf der Detailseite enthält eine Beschreibung des Schlüssels, einschließlich eines Links zur zugehörigen Cloud KMS-Detailseite.

gcloud

Rufen Sie den Befehl gcloud alloydb clusters describe auf:

gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION

Ersetzen Sie Folgendes:

  • CLUSTER: Die ID des zu beschreibenden Clusters
  • PROJECT: die ID des Projekts des Clusters
  • REGION: Die Region des Clusters, z. B. us-central1

Die Ausgabe enthält das Feld encryptionInfo mit einer Zusammenfassung der Verschlüsselung des Clusters.

CMEK auf Sicherungen anwenden

Wenn Sie eine neue Sicherung erstellen, können Sie auswählen, ob sie mit der standardmäßigen von Google verwalteten Verschlüsselung oder mit einem CMEK-Schlüssel verschlüsselt werden soll. Weitere Informationen finden Sie unter On-Demand-Sicherung erstellen oder Automatische Sicherungen planen.

Sie haben auch die Möglichkeit, einen CMEK-Schlüssel auf den Cluster anzuwenden, der beim Wiederherstellen aus einer Sicherung erstellt wird, unabhängig von der Verschlüsselungsmethode der Sicherung. Weitere Informationen finden Sie unter Cluster wiederherstellen.

Schlüssel mit CMEK-Verschlüsselung rotieren

Es ist wichtig, die Auswirkungen der Rotation Ihrer vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) in Cloud Key Management Service (Cloud KMS) zu verstehen, wenn sie mit AlloyDB-Clustern verwendet werden.

Wenn Sie einen CMEK-Schlüssel rotieren, geschieht Folgendes mit Ihren vorhandenen AlloyDB-Daten:

  • Sofortiger Zugriff: Die Daten bleiben mit der ursprünglichen Version des Data Encryption Key (DEK) verschlüsselt, solange die frühere Version des Schlüssels in KMS verfügbar ist und weder deaktiviert noch gelöscht wurde.

  • Die vollständige Neuverschlüsselung von Daten erfolgt manuell: Wenn Sie alle Ihre AlloyDB-Daten mit der neuesten Primärschlüsselversion verschlüsseln möchten, müssen Sie sie neu verschlüsseln.

Wenn Sie Ihren vorhandenen Cluster mit einer neuen CMEK-Schlüsselversion neu verschlüsseln möchten, müssen Sie eine Sicherung und Wiederherstellung durchführen:

  1. Erstellen Sie eine Sicherung Ihres vorhandenen Clusters.

  2. Stellen Sie die Sicherung in einem neuen Cluster wieder her und geben Sie dabei die neue primäre CMEK-Schlüsselversion an.

Weitere Informationen finden Sie unter Cluster wiederherstellen.

Die häufige Rotation von CMEK-Schlüsseln mit AlloyDB erfordert einen erheblichen Betriebsaufwand. Da vorhandene Daten nicht automatisch neu verschlüsselt werden und die manuelle Neuverschlüsselung eine vollständige Sicherung und Wiederherstellung in einem neuen Cluster erfordert, können häufige Rotationen umständlich sein und sich auf die Verfügbarkeit oder die Komplexität der Verwaltung auswirken.

Sie können alte CMEK-Schlüsselversionen in Cloud KMS erst dann sicher löschen, wenn Sie bestätigt haben, dass alle relevanten AlloyDB-Daten manuell neu verschlüsselt wurden und die Daten eine neuere Schlüsselversion verwenden.

Verschlüsselungsmethode und CMEK-Schlüssel einer Sicherung ansehen

Console

In der Spalte Verschlüsselung auf der Seite Sicherungen wird angezeigt, ob für die einzelnen Cluster in Ihrem Projekt die von Google verwaltete Verschlüsselung oder CMEK verwendet wird.

Zur Seite „Sicherungen“

Wenn Sie die Schlüsseldetails einer Sicherung mit CMEK aufrufen möchten, klicken Sie auf Wiederherstellen. Das Feld Verschlüsselungsschlüssel im Detailbereich enthält eine Beschreibung des Schlüssels, einschließlich eines Links zur zugehörigen Cloud KMS-Detailseite.

gcloud

Rufen Sie den Befehl gcloud alloydb backups describe auf:

gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION

Ersetzen Sie Folgendes:

  • CLUSTER: die ID der zu beschreibenden Sicherung
  • PROJECT: die ID des Projekts der Sicherung
  • REGION: Die Region der Sicherung, z. B. us-central1

Die Ausgabe enthält das Feld encryptionInfo mit einer Zusammenfassung der Verschlüsselung der Sicherung.

Schlüssel deaktivieren

Wenn Sie den CMEK-Schlüssel eines Clusters deaktivieren, sind die Daten dieses Clusters nicht mehr zugänglich, bis Sie den Schlüssel wieder aktivieren.

Das Deaktivieren eines Schlüssels kann jedoch bis zu drei Stunden dauern, bis es in Ihrem AlloyDB-Cluster wirksam wird. So deaktivieren Sie einen Schlüssel und verhindern gleichzeitig den sofortigen Zugriff auf Ihre Daten:

  1. Löschen Sie die primäre Instanz Ihres Clusters. Die Daten Ihres Clusters sind davon nicht betroffen. Nachdem Sie den Schlüssel wieder aktiviert haben, können Sie eine neue primäre Instanz erstellen, wie im folgenden Abschnitt beschrieben.

  2. Schlüssel mit Cloud KMS deaktivieren

Schlüssel aktivieren

So aktivieren Sie einen Schlüssel:

  1. Cloud KMS zum Aktivieren des Schlüssels verwenden

  2. Wenn Sie die primäre Instanz Ihres Clusters gelöscht haben, bevor Sie den Schlüssel deaktiviert haben, erstellen Sie eine neue primäre Instanz.

Es kann bis zu drei Stunden dauern, bis die Aktivierung eines Schlüssels auf Ihren Cluster übertragen wird. Die Daten des Clusters sind verfügbar, sobald die Weitergabe erfolgt ist.

Audit-Logs für einen Cloud KMS-Schlüssel aufrufen

So rufen Sie Audit-Logs auf, die einem bestimmten CMEK-Schlüssel zugeordnet sind:

  1. Achten Sie darauf, dass für die Cloud KMS API in Ihrem Projekt Logging aktiviert ist .

  2. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zu „Log-Explorer“

  3. Beschränken Sie die Logeinträge auf Ihren Cloud KMS-Schlüssel, indem Sie dem Query Builder die folgenden Zeilen hinzufügen:

    resource.type="cloudkms_cryptokey"
    resource.labels.location="REGION"
    resource.labels.key_ring_id="KEYRING"
    resource.labels.crypto_key_id="KEY"
    

    Ersetzen Sie Folgendes:

    • REGION: Die Region des Schlüssels, z. B. us-central1
    • KEYRING: die ID des Cloud KMS-Schlüsselbunds des Schlüssels
    • KEY: die Cloud KMS-ID des Schlüssels
  4. Im Normalbetrieb werden Verschlüsselungs- und Entschlüsselungsvorgänge mit dem Schweregrad INFO protokolliert. Diese Einträge werden protokolliert, wenn die Instanzen in Ihrem AlloyDB-Cluster den Cloud KMS-Schlüssel validieren. Dies geschieht etwa alle fünf Minuten.

  5. Wenn AlloyDB nicht auf den Schlüssel zugreifen kann, werden die Vorgänge als ERROR protokolliert.

Zugriffsbegründungen für einen Cloud EKM-Schlüssel ansehen

Wenn Sie einen Cloud EKM-Schlüssel verwenden, können Sie mit Key Access Justifications den Grund für jede Cloud EKM-Anfrage aufrufen. Basierend auf der Begründung können Sie eine Anfrage außerdem automatisch genehmigen oder ablehnen. Weitere Informationen finden Sie unter Begründungen ansehen und darauf reagieren.