Standardmäßig verschlüsselt Sicherung für GKE inaktive Kundendaten. Sicherung für GKE übernimmt die Verschlüsselung für Sie. Zusätzliche Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.
Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Sicherung für GKE verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.
Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Sicherung für GKE-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
Übersicht
Es gibt zwei Arten von Nutzerdatenartefakten, die über die Sicherung für GKE erstellt und gespeichert werden:
- Konfigurationssicherung: Eine Reihe von Kubernetes-Ressourcenbeschreibungen, die aus dem API-Server des Clusters extrahiert wurden, der die Sicherung ausführt, und den Clusterstatus erfasst.
- Volume-Sicherungen: Eine Reihe von Volume-Sicherungen, die
PersistentVolumeClaim
-Ressourcen in der Konfigurationssicherung entsprechen.
Standardmäßig werden alle Sicherungsartefakte, die über "Sicherung für GKE" erstellt wurden, im inaktiven Zustand mit einem von Google bereitgestellten Schlüssel verschlüsselt.
Sie können diese Artefakte jedoch mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) verschlüsseln, der über den Cloud Key Management Service verwaltet wird, wenn gewünscht.
CMEK-Verschlüsselung aktivieren
Die CMEK-Verschlüsselung wird in zwei Schritten aktiviert:
Legen Sie einen Schlüssel zum Verschlüsseln von Sicherungen fest, die für einen
BackupPlan
erstellt wurden.Gewähren Sie den entsprechenden Dienstkonten Zugriff auf die entsprechenden Schlüssel.
Für jedes Sicherungsszenario sind möglicherweise drei CMEK-Schlüssel beteiligt:
bplan_key
: Dies ist der Schlüssel, auf den Sie beim Erstellen oder Aktualisieren vonBackupPlan
verweisen. Nach Möglichkeit dieser Schlüssel, der beim Verschlüsseln aller Sicherungsartefakte verwendet wird. Dieser Schlüssel muss sich in derselben Region wie derBackupPlan
selbst befinden (siehe Informationen zu Ressourcenstandorten).orig_disk_key
: Wenn Sie die nichtflüchtige Speicher-Volumes mit einem CMEK-Schlüssel verschlüsselt haben, werden die von "Sicherung für GKE" für diese Volumes generierten Volume-Sicherungen mit diesem Schlüssel verschlüsselt, auch wenn ein anderer Schlüssel beimBackupPlan
registriert ist.new_disk_key
: Dies ist der CMEK-Schlüssel, den Sie zum Verschlüsseln von Volumes verwenden möchten, die Sie aus der Sicherung wiederhergestellt haben. Dies wird durch dieStorageClass
im Zielcluster der Wiederherstellung referenziert.
Es gibt vier verschiedene Dienstkonten, die möglicherweise Zugriff auf CMEK-Schlüssel erfordern:
agent_robot
: Dieses Dienstkonto muss Zugriff auf denbplan_key
haben. Dieses Dienstkonto hat das Formatservice-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
, wobeiPROJECT_NUMBER
die Nummer Ihres Google Cloud -Projekts ist.non_cmek_service_agent
: Beim Sichern von nicht CMEK-verschlüsselten Volumes muss diesem Dienstkonto Zugriff auf dasbplan_key
gewährt werden. Dieses Dienstkonto hat das Formatservice-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com
, wobeiPROJECT_NUMBER
die Nummer Ihres Google Cloud -Projekts ist.cmek_service_agent
: Beim Sichern von CMEK-verschlüsselten Volumes muss diesem Dienstkonto Zugriff auf dasorig_disk_key
gewährt werden. Dieses Dienstkonto hat das Formatservice-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
, wobeiTENANT_PROJECT_NUMBER
die Nummer des Mandantenprojekts ist, das IhremBackupPlan
zugewiesen ist.compute_service_agent
: Dieses Dienstkonto wird beim Erstellen neuer verschlüsselter Volumes für einen Cluster verwendet. Er muss Zugriff auf dennew_disk_key
haben. Dieses Dienstkonto hat das Formatservice-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
, wobeiPROJECT_NUMBER
die Nummer Ihres Google Cloud -Projekts ist.
Wenn diskEncryptionKey.kmsKeyServiceAccount für die Laufwerke festgelegt ist, müssen Sie die folgenden Schritte ausführen, bevor Sie eine Sicherung erstellen:
Deaktivieren Sie die Organisationsrichtlinie
iam.disableCrossProjectServiceAccountUsage
, um die projektübergreifende Identitätsübernahme für Dienstkonten zu aktivieren:gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage --project=PROJECT_ID
cmek_service_agent
die Rolleroles/iam.serviceAccountTokenCreator
zum Erstellen kurzlebiger Anmeldedaten zuweisen:gcloud iam service-accounts add-iam-policy-binding \ # Replace the email with the value from # `diskEncryptionKey.kmsKeyServiceAccount` your-kms-key-service-acount@PROJECT_ID.iam.gserviceaccount.com \ --member=service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Wenn Sie eine projektübergreifende Sicherung oder Wiederherstellung durchführen, müssen drei Projektnamen aufgeführt werden:
cluster_project
: das Projekt, das den Cluster enthält, den Sie sichern möchten.backup_project
: das Projekt, in dem Ihre Sicherungen gespeichert werden sollen.restore_project
: das Projekt, das den Zielcluster der Wiederherstellung enthält.
In der folgenden Tabelle ist zusammengefasst, welche Dienstkonten in welchen Szenarien Zugriff auf welche Schlüssel erhalten müssen:
Artefakt | Dienstkonto | Projektnummer | Schlüssel |
---|---|---|---|
config backup cluster | agent_robot |
|
bplan_key |
Sicherung von CMEK-verschlüsseltem Volume | cmek_service_agent | backup_project | orig_disk_key |
Sicherung eines von Google verschlüsselten Volumes | non_cmek_service_agent | backup_project | bplan_key |
Neues mit CMEK verschlüsseltes Volume, das während der Wiederherstellung erstellt wurde | compute_service_agent | restore_project | new_disk_key |
Sie können Zugriff auf Schlüssel auf Projektebene (erteilt Zugriff auf alle Schlüssel unter diesem Projekt) oder auf den einzelnen Schlüssel gewähren.
Zugriff auf Projektebene gewähren
Sie können Zugriff auf Schlüssel auf Projektebene gewähren. Dadurch wird Zugriff auf alle Schlüssel in diesem Projekt gewährt.
Mit der folgenden Anleitung können Sie den Zugriff auf Projektebene gewähren.
Console
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Dienstkontos ein.
Wählen Sie in der Liste Rolle auswählen die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
Klicken Sie auf Speichern.
gcloud
Gewähren Sie Zugriff auf Projektebene.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, auf das Sie Zugriff gewähren möchten.PROJECT_NUMBER
: die Nummer des Projekts, auf das Sie Zugriff gewähren möchten.
Terraform
Gewähren Sie Zugriff auf Projektebene.
resource "google_project_iam_member" "example_iam_member" { project = "PROJECT_ID" role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, auf das Sie Zugriff gewähren möchten.PROJECT_NUMBER
: die Nummer des Projekts, auf das Sie Zugriff gewähren möchten.
Zugriff auf Schlüsselebene gewähren
Mit der folgenden Anleitung können Sie den Zugriff auf Ebene einzelner Schlüssel gewähren.
Console
Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.
Klicken Sie auf den Name n des Schlüsselbunds.
Klicken Sie auf den Namen des Schlüssels.
Klicken Sie auf den Tab Berechtigungen.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Dienstkontos ein.
Wählen Sie in der Liste Rolle auswählen die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
Klicken Sie auf Speichern.
gcloud
Gewähren Sie den Zugriff auf Ebene einzelner Schlüssel.
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Ersetzen Sie Folgendes:
KEY_NAME
: Der Name des Schlüssels.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION
: der Cloud KMS-Speicherort des Schlüsselbunds.PROJECT_NUMBER
: die Nummer des Projekts, auf das Sie Zugriff gewähren möchten.
Terraform
Gewähren Sie den Zugriff auf Ebene einzelner Schlüssel.
resource "google_kms_crypto_key_iam_member" "crypto_key_iam_member" { crypto_key_id = "projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, auf das Sie Zugriff gewähren möchten.LOCATION
: der Cloud KMS-Speicherort des Schlüsselbunds.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthältKEY_NAME
: Der Name des Schlüssels.PROJECT_NUMBER
: die Nummer des Projekts, auf das Sie Zugriff gewähren möchten.
Überlegungen und Einschränkungen zur Nutzung
Wenn Sie ein CMEK-verschlüsseltes Volume sichern möchten, müssen Sie Zugriff auf den Schlüssel dieses Laufwerks gewähren, auch wenn Sie die CMEK-Verschlüsselung in Ihrem
BackupPlan
nicht aktivieren.CMEK-Schlüssel müssen sich in derselben Region wie
BackupPlan
befinden, damit ein regionaler Ausfall den Zugriff auf den Schlüssel nicht entfernt, während Sicherungen weiterhin zugänglich sind. Diese Einschränkung kann jedoch nicht für Schlüssel erzwungen werden, die mit verschlüsselten Volumes gemeinsam genutzt werden. Wenn verschlüsselte Volumes verwendet werden, ist es möglich, dass die Wiederherstellung auch dann fehlschlägt, wenn eine Sicherung verfügbar ist, da der Verschlüsselungsschlüssel des Laufwerks möglicherweise nicht in derselben Region wie die Sicherung gespeichert wird.
Externe Schlüssel verwenden und verwalten
Mit Cloud External Key Manager (Cloud EKM) können Sie externe Schlüssel erstellen und verwalten. Externe Schlüssel sind Verweise auf Schlüssel, die sich außerhalb von Google Cloudbefinden. Diese Schlüssel werden bei einem unterstützten Partner für die externe Schlüsselverwaltung gespeichert. Weitere Informationen finden Sie unter Cloud External Key Manager.
Nachdem Sie einen externen Schlüssel mit Cloud EKM erstellt haben, können Sie ihn auf einen neuen Sicherungsplan anwenden, indem Sie die ID dieses Schlüssels beim Erstellen eines neuen Sicherungsplans angeben. Dieses Verfahren ist dasselbe wie das Anwenden eines Cloud KMS-Schlüssels auf einen neuen Sicherungsplan.
Sie können Key Access Justifications (KAJ) als Teil von Cloud EKM verwenden. Mit Key Access Justifications können Sie 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 Übersicht.