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
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 inus-west1
verwenden.Wenn Sie bereits einen Cloud KMS-Schlüssel am richtigen Speicherort haben, können Sie diesen Schritt überspringen.
Gewähren Sie AlloyDB Zugriff auf den Schlüssel.
- 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
- 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.
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:
Erstellen Sie eine Sicherung Ihres vorhandenen Clusters.
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.
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:
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.
Schlüssel aktivieren
So aktivieren Sie einen Schlüssel:
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:
Achten Sie darauf, dass für die Cloud KMS API in Ihrem Projekt Logging aktiviert ist .
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
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
- REGION: Die Region des Schlüssels, z. B.
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.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.