Datasets mit Tags kennzeichnen

Auf dieser Seite wird beschrieben, wie Sie Tags verwenden, um IAM-Richtlinien (Identity and Access Management) auf BigQuery-Datasets bedingt anzuwenden.

Ein Tag ist ein Schlüssel-Wert-Paar, das Sie direkt an ein Dataset anhängen können oder das ein Dataset von anderen Google Cloud-Ressourcen übernehmen kann. Sie können Richtlinien bedingt anwenden, je nachdem, ob eine Ressource ein bestimmtes Tag hat. Beispielsweise können Sie einem Hauptkonto mit dem Tag environment:dev bedingt die Rolle „BigQuery-Datenbetrachter“ zuweisen.

Weitere Informationen zur Verwendung von Tags in der gesamten Google Cloud-Ressourcenhierarchie finden Sie unter Tags – Übersicht.

Erforderliche Berechtigungen

Zur Verwendung von Tags in BigQuery benötigen Sie die folgenden Berechtigungen:

  • Zum Anhängen eines Tags an ein Dataset benötigen Sie die IAM-Berechtigung bigquery.datasets.createTagBinding für das Dataset und die Berechtigung resourcemanager.tagValueBindings.create auf Organisationsebene für den Tag-Wert, den Sie anhängen möchten.
  • Zum Entfernen eines Tags aus einem Dataset benötigen Sie die IAM-Berechtigung bigquery.datasets.deleteTagBinding für das Dataset und die Berechtigung resourcemanager.tagValueBindings.delete auf Organisationsebene für den Tag-Wert, den Sie löschen möchten
  • Zum Auflisten der an ein Dataset angehängten Tags benötigen Sie die IAM-Berechtigung bigquery.datasets.listTagBindings.

Beide der folgenden vordefinierten IAM-Rollen enthalten alle erforderlichen BigQuery-Berechtigungen:

  • BigQuery Dateninhaber (roles/bigquery.dataOwner)
  • BigQuery Administrator (roles/bigquery.admin)

Die Resource Manager-Berechtigungen sind in der Rolle „Tag-Nutzer“ (roles/resourcemanager.tagUser) enthalten.

Tag-Schlüssel und -Werte erstellen

Bevor Sie ein Tag anhängen können, müssen Sie ein Tag erstellen und seinen Wert konfigurieren. Informationen zum Erstellen von Tag-Schlüsseln und -Werten finden Sie unter Tag erstellen und Tag-Werte hinzufügen.

Tags an ein Dataset anhängen

Nachdem Sie ein Tag erstellt haben, können Sie es an ein Dataset anhängen. Sie können pro Dataset nur einen Tag-Wert für einen bestimmten Tag-Schlüssel anhängen.

Zum Anhängen eines Tags an ein Dataset über die Befehlszeile erstellen Sie mit dem Befehl gcloud alpha resource-manager tags bindings create eine Tag-Bindungsressource:

gcloud alpha resource-manager tags bindings create \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Dabei gilt:

  • TAGVALUE_NAME: die permanente ID oder der Namespace-Name des Tag-Werts, der angehängt werden soll, z. B. tagValues/4567890123 oder 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID: die vollständige ID des Datasets, einschließlich des API-Domainnamens (//bigquery.googleapis.com/), um den Ressourcentyp zu identifizieren, z. B. //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
  • LOCATION: der Standort Ihres Datasets

Tags auflisten, die an ein Dataset angehängt sind

Die folgenden Schritte enthalten eine Liste von Tag-Bindungen, die direkt mit einem Dataset verknüpft sind. Sie geben keine Tags zurück, die von übergeordneten Ressourcen übernommen werden.

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

  2. Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.

    Die Tags werden im Bereich Dataset-Informationen angezeigt.

gcloud

Verwenden Sie den Befehl gcloud alpha resource-manager tags bindings list, um eine Liste der Tag-Bindungen abzurufen, die an eine Ressource angehängt sind:

gcloud alpha resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

Dabei gilt:

  • RESOURCE_ID: die vollständige ID des Datasets, einschließlich des API-Domainnamens (//bigquery.googleapis.com/), um den Ressourcentyp zu identifizieren, z. B. //bigquery.googleapis.com/projects/my_project/datasets/my_dataset

  • LOCATION: der Standort Ihres Datasets

Die Ausgabe sieht etwa so aus:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Tags von einem Dataset trennen

Sie können ein Tag von einer Ressource trennen, indem Sie die Tag-Bindungsressource löschen. Wenn Sie ein Tag löschen müssen, sollten Sie es zuerst trennen.

Zum Trennen eines Tags von einem Dataset über die Befehlszeile löschen Sie die Tag-Bindung mit dem Befehl gcloud alpha resource-manager tags bindings delete:

gcloud alpha resource-manager tags bindings delete \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Dabei gilt:

  • TAGVALUE_NAME: die permanente ID oder der Namespace-Name des Tag-Werts, der angehängt werden soll, z. B. tagValues/4567890123 oder 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID: die vollständige ID des Datasets, einschließlich des API-Domainnamens (//bigquery.googleapis.com/), um den Ressourcentyp zu identifizieren, z. B. //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
  • LOCATION: der Standort Ihres Datasets

Tags löschen

Sie sollten alle vorhandenen Tag-Bindungsressourcen löschen, bevor Sie den Tag-Schlüssel oder -Wert selbst löschen. Informationen zum Löschen von Tag-Schlüsseln und Tag-Werten finden Sie unter Tags löschen.

Beispiel

Angenommen, Sie sind Administrator einer Organisation. Ihre Datenanalysten sind alle Mitglieder der Gruppe analysts@example.com, die die IAM-Rolle „BigQuery-Datenbetrachter“ für das Projekt „userData“ haben. Es wird ein Datenanalysten-Praktikant eingestellt, der gemäß den Unternehmensrichtlinien nur die Berechtigung haben soll, das Dataset „anonymousData“ im Projekt „userData“ einzusehen. Sie können den Zugriff mithilfe von Tags steuern.

  1. Erstellen Sie ein Tag mit dem Schlüssel employee_type und dem Wert intern:

    Beispiel für das Erstellen von Tag-Schlüsseln und -Werten.

  2. Rufen Sie in der Console die Seite IAM auf.

    Seite „IAM“

  3. Suchen Sie die Zeile mit dem Praktikanten, dessen Dataset-Zugriff Sie einschränken möchten, und klicken Sie in dieser Zeile auf Hauptkonto bearbeiten .

  4. Wählen Sie im Menü Rolle die Option BigQuery-Dataset-Betrachter aus.

  5. Klicken Sie auf Bedingung hinzufügen.

  6. Geben Sie in den Feldern Titel und Beschreibung Werte ein, die die zu erstellende IAM-Bedingung beschreiben.

  7. Klicken Sie auf dem Tab Tool zur Bedingungserstellung auf Hinzufügen.

  8. Wählen Sie im Menü Bedingungstyp die Option Ressource und dann Tag aus.

  9. Wählen Sie im Menü Operator die Option hat einen Wert aus.

  10. Geben Sie im Feld Wertpfad den Tagwertpfad im Format ORGANIZATION/TAG_KEY/TAG_VALUE ein, z. B. example.org/employee_type/intern.

    Beispiel für eine IAM-Bedingung mit Tags.

    Diese IAM-Bedingung beschränkt den Zugriff des Praktikanten auf Datasets mit dem Tag intern.

  11. Klicken Sie auf Speichern, um die Bedingung zu speichern.

  12. Klicken Sie auf Speichern, um alle Änderungen zu speichern, die Sie im Bereich Berechtigungen bearbeiten vorgenommen haben.

  13. Führen Sie mithilfe der Befehlszeile den Befehl gcloud alpha resource-manager tags bindings create aus, um den Tag-Wert intern an das Dataset "anonymousData" anzuhängen:

    gcloud alpha resource-manager tags bindings create \
    --tag-value=tagValues/4567890123 \
    --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
    --location=US
    

Beschränkungen

  • Wenn Sie einen Tag-Wert löschen, löscht BigQuery nicht automatisch Tag-Bindungen, die diesen Wert verwenden. Die Tag-Wert-ID ist erforderlich, um eine Tag-Bindung zu löschen, nachdem der Tag-Wert gelöscht wurde. Wenn Sie die Tag-Wert-ID nicht kennen, kann die Bindung nur entfernt werden, wenn das gesamte Dataset gelöscht wird.

  • Sie können maximal zehn Tags an ein Dataset anhängen.

Nächste Schritte