DataSunrise sponsert AWS re:Invent 2024 in Las Vegas, bitte besuchen Sie uns am Stand #2158 von DataSunrise

BigQuery Sicherheit

BigQuery Sicherheit

bigquery Sicherheit

Google BigQuery bietet leistungsstarke Data-Warehouse-Fähigkeiten, doch sollte mit großer Macht verantwortungsbewusst umgegangen werden. Die Sicherung Ihrer BigQuery-Umgebung ist entscheidend, um sensible Informationen zu schützen und die Einhaltung von Datenbestimmungen sicherzustellen. Dieser Artikel beleuchtet verschiedene Aspekte der BigQuery-Sicherheit, von Netzwerkzugangskontrollen bis hin zu detaillierten Berechtigungen und Überwachung.

Verständnis von VPC-Dienststeuerungen

VPC-Dienststeuerungen fungieren als eine virtuelle Firewall für Ihre BigQuery-Ressourcen. Sie können Ihre Daten in BigQuery schützen, indem Sie auswählen, welche Netzwerke und IP-Adressen darauf zugreifen dürfen. Dies fügt eine zusätzliche Schutzebene gegen unbefugte Zugriffsversuche hinzu.

Um VPC-Dienststeuerungen für BigQuery einzurichten, müssen Sie eine Zugriffslevel-Richtlinie in Ihrer Google Cloud-Konsole erstellen. Diese Richtlinie definiert die IP-Bereiche, die mit Ihren BigQuery-Ressourcen interagieren dürfen. Sobald die Richtlinie eingerichtet ist, können Sie einen Dienstumfang erstellen, der BigQuery als eingeschränkten Dienst enthält.

Beispielsweise könnten Sie eine Richtlinie erstellen, die nur Zugriffe aus dem IP-Bereich Ihres Unternehmensnetzwerks zulässt. Dies stellt sicher, dass BigQuery-Abfragen nur innerhalb des Netzwerks Ihrer Organisation ausgeführt werden können, wodurch das Risiko externer Bedrohungen reduziert wird.

Die Implementierung von VPC-Dienststeuerungen erfordert eine sorgfältige Planung. Sie müssen verschiedene Möglichkeiten berücksichtigen, wie Sie auf BigQuery zugreifen können, beispielsweise über Vor-Ort-Netzwerke, Cloud-VPNs und andere Google Cloud-Projekte.

Diese Methoden bieten verschiedene Optionen für die Verbindung mit BigQuery. Sie sollten alle verfügbaren Optionen erkunden, um den besten Ansatz für Ihre Bedürfnisse zu bestimmen. Es ist oft hilfreich, mit einem “trockenen” Perimeter zu beginnen, um Ihre Konfiguration vor der Durchsetzung zu testen.

bigquery Sicherheit

Implementierung von IAM-Rollen und Berechtigungen

Identity und Access Management (IAM) ist das Rückgrat der BigQuery-Sicherheit. Es ermöglicht Ihnen zu kontrollieren, wer auf Ihre BigQuery-Ressourcen zugreifen kann und welche Aktionen sie ausführen können. Die mächtigste Rolle in BigQuery ist roles/bigquery.admin, welche volle Kontrolle über alle BigQuery-Ressourcen in einem Projekt gewährt.

Jedoch ist es im Allgemeinen besser, das Prinzip des geringsten Privilegs zu befolgen und spezifischere Rollen zuzuweisen. Zum Beispiel könnten Sie Datenanalysten die Rolle bigquery.user geben, die ihnen erlaubt, Abfragen zu starten und Datensätze zu erstellen, aber nicht bestehende Datensatzberechtigungen zu ändern.

Hier ist ein Beispiel, wie Sie die BigQuery-CLI verwenden können, um einem Benutzer die Rolle bigquery.user zu geben:

bq add-iam-policy-binding --member=user:[email protected] --role=roles/bigquery.user project-id

Dieser Befehl fügt den angegebenen Benutzer dem Projekt mit der Rolle bigquery.user hinzu.

Es ist wichtig, Ihre IAM-Richtlinien regelmäßig zu prüfen, um sicherzustellen, dass sie angemessen sind. Wenn Mitarbeiter ihre Rollen wechseln oder die Organisation verlassen, sollten ihre Berechtigungen entsprechend aktualisiert oder widerrufen werden. Sie können den IAM-Empfehler in Google Cloud verwenden, um übermäßig permissive Rollen zu identifizieren und zu entfernen.

Erstellung und Sicherung von BigQuery-Ansichten

BigQuery-Ansichten sind ein leistungsfähiges Werkzeug, um Zeilen- und Spaltensicherheit zu implementieren. Sie können sogenannte virtuelle Tabellen verwenden, um Daten zu filtern oder zu verändern, bevor Sie diese den Benutzern anzeigen.

Um eine Ansicht in BigQuery zu erstellen, können Sie die folgende SQL-Syntax verwenden:

CREATE VIEW `project.dataset.view_name` AS
SELECT column1, column2
FROM `project.dataset.table_name`
WHERE condition;

Zum Beispiel könnten Sie eine Ansicht erstellen, die nur Verkaufsdaten für eine bestimmte Region zeigt:

CREATE VIEW `sales.northeast_sales` AS
SELECT *
FROM `sales.all_sales`
WHERE region = 'Northeast';

Geben Sie Benutzern Zugriff auf eine bestimmte Ansicht anstatt auf die Tabelle, damit sie nur Daten sehen, die mit ihrer Rolle verwandt sind.

Sie können Ansichten auch verwenden, um komplexere Sicherheitsregeln umzusetzen. So könnten Sie beispielsweise eine Ansicht erstellen, die nur Daten für den aktuellen Benutzer zeigt:

CREATE VIEW `project.dataset.my_data` AS
SELECT *
FROM `project.dataset.all_data`
WHERE user_email = SESSION_USER();

Diese Ansicht filtert die Daten automatisch basierend auf der E-Mail des Benutzers, der die Abfrage ausführt.

Berechtigte Ansichten für den Querdatensatz-Zugriff

Berechtigte Ansichten in BigQuery ermöglichen es Ihnen, Ansichten in einem Datensatz zu erstellen. Diese Ansichten können dann auf Daten in einem anderen Datensatz zugreifen. Das System gewährt den Zugriff, auch wenn der Benutzer keine Berechtigung hat, den ursprünglichen Datensatz zu sehen. Dies ist besonders nützlich für die Implementierung von zugriffssteuerung auf Feinebene.

Um eine berechtigte Ansicht einzurichten, erstellen Sie zunächst die Ansicht in einem Datensatz und gewähren dann dieser Ansicht Zugriff auf den Quelldatensatz. Hier ist ein Beispiel:

-- Erstellen Sie die Ansicht in Datensatz A
CREATE VIEW `projectA.datasetA.sales_summary` AS
SELECT date, SUM(amount) as total_sales
FROM `projectB.datasetB.detailed_sales`
GROUP BY date;
-- Autorisieren Sie die Ansicht, um auf Daten in Datensatz B zuzugreifen
bq add-iam-policy-binding \
--member=serviceAccount:[email protected] \
--role=roles/bigquery.dataViewer \
projectB:datasetB

Dies erstellt eine Übersichtsansicht in Datensatz A, die detaillierte Verkaufsdaten in Datensatz B anzeigen kann, ohne dass Benutzern direkter Zugriff auf die detaillierten Daten gegeben wird.

Mächtige berechtigte Ansichten sollten sorgfältig eingesetzt werden. Jedes Mal, wenn Sie jemandem die Erlaubnis geben, etwas anzuzeigen, macht das Ihr Sicherheitssystem komplizierter. Stellen Sie sicher, dass Sie diese Berechtigungen im Auge behalten und sie oft überprüfen.

Implementierung der Spaltensicherheit

Die Spaltensicherheit in BigQuery ermöglicht es Ihnen, den Zugriff auf bestimmte Spalten innerhalb einer Tabelle einzuschränken. Dies ist besonders nützlich bei der Verarbeitung sensibler Informationen wie persönlich identifizierbaren Informationen.

Zur Implementierung der Spaltensicherheit können Sie die Funktion für Richtlinien-Tags von BigQuery nutzen. Zuerst erstellen Sie eine Taxonomie von Richtlinien-Tags und wenden diese dann auf bestimmte Spalten an. Schließlich gewähren Sie Benutzern oder Gruppen Zugriff auf bestimmte Richtlinien-Tags.

So könnte zum Beispiel ein Richtlinien-Tag mit der BigQuery-Datenrichtlinien-API erstellt werden:

POST https://datacatalog.googleapis.com/v1/projects/{project}/locations/{location}/taxonomies
{
"displayName": "Sensitive Data",
"description": "Tags for sensitive data columns",
"activatedPolicyTypes": ["FINE_GRAINED_ACCESS_CONTROL"]
}

Sie können Kategorien und Etiketten, die Sie erstellt haben, auf Spalten in Ihrem BigQuery-Setup verwenden. Sie können den Zugang auch mit IAM-Regeln steuern.

Spaltensicherheit kann Ihren Datenschutz erheblich verbessern, aber es fügt auch Komplexität zu Ihrem Datenmodell hinzu. Es ist wichtig, eine klare Strategie dafür zu haben, welche Spalten Schutz benötigen und wie der Zugang zu diesen Spalten verwaltet wird.

Überwachung und Protokollierung in BigQuery

Wirksame Sicherheit beinhaltet nicht nur Prävention, sondern auch Erkennung und Reaktion. BigQuery bietet robuste Protokollierungs- und Überwachungsfunktionen, die Ihnen helfen, die Nutzung zu verfolgen und potenzielle Sicherheitsprobleme zu identifizieren.

Sie können die Ansichten von BigQuery’s INFORMATION_SCHEMA verwenden, um Metadaten über Ihre BigQuery-Ressourcen abzufragen. Beispielsweise könnte man, um alle in den letzten Tagen ausgeführten Abfragen zu sehen, folgenden Code verwenden:

SELECT *
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE creation_time == TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
AND job_type = 'QUERY'
ORDER BY creation_time DESC;

Diese Abfrage liefert spezifische Details über jeden Job. Dazu gehören der Benutzer, der den Job ausgeführt hat, der verwendete Abfragetext und das Volumen der verarbeiteten Daten.

Zusätzlich zu den INFORMATION_SCHEMA-Ansichten können Sie auch Cloud Audit Logs nutzen, um BigQuery-Aktivitäten zu verfolgen. Cloud Audit Logs erfassen eine Vielzahl von Ereignissen, darunter die Erstellung und Löschung von Datensätzen, Tabellenaktualisierungen und Abfrageausführungen. Sie können diese Protokolle zur Langzeitarchivierung in Cloud Storage oder BigQuery exportieren.

Implementierung von GCP-Organisationsrichtlinien

GCP-Organisationsrichtlinien bieten eine zentralisierte Möglichkeit, Sicherheitskontrollen in Ihrer gesamten Google Cloud-Organisation zu verwalten. Sie können diese Regeln verwenden, um sicherzustellen, dass BigQuery sicher ist, wie beispielsweise die Sicherstellung, dass alle Tabellen einen Verschlüsselungsschlüssel haben.

Um eine Organisationsrichtlinie einzurichten, verwenden Sie die GCP-Konsole oder das gcloud-Kommandozeilen-Tool. Um beispielsweise zu verlangen, dass alle BigQuery-Datensätze regional beschränkt sind:

gcloud resource-manager org-policies enable-enforce \
constraints/bigquery.restrictDatasetLocation \
--organization=ORGANIZATION_ID

Diese Regel stellt sicher, dass alle neuen Datensätze einen aufgeführten Standort haben. Sie verhindert das versehentliche Erstellen von Datensätzen, die mehrere Regionen umfassen. Sie verhindert auch Verstöße gegen Datenresidenzbestimmungen.

Organisationsrichtlinien können ein mächtiges Werkzeug sein, um konsistente Sicherheitspraktiken in Ihrer gesamten Organisation durchzusetzen. Allerdings sollten Organisationen sie sorgfältig implementieren, da übermäßig einschränkende Richtlinien legitime Arbeit behindern können. Es ist oft hilfreich, mit Audit-Only-Richtlinien zu beginnen, bevor man sie durchsetzt.

Umgang mit “Berechtigung verweigert”-Fehlern

Auch bei starker Sicherheit können Benutzer immer noch “Berechtigung verweigert”-Fehler bekommen, wenn sie versuchen, auf BigQuery-Ressourcen zuzugreifen. Ein häufiger Fehler ist “permission bigquery.datasets.update denied on dataset”.

Dieser Fehler tritt oft auf, wenn ein Benutzer versucht, einen Datensatz zu ändern, für den er nicht ausreichende Berechtigungen hat. Um dies zu lösen, müssen Sie dem Benutzer die Rolle bigquery.dataEditor (oder eine benutzerdefinierte Rolle mit entsprechenden Berechtigungen) für den Datensatz gewähren.

Sie können dies mit dem bq-Kommandozeilen-Tool tun:

bq add-iam-policy-binding \
--member=user:[email protected] \
--role=roles/bigquery.dataEditor \
project:dataset

Geben Sie Benutzern oder Dienstkonten immer nur die Mindestmenge an Berechtigungen, die sie benötigen, um dem Prinzip des geringsten Privilegs zu folgen.

Bei der Fehlersuche in Bezug auf Berechtigungsprobleme ist es oft hilfreich, den IAM-Richtlinientroubleshooter in der Google Cloud Console zu verwenden. Dieses Tool hilft Ihnen zu verstehen, warum ein Benutzer eine bestimmte Berechtigung hat oder nicht hat.

Fortgeschrittene BigQuery-Sicherheitstechniken

Für komplexere Sicherheitsanforderungen bietet BigQuery verschiedene erweiterte Funktionen. Eine dieser Funktionen ist die Möglichkeit, benutzerdefinierte Funktionen (UDFs) zur Implementierung dynamischer Datenmaskierung zu verwenden.

Zum Beispiel könnten Sie eine UDF erstellen, die E-Mail-Adressen maskiert:

CREATE FUNCTION `project.dataset.mask_email`(email STRING)
RETURNS STRING
AS (
CASE
WHEN email IS NULL THEN NULL
ELSE CONCAT(LEFT(email, 1), '***@', SPLIT(email, '@')[OFFSET(1)])
END
);

Diese Funktion können Sie dann in Ansichten oder Abfragen verwenden, um automatisch E-Mail-Adressen für Benutzer zu maskieren, die die vollständigen Werte nicht sehen sollen.

Eine andere fortgeschrittene Technik ist die Verwendung der “GROUP BY ALL”-Funktion von BigQuery für den Zugriff auf aggregierte Daten. Diese Funktion ermöglicht es Ihnen, Übersichtsansichten zu erstellen, die Daten nach nicht aggregierten Spalten gruppieren. Dies vereinfacht den Zugriff auf aggregierte Daten, ohne einzelne Datensätze anzuzeigen.

CREATE VIEW `project.dataset.sales_summary` AS
SELECT
DATE_TRUNC(date, MONTH) as month,
SUM(amount) as total_sales
FROM `project.dataset.detailed_sales`
GROUP BY ALL;

Diese Ansicht wird automatisch alle neuen Spalten anzeigen, die der Tabelle detailed_sales hinzugefügt wurden. Diese Funktion erleichtert die Verwaltung der Tabelle in der Zukunft.

Verschlüsselung und Schlüsselverwaltung

BigQuery verschlüsselt automatisch alle Daten im Ruhezustand, aber für zusätzliche Sicherheit können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) verwenden. Mit CMEK verwalten Sie Ihre eigenen Verschlüsselungsschlüssel mit dem Cloud Key Management Service (KMS).

Um CMEK mit BigQuery zu verwenden, erstellen Sie zunächst einen Schlüsselring und Schlüssel in KMS, dann spezifizieren Sie diesen Schlüssel bei der Erstellung eines Datensatzes:

bq mk --dataset \
--default_kms_key projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING_NAME]/cryptoKeys/[KEY_NAME] \
[PROJECT_ID]:[DATASET]

Die Verwendung von CMEK gibt Ihnen mehr Kontrolle über Ihre Datenverschlüsselung, kommt aber auch mit zusätzlichen Verwaltungsaufgaben. Sie müssen sicherstellen, dass Ihre Schlüssel ordnungsgemäß gesichert sind und dass Sie Prozesse für die Schlüsselrotation und -wiederherstellung haben.

Datengovernance und Compliance

Wirksame Datenverwaltung ist entscheidend, um die Einhaltung von Vorschriften, wie GDPR, HIPAA und CCPA sicherzustellen. BigQuery bietet mehrere Funktionen zur Unterstützung der Datenverwaltung:

  • Data Catalog: Dieser vollständig verwaltete, skalierbare Metadatenverwaltungsdienst kann Ihnen dabei helfen, Ihre BigQuery-Datensätze zu entdecken, zu verstehen und zu verwalten.
  • Data Loss Prevention (DLP): Sie können Cloud DLP nutzen, um Ihre BigQuery-Tabellen nach sensiblen Informationen zu durchsuchen und automatisch geeignete Kontrollen anzuwenden.
  • BigQuery Data Transfer Service: Dieser Service unterstützt Sie bei der Einrichtung und Verwaltung regelmäßiger Datenladungen aus verschiedenen Quellen. Es stellt sicher, dass Ihre Daten aktuell und korrekt bleiben.

Bei der Implementierung der Datenverwaltung in BigQuery ist es wichtig, den gesamten Datenlebenszyklus, von der Aufnahme bis zur Löschung, zu berücksichtigen. Sie sollten klare Richtlinien für Datenretention, Zugangskontrolle und Datenqualitätsmanagement haben.

Fazit

Die Sicherheit von BigQuery erfordert mehrere Sicherheitsebenen, einschließlich Netzwerkkontrollen und Berechtigungen mit IAM-Rollen und berechtigten Ansichten. Durch die Verwendung von Richtlinien-Tags und Überwachung/Protokollierung können Sie Ihre BigQuery-Umgebung sicherer machen.

Denken Sie daran, dass Sicherheit ein fortlaufender Prozess ist. Überprüfen Sie regelmäßig Ihre Sicherheitseinstellungen, überwachen Sie ungewöhnliche Aktivitäten und bleiben Sie auf dem Laufenden über die neuesten Sicherheitsmerkmale von BigQuery, um sicherzustellen, dass Sie Ihre Daten schützen. Indem Sie die richtigen Methoden verwenden, können Sie das Beste aus BigQuery herausholen und gleichzeitig Datenschutz und Compliance sicherstellen.

Wenn Ihre BigQuery-Nutzung wächst, sollten Sie die Implementierung von automatisierten Sicherheitsprüfungen und Compliance-Audits in Betracht ziehen. Tools wie das Cloud Security Command Center können Ihnen helfen, zu sehen, wie sicher Ihre Google Cloud-Umgebung ist, einschließlich BigQuery.

Schließlich vergessen Sie nicht das menschliche Element der Sicherheit. Regelmäßige Schulungen für Ihr Team zu den Best Practices der BigQuery-Sicherheit und den spezifischen Richtlinien Ihres Unternehmens sind entscheidend. Die Förderung einer Kultur der Sicherheitsbewusstsein hilft jedem, Daten sicher zu halten.

Nächste

Redshift-Datenbank-Informationsschema

Redshift-Datenbank-Informationsschema

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Allgemeine Informationen:
[email protected]
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
[email protected]