Business Intelligence
/21. Oktober 2024- Aktualisiert am 26. August 2025/6 Min. LesezeitCustomer-Managed Encryption in Google BigQuery
Bei der Wahl eines Cloud Anbieters begibt man sich unweigerlich in eine gewisse Abhängigkeit. Dabei steht gerade die Sicherheit und der Schutz der eigenen Daten für viele Verbraucher im Vordergrund. Wir haben uns deshalb im Rahmen unser Projekte in der Sovereign Cloud angeschaut wie man gleichzeitig einen selbst verwaltete Verschlüsslung und Google BigQuery zusammen nutzen kann. Hier kommen Customer-Managed Encryption Keys (CMEK) ins Spiel, die eine flexiblere und detailliertere Kontrolle ermöglichen.
Dieser Artikel beleuchtet, wie BigQuery mithilfe von benutzerdefinierten Verschlüsselungsschlüsseln eingerichtet wird, welche Google Cloud Komponenten involviert sind und wie diese konfiguriert werden können.
1. Warum Custom Encryption Keys?
Die Standardverschlüsselung in BigQuery verwendet Google-verwaltete Schlüssel, was für viele Anwendungsfälle ausreichend ist. Dennoch bieten benutzerdefinierte Schlüssel einige entscheidende Vorteile:
- Höhere Kontrolle: Benutzer können explizit steuern, welcher Schlüssel für die Verschlüsselung von Daten verwendet wird.
- Compliance-Anforderungen: Viele Branchen haben spezifische Anforderungen, die den Einsatz von kundenspezifischen Schlüsseln vorschreiben.
- Trennung von Pflichten: Durch die Verwendung von CMEK kann die Verantwortung für die Schlüsselverwaltung von der Datenverarbeitung getrennt werden.
2. Benötigte Cloud-Komponenten
Um benutzerdefinierte Verschlüsselungsschlüssel in BigQuery einzurichten, sind mehrere Google Cloud-Dienste erforderlich:
- Cloud Key Management Service (KMS): Dieser Dienst wird verwendet, um die Schlüssel zu erstellen und zu verwalten.
- Identity and Access Management (IAM): Hiermit werden Berechtigungen festgelegt, um sicherzustellen, dass nur autorisierte Benutzer oder Dienste Zugriff auf die Schlüssel haben.
- BigQuery: Die Datenbank selbst, die so konfiguriert wird, dass sie benutzerdefinierte Schlüssel für die Verschlüsselung nutzt.
3. Einrichten der Cloud-Komponenten
3.1 Cloud KMS Schlüssel erstellen
Zunächst muss ein Verschlüsselungsschlüssel über Cloud KMS erstellt werden. Dies erfolgt in der Regel über die Google Cloud Console oder per CLI:
1gcloud kms keyrings create my-key-ring --location=eu-west3
2
3gcloud kms keys create my-key \
4--location=eu-west3 \
5--keyring=my-key-ring \
6--purpose=encryptionIn diesem Beispiel wird ein Schlüsselbund (Key Ring) namens my-key-ring erstellt, der als Container für den Verschlüsselungsschlüssel my-key dient. Der Schlüssel ist für die Verschlüsselung vorgesehen und wird global verfügbar gemacht.
3.2 Berechtigungen festlegen
Es ist wichtig, die entsprechenden Berechtigungen zuzuweisen, damit BigQuery auf den Schlüssel zugreifen kann. Die Berechtigung wird durch das Hinzufügen der Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter zur BigQuery-Dienstkonto-ID gewährt:
1gcloud kms keys add-iam-policy-binding my-key \
2--location=eu-west3 \
3--keyring=my-key-ring \
4--member=serviceAccount:bigquery-service-account-id@project-id.iam.gserviceaccount.com \
5--role=roles/cloudkms.cryptoKeyEncrypterDecrypterDabei ist bigquery-service-account-id die ID des BigQuery-Dienstkontos. Dabei kann der KMS Schlüssel in einem anderen Projekt erstellt worden sein, als die Instanz von BigQuery. So kann es z.B. ein zentrales Projekt rein zur Schlüsselverwaltung geben auf welches dann mehrere andere Projekte zugreifen.
4. Verwendung von Custom Encryption Keys in BigQuery
Nachdem die Schlüssel erstellt und die Berechtigungen gesetzt wurden, kann BigQuery für die Nutzung von CMEK konfiguriert werden. Dies erfolgt durch das Setzen der default_kms_key_name Eigenschaft in den QuerySettings.
4.1 Beispiel für QuerySettings mit CMEK
In BigQuery können CMEK entweder bei der Erstellung von Datasets oder während der Abfrageerstellung verwendet werden. Ein einfaches Beispiel für das Erstellen eines neuen Datasets mit CMEK wäre:
1CREATE SCHEMA my_dataset
2 OPTIONS(
3 location = 'EU',
4 default_kms_key_name = 'projects/my-project/locations/europe-west3/keyRings/my-key-ring/cryptoKeys/my-key'
5);In diesem Beispiel wird das Dataset my_dataset erstellt und die Standard-KMS-Schlüsseloption gesetzt, sodass alle Tabellen innerhalb dieses Datasets mit dem angegebenen benutzerdefinierten Schlüssel verschlüsselt werden.
4.2 CMEK für Tabellen anwenden
Es ist auch möglich, CMEK auf Ebene einzelner Tabellen anzuwenden. Dies ist besonders dann nützlich, wenn innerhalb eines Datasets unterschiedliche Schlüssel für verschiedene Tabellen verwendet werden sollen:
1CREATE TABLE my_table (
2 id INT64,
3 name STRING
4)
5OPTIONS(
6 kms_key_name = 'projects/my-project/locations/europe-west3/keyRings/my-key-ring/cryptoKeys/my-key'
7);Hier wird die Tabelle my_table explizit mit dem benutzerdefinierten Verschlüsselungsschlüssel my-key verschlüsselt.
5. Verwaltung und Rotation von Schlüsseln
Ein großer Vorteil von CMEK ist die Möglichkeit, Schlüssel regelmäßig zu rotieren, ohne dass Datenentschlüsselung oder Datenverlust auftreten. Google Cloud KMS bietet automatische Rotationen an oder erlaubt es, manuelle Rotationen durchzuführen.
Schlüsselrotationen können über die Cloud Console oder CLI verwaltet werden:
1gcloud kms keys versions rotate \
2
3--location=europe-west3 \
4
5--keyring=my-key-ring \
6
7--key=my-keyBigQuery verwendet dann automatisch die neueste Version des Schlüssels, um neue Daten zu verschlüsseln, während ältere Daten mit der vorherigen Version des Schlüssels entschlüsselt werden.
6. Best Practices
- Schlüsselrotation: Es wird empfohlen, eine regelmäßige Rotation der Schlüssel durchzuführen, um die Sicherheit zu erhöhen.
- Zugriffsmanagement: Sorgfältige Verwaltung der IAM-Berechtigungen ist entscheidend, um den Zugriff auf die Schlüssel strikt zu kontrollieren.
- Audit-Logs: Die Verwendung von Audit-Logs zur Überwachung der Schlüsselzugriffe bietet eine zusätzliche Sicherheitsebene.
Fazit
Die Verwendung von benutzerdefinierten Verschlüsselungsschlüsseln in BigQuery bietet Unternehmen eine verbesserte Kontrolle und Flexibilität bei der Verwaltung von sensiblen Daten. Durch die Kombination von Google Cloud KMS, IAM und BigQuery können Verschlüsselungsanforderungen auf granularer Ebene umgesetzt werden, während gleichzeitig eine einfache und skalierbare Verwaltung gewährleistet ist.
CMEK ist eine leistungsstarke Möglichkeit, den Datenschutz zu optimieren und branchenspezifische Compliance-Vorgaben zu erfüllen, ohne die Performance und Benutzerfreundlichkeit von BigQuery zu beeinträchtigen.
Hier wie immer weitere Links zu dem Thema:
- https://cloud.google.com/bigquery/docs/customer-managed-encryption#bq_3 für eine detaillierten Überblick über das Feature
- https://developers.google.com/tink?hl=en ist die eingesetzte Verschlüsselungs Library für CMEK
- https://www.t-systems.com/resource/blob/692190/b58d402ea52c704946858c07e11b9aed/DL-Flyer-Peaks-and-Pies-T-Systems-EN-02-2024.pdf ein Blick auf unsere Zusammenarbeit mit T-Systems für die Umsetzung von Analyse Projekten in der Sovereign Cloud
- https://peaksandpies.com/blog/sovereign-cloud-ein-schluessel-zur-digitalen-souveraenitaet unser Einstiegsartikel zum Thema Sovereign Cloud
Lust auf einen
Austausch?


Newsletter
Als Erstes informiert, wenn es Neuigkeiten in der digitalen Welt gibt!
Durch die Bereitstellung Ihrer E-Mail-Adresse erklären Sie sich damit einverstanden, Newsletter und Werbe-E-Mails von uns zu erhalten. Wir respektieren Ihre Privatsphäre und werden Ihre Informationen nicht an Dritte weitergeben. Sie können sich jederzeit abmelden.
You've reached the end
Linienstrasse 222, 10119 Berlin
Raboisen 30, 20095 Hamburg
Conversion Optimierung
Business Intelligence
Digital Analytics
Marketing Automation
Team
Kontakt
Jobs
Datenschutzerklärung
Impressum
Cookie-Einstellungen
©2026 Peaks & Pies GmbH