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:

  1. Erstellen Sie eine Taxonomie mit mindestens einem Richtlinien-Tag.
  2. 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.
  3. Erstellen Sie bis zu drei Datenrichtlinien für das Richtlinien-Tag, um Maskierungsregeln und Hauptkonten, die Nutzer oder Gruppen darstellen, diesem Tag zuzuordnen.
  4. 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.
  5. 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

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Data Catalog and BigQuery Data Policy APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Data Catalog and BigQuery Data Policy APIs aktivieren.

    Aktivieren Sie die APIs

  8. BigQuery ist in neuen Projekten automatisch aktiviert. Möglicherweise müssen Sie es jedoch in einem bereits vorhandenen Projekt aktivieren.

    BigQuery API aktivieren.

    Aktivieren Sie die API

  9. 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

  1. Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.

    Zur Seite "Richtlinien-Tag-Taxonomien"

  2. Klicken Sie auf Taxonomie erstellen.
  3. Auf der Seite Neue Taxonomie gehen Sie so vor:

    1. Geben Sie unter Taxonomiename den Namen der Taxonomie ein, die Sie erstellen möchten.
    2. Geben Sie unter Beschreibung eine Beschreibung ein.
    3. Ändern Sie bei Bedarf das unter Projekt aufgeführte Projekt.
    4. Ändern Sie bei Bedarf den unter Speicherort aufgeführten Speicherort.
    5. Geben Sie unter Richtlinien-Tags einen Namen und eine Beschreibung für das Richtlinien-Tag ein.
    6. Wenn Sie einem Richtlinien-Tag ein untergeordnetes Richtlinien-Tag hinzufügen möchten, klicken Sie auf Untergeordnetes Tag hinzufügen.
    7. 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.
    8. Fügen Sie weitere Richtlinien-Tags und untergeordnete Richtlinien-Tags hinzu, wenn es für Ihre Taxonomie erforderlich ist.
    9. 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.

  1. Rufen Sie taxonomies.create auf, um eine Taxonomie zu erstellen.
  2. 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

  1. Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.

    Zur Seite "Richtlinien-Tag-Taxonomien"

  2. Klicken Sie auf den Namen der Taxonomie, die Sie öffnen möchten.
  3. Wählen Sie ein Richtlinien-Tag aus.
  4. Klicken Sie auf Datenrichtlinien verwalten.
  5. 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.
  6. 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 und bigquery.routines.list haben.
  7. 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.
  8. Klicken Sie auf Senden.

API

  1. Rufen Sie die Methode create auf. Übergeben Sie eine DataPolicy-Ressource, die die folgenden Anforderungen erfüllt:

    • Das Feld dataPolicyType ist auf DATA_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.
  2. Rufen Sie die Methode setIamPolicy auf und übergeben Sie sie in einer Policy. Policy muss die Hauptkonten identifizieren, die Zugriff auf maskierte Daten haben, und roles/bigquerydatapolicy.maskedReader für das Feld role 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.

  1. Öffnen Sie in der Google Cloud Console die Seite "BigQuery".

    Zur Seite „BigQuery“

  2. 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.

  3. Klicken Sie auf Schema bearbeiten.

  4. Wählen Sie im Bildschirm Aktuelles Schema die Zielspalte aus und klicken Sie auf Richtlinien-Tag hinzufügen.

  5. 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.

  6. Klicken Sie auf Auswählen. Ihr Bildschirm sollte nun in etwa so aussehen:

    Schema bearbeiten.

  7. Klicken Sie auf Speichern.

bq

  1. 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.
  2. Ä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 von policyTags den Ressourcennamen des Richtlinien-Tags.

    [
     ...
     {
       "name": "ssn",
       "type": "STRING",
       "mode": "REQUIRED",
       "policyTags": {
         "names": ["projects/project-id/locations/location/taxonomies/taxonomy-id/policyTags/policytag-id"]
       }
     },
     ...
    ]
    
  3. 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

  1. Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.

    Zur Seite "Richtlinien-Tag-Taxonomien"

  2. Klicken Sie auf den Namen der Taxonomie, die Sie öffnen möchten.
  3. Wählen Sie ein Richtlinien-Tag aus.
  4. Klicken Sie auf Datenrichtlinien verwalten.
  5. Ändern Sie optional die Maskierungsregel.
  6. Optional: Hauptkonten hinzufügen oder entfernen.
  7. 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

  1. Öffnen Sie in der Google Cloud Console die Seite Richtlinien-Tag-Taxonomien.

    Zur Seite "Richtlinien-Tag-Taxonomien"

  2. Klicken Sie auf den Namen der Taxonomie, die Sie öffnen möchten.
  3. Wählen Sie ein Richtlinien-Tag aus.
  4. Klicken Sie auf Datenrichtlinien verwalten.
  5. Klicken Sie neben der zu löschenden Datenrichtlinie auf .
  6. Klicken Sie auf Senden.
  7. Klicken Sie auf Bestätigen.

API

Rufen Sie zum Löschen einer Datenrichtlinie die Methode delete auf.