Spaltendaten maskieren
In diesem Dokument erfahren Sie, wie Sie eine Datenmaskierung implementieren, um sensible Daten selektiv zu verbergen. Durch die Implementierung einer Datenmaskierung können Sie verschiedenen Nutzergruppen ein unterschiedliches Maß an Sichtbarkeit bieten. Allgemeine Informationen finden Sie unter Einführung in die Datenmaskierung.
Zum Implementieren der Datenmaskierung fügen Sie eine Datenrichtlinie in eine Spalte ein. So fügen Sie eine Datenmaskierungsrichtlinie zu einer Spalte hinzu:
- Erstellen Sie eine Taxonomie mit mindestens einem Richtlinien-Tag.
- Optional: Zuweisen der Rolle „Detaillierter Lesezugriff für Data Catalog“ zu einem oder mehreren Hauptkonten für ein oder mehrere von Ihnen erstellte Richtlinien-Tags.
- Erstellen Sie bis zu drei Datenrichtlinien für das Richtlinien-Tag, um Maskierungsregeln und Hauptkonten, die Nutzer oder Gruppen darstellen, diesem Tag zuzuordnen.
- Legen Sie das Richtlinien-Tag für eine Spalte fest. Dadurch werden die Datenrichtlinien, die dem Richtlinien-Tag zugeordnet sind, der ausgewählten Spalte zugeordnet.
- Weisen Sie Nutzern, die Zugriff auf maskierte Daten haben sollen, die Rolle „BigQuery: Maskierter Leser“ zu. Weisen Sie als Best Practice die Rolle „Maskierter Leser“ auf Datenrichtlinienebene zu. Durch das Zuweisen der Rolle auf Projektebene oder höher werden Nutzern Berechtigungen für alle Datenrichtlinien unter dem Projekt erteilt. Dies kann zu Problemen bei übermäßigen Berechtigungen führen.
Sie können die Google Cloud Console oder die BigQuery Data Policy API verwenden, um mit Datenrichtlinien zu arbeiten.
Wenn Sie diese Schritte abgeschlossen haben, erhalten Nutzer, die Abfragen für die Spalte ausführen, unmaskierte Daten, maskierte Daten oder eine Fehlermeldung, dass der Zugriff verweigert wurde, je nach den Gruppen, denen sie angehören, und den Rollen, die ihnen zugewiesen wurden. Weitere Informationen zu Interaktion der Rollen „Maskierter Leser“ und „Detaillierter Lesezugriff“.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the Data Catalog and BigQuery Data Policy APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the Data Catalog and BigQuery Data Policy APIs.
- BigQuery ist in neuen Projekten automatisch aktiviert. Möglicherweise müssen Sie es jedoch in einem bereits vorhandenen Projekt aktivieren.
Enable the BigQuery API.
- Wenn Sie eine Datenrichtlinie erstellen, die auf eine benutzerdefinierte Maskierungsroutine verweist, erstellen Sie die zugehörige Maskierungs-UDF, damit sie in den folgenden Schritten verfügbar ist.
Taxonomien erstellen
Dem Nutzer- oder Dienstkonto, das eine Taxonomie erstellt, muss die Data Catalog-Rolle "Richtlinien-Tag-Administrator" zugewiesen sein.
Console
- Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.
- Klicken Sie auf Taxonomie erstellen.
Auf der Seite Neue Taxonomie gehen Sie so vor:
- Geben Sie unter Taxonomiename den Namen der Taxonomie ein, die Sie erstellen möchten.
- Geben Sie unter Beschreibung eine Beschreibung ein.
- Ändern Sie bei Bedarf das unter Projekt aufgeführte Projekt.
- Ändern Sie bei Bedarf den unter Speicherort aufgeführten Speicherort.
- Geben Sie unter Richtlinien-Tags einen Namen und eine Beschreibung für das Richtlinien-Tag ein.
- Wenn Sie einem Richtlinien-Tag ein untergeordnetes Richtlinien-Tag hinzufügen möchten, klicken Sie auf Untergeordnetes Tag hinzufügen.
- Klicken Sie auf + Richtlinien-Tag hinzufügen, wenn ein neues Richtlinien-Tag auf der gleichen Ebene wie ein vorhandenes Richtlinien-Tag hinzugefügt werden soll.
- Fügen Sie weitere Richtlinien-Tags und untergeordnete Richtlinien-Tags hinzu, wenn es für Ihre Taxonomie erforderlich ist.
- Wenn Sie alle Richtlinien-Tags für Ihre Hierarchie erstellt haben, klicken Sie auf Erstellen.
API
Rufen Sie taxonomies.import
anstelle der ersten beiden Schritte des folgenden Verfahrens auf, wenn Sie vorhandene Taxonomien verwenden möchten.
- Rufen Sie
taxonomies.create
auf, um eine Taxonomie zu erstellen. - Rufen Sie
taxonomies.policytag.create
auf, um ein Richtlinien-Tag zu erstellen.
Mit Richtlinien-Tags arbeiten
Weitere Informationen über die Verwendung von Richtlinien-Tags, z. B. zum Anzeigen oder Aktualisieren der Tags, finden Sie unter Mit Richtlinien-Tags arbeiten. Best Practices finden Sie unter Best Practices für die Verwendung von Richtlinien-Tags in BigQuery.
Datenrichtlinien erstellen
Das Nutzer- oder Dienstkonto, mit dem eine Datenrichtlinie erstellt wird, muss die Berechtigungen bigquery.dataPolicies.create
, bigquery.dataPolicies.setIamPolicy
und datacatalog.taxonomies.get
haben.
Wenn Sie eine Datenrichtlinie erstellen, die auf eine benutzerdefinierte Maskierungsroutine verweist, benötigen Sie außerdem Routineberechtigungen.
Diese Berechtigungen sind in den Rollen "BigQuery-Administrator" und "BigQuery-Dateninhaber" enthalten.
Sie können bis zu neun Datenrichtlinien für ein Richtlinien-Tag erstellen. Eine dieser Richtlinien ist für Zugriffssteuerungseinstellungen auf Spaltenebene reserviert.
Console
- Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.
- Klicken Sie auf den Namen der Taxonomie, die Sie öffnen möchten.
- Wählen Sie ein Richtlinien-Tag aus.
- Klicken Sie auf Datenrichtlinien verwalten.
- Geben Sie bei Datenrichtlinienname einen Namen für die Datenrichtlinie ein. Der Name der Datenrichtlinie muss innerhalb des Projekts, in dem sich die Datenrichtlinie befindet, eindeutig sein.
- Wählen Sie unter Maskierungsregel eine vordefinierte Maskenregel oder eine benutzerdefinierte Maskenroutine aus. Wenn Sie eine benutzerdefinierte Maskierungsroutine auswählen, müssen Sie auf Projektebene die Berechtigungen
bigquery.routines.get
undbigquery.routines.list
haben. - Geben Sie unter Hauptkonto den Namen eines oder mehrerer Nutzer oder Gruppen ein, denen Sie einen maskierten Zugriff auf die Spalte gewähren möchten. Beachten Sie, dass allen Nutzern und Gruppen hier die Rolle „BigQuery Maskierter Leser“ zugewiesen wird.
- Klicken Sie auf Senden.
API
Rufen Sie die Methode
create
auf. Übergeben Sie eineDataPolicy
-Ressource, die die folgenden Anforderungen erfüllt:- Das Feld
dataPolicyType
ist aufDATA_MASKING_POLICY
gesetzt. - Das Feld
dataMaskingPolicy
gibt die zu verwendende Datenmaskierungsregel oder -routine an. - Das Feld
dataPolicyId
gibt einen Namen für die Datenrichtlinie an, die in dem Projekt, in dem sich die Datenrichtlinie befindet, eindeutig ist.
- Das Feld
Rufen Sie die Methode
setIamPolicy
auf und übergeben Sie sie in einerPolicy
.Policy
muss die Hauptkonten identifizieren, die Zugriff auf maskierte Daten haben, undroles/bigquerydatapolicy.maskedReader
für das Feldrole
angeben.
Richtlinien-Tags für Spalten festlegen
Sie legen eine Datenrichtlinie für eine Spalte fest, indem Sie das mit der Datenrichtlinie verknüpfte Richtlinien-Tag an die Spalte anhängen.
Das Nutzer- oder Dienstkonto, mit dem ein Richtlinien-Tag festgelegt werden soll, benötigt die Berechtigungen datacatalog.taxonomies.get
und bigquery.tables.setCategory
.
datacatalog.taxonomies.get
ist in den Data Catalog-Richtlinien-Tags-Administrator- und Projektbetrachter-Rollen enthalten.
bigquery.tables.setCategory
ist in den Rollen „BigQuery-Administrator“ (roles/bigquery.admin
) und „BigQuery-Dateninhaber“ (roles/bigquery.dataOwner
) enthalten.
Console
Legen Sie das Richtlinien-Tag fest, indem Sie in der Google Cloud Console ein Schema ändern.
Öffnen Sie in der Google Cloud Console die Seite "BigQuery".
Suchen Sie in BigQuery Explorer die Tabelle, die Sie aktualisieren möchten, und wählen Sie sie aus. Das Tabellenschema für diese Tabelle wird geöffnet.
Klicken Sie auf Schema bearbeiten.
Wählen Sie im Bildschirm Aktuelles Schema die Zielspalte aus und klicken Sie auf Richtlinien-Tag hinzufügen.
Suchen Sie im Bildschirm Richtlinien-Tag hinzufügen das Richtlinien-Tag, das Sie auf die Spalte anwenden möchten, und wählen Sie es aus.
Klicken Sie auf Auswählen. Ihr Bildschirm sollte nun in etwa so aussehen:
Klicken Sie auf Speichern.
bq
Schreiben Sie das Schema in eine lokale Datei.
bq show --schema --format=prettyjson \ project-id:dataset.table > schema.json
wobei
- project-id ist die Projekt-ID.
- dataset ist der Name des Datasets, das die zu aktualisierende Tabelle enthält.
- table ist der Name der Tabelle, die Sie aktualisieren.
Ändern Sie "schema.json" so, dass darin ein Richtlinien-Tag für eine Spalte festgelegt wird. Verwenden Sie für den Wert des Feldes
names
vonpolicyTags
den Ressourcennamen des Richtlinien-Tags.[ ... { "name": "ssn", "type": "STRING", "mode": "REQUIRED", "policyTags": { "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"] } }, ... ]
Aktualisieren Sie das Schema.
bq update \ project-id:dataset.table schema.json
API
Rufen Sie für vorhandene Tabellen tables.patch
oder für neue Tabellen tables.insert
auf. Verwenden Sie das Attribut schema
des übergebenen Table
-Objekts, um ein Richtlinien-Tag in Ihrer Schemadefinition festzulegen. Das Beispielschema für die Befehlszeile zeigt, wie Sie ein Richtlinien-Tag angeben.
Wenn Sie mit einer vorhandenen Tabelle arbeiten, wird die Methode tables.patch
bevorzugt, da die Methode tables.update
die gesamte Tabellenressource ersetzt.
Zugriffssteuerung erzwingen
Wenn Sie eine Datenrichtlinie für ein Richtlinien-Tag erstellen, wird die Zugriffssteuerung automatisch erzwungen. Alle Spalten, auf die dieses Richtlinien-Tag angewendet wurde, geben maskierte Daten als Antwort auf Abfragen von Nutzern zurück, die die Rolle „Maskierter Leser“ haben.
Um die Erzwingung der Zugriffssteuerung zu beenden, müssen Sie zuerst alle Datenrichtlinien löschen, die mit den Richtlinien-Tags in der Taxonomie verknüpft sind. Weitere Informationen zu Zugriffssteuerung erzwingen.
IAM-Berechtigungen für eine Datenrichtlinie prüfen
Rufen Sie die Methode testIamPermissions
auf, um zu sehen, welche Berechtigungen Sie für eine Datenrichtlinie haben.
Datenrichtlinien aktualisieren
Das Nutzer- oder Dienstkonto, das eine Datenrichtlinie aktualisiert, muss die Berechtigung bigquery.dataPolicies.update
haben.
Wenn Sie das Richtlinien-Tag aktualisieren, mit dem die Datenrichtlinie verknüpft ist, benötigen Sie außerdem die Berechtigung datacatalog.taxonomies.get
.
Wenn Sie die mit der Datenrichtlinie verknüpften Hauptkonten aktualisieren, benötigen Sie die Berechtigung bigquery.dataPolicies.setIamPolicy
.
Die Berechtigungen bigquery.dataPolicies.update
und bigquery.dataPolicies.setIamPolicy
sind in den Rollen „BigQuery-Administrator“ und „BigQuery-Dateninhaber“ enthalten.
Die Berechtigung datacatalog.taxonomies.get
ist in den Data Catalog-Admin- und Data Catalog-Betrachter-Rollen enthalten.
Console
- Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.
- Klicken Sie auf den Namen der Taxonomie, die Sie öffnen möchten.
- Wählen Sie ein Richtlinien-Tag aus.
- Klicken Sie auf Datenrichtlinien verwalten.
- Ändern Sie optional die Maskierungsregel.
- Optional: Hauptkonten hinzufügen oder entfernen.
- Klicken Sie auf Senden.
API
Rufen Sie zum Ändern der Datenmaskierungsregel die Methode patch
auf und übergeben Sie sie in eine DataPolicy
-Ressource mit einem aktualisiertes dataMaskingPolicy
-Feld.
Rufen Sie zum Ändern der mit einer Datenrichtlinie verknüpften Hauptkonten die Methode setIamPolicy
auf und übergeben Sie sie in eine Policy
, die Hauptkonten aktualisiert, die Zugriff auf maskierte Daten erhalten.
Datenrichtlinien löschen
Das Nutzer- oder Dienstkonto, mit dem eine Datenrichtlinie erstellt wird, muss die Berechtigung bigquery.dataPolicies.delete
haben. Diese Berechtigung ist in den Rollen „BigQuery-Administrator“ und „BigQuery-Dateninhaber“ enthalten.
Console
- Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.
- Klicken Sie auf den Namen der Taxonomie, die Sie öffnen möchten.
- Wählen Sie ein Richtlinien-Tag aus.
- Klicken Sie auf Datenrichtlinien verwalten.
- Klicken Sie neben der zu löschenden Datenrichtlinie auf .
- Klicken Sie auf Senden.
- Klicken Sie auf Bestätigen.
API
Rufen Sie zum Löschen einer Datenrichtlinie die Methode delete
auf.