Zugriff auf einzelne Tabellen mit IAM steuern

In diesem Dokument wird beschrieben, wie Sie BigQuery-IAM-Rollen (Identity and Access Management) für einzelne Dataform-Tabellen und -Ansichten gewähren und widerrufen.

Dataform und BigQuery verwenden IAM für die Zugriffssteuerung. Weitere Informationen zu Dataform-Rollen und -Berechtigungen in IAM finden Sie unter Zugriff mit IAM steuern.

Wenn Dataform eine Tabelle oder Ansicht ausführt, wird die Ressource in BigQuery erstellt. Während der Entwicklung in Dataform können Sie einzelnen Tabellen und Ansichten BigQuery-Rollen zuweisen, um ihren Zugriff in BigQuery nach der Ausführung zu steuern.

Weitere Informationen zum Gewähren und Entziehen von Zugriff auf Ressourcen finden Sie unter Zugriff auf eine Ressource gewähren.

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. BigQuery and Dataform 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. BigQuery and Dataform APIs aktivieren.

    Aktivieren Sie die APIs

Einer Tabelle oder Ansicht BigQuery-Rollen zuweisen

Sie können einer Tabelle oder Ansicht in Dataform BigQuery-Rollen zuweisen. Dazu fügen Sie der .sqlx-Definitionsdatei der ausgewählten Tabelle oder Ansicht einen post_operations-Block mit der DCL-Anweisung GRANT hinzu.

So weisen Sie einer ausgewählten Tabelle oder Ansicht BigQuery-Rollen zu:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zur Seite „Dataform“

  2. Wählen Sie zuerst ein Repository und dann einen Arbeitsbereich aus.

  3. Maximieren Sie im Bereich Files (Dateien) das Verzeichnis definitions/.

  4. Wählen Sie die Definitionsdatei .sqlx der Tabelle oder Ansicht aus, auf die Sie Zugriff gewähren möchten.

  5. Geben Sie in die Datei das folgende Code-Snippet ein:

    post_operations {
        GRANT "ROLE_LIST"
        ON ${self()}
        TO "USER_LIST"
    }
    

    Ersetzen Sie Folgendes:

    • ROLE_LIST: die BigQuery-Rolle oder Liste mit durch Kommas getrennten BigQuery-Rollen, die Sie gewähren möchten
    • USER_LIST: die durch Kommas getrennte Liste von Nutzern, denen die Rolle gewährt wird

      Eine Liste der gültigen Formate finden Sie unter user_list.

  6. Optional: Klicken Sie auf Format.

  7. Führen Sie die Tabelle oder Ansicht aus.

  8. Wenn Sie einer inkrementellen Tabelle Zugriff gewährt haben, entfernen Sie nach der ersten Ausführung die Anweisung GRANT aus der Tabellendefinitionsdatei.

Das folgende Codebeispiel zeigt die Rolle BigQuery-Betrachter, die einem Nutzer für eine Tabelle zugewiesen wurde:

config { type: "table" }

SELECT ...

post_operations {
  GRANT `roles/bigquery.dataViewer` ON ${self()} TO "user:222larabrown@gmail.com"
}

BigQuery-Rollen einer Tabelle oder Ansicht widerrufen

Sie können BigQuery-Rollen aus einer Tabelle oder Ansicht widerrufen, indem Sie der .sqlx-Definitionsdatei der ausgewählten Tabelle oder Ansicht einen post_operations-Block mit der DCL-Anweisung REVOKE hinzufügen.

So widerrufen Sie BigQuery-Rollen für eine ausgewählte Tabelle oder Ansicht:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zur Seite „Dataform“

  2. Wählen Sie zuerst ein Repository und dann einen Arbeitsbereich aus.

  3. Maximieren Sie im Bereich Files (Dateien) das Verzeichnis definitions/.

  4. Wählen Sie die Definitionsdatei .sqlx der Tabelle oder Ansicht aus, für die Sie den Zugriff widerrufen möchten.

  5. Geben Sie in den post_operations-Block die folgende REVOKE-Anweisung ein:

        REVOKE "ROLE_LIST"
        ON ${self()}
        TO "USER_LIST"
    

    Ersetzen Sie Folgendes:

    • ROLE_LIST: die BigQuery-Rolle oder die Liste mit durch Kommas getrennten BigQuery-Rollen, die Sie widerrufen möchten.
    • USER_LIST: die durch Kommas getrennte Liste von Nutzern, denen die Rolle entzogen wird. Eine Liste der gültigen Formate finden Sie unter user_list.
  6. Wenn Sie den Zugriff widerrufen möchten, der in einer GRANT-Anweisung in der Datei erteilt wurde, ersetzen Sie die GRANT-Anweisung durch eine REVOKE-Anweisung.

    Removing the `GRANT` statement without adding the `REVOKE` statement
    does not revoke access.
    
  7. Optional: Klicken Sie auf Format.

  8. Führen Sie die Tabelle oder Ansicht aus.

  9. Wenn Sie den Zugriff auf eine inkrementelle Tabelle widerrufen haben, entfernen Sie die Anweisung REVOKE nach der ersten Ausführung aus der Tabellendefinitionsdatei.

Das folgende Codebeispiel zeigt die Rolle BigQuery-Betrachter, die einem Nutzer für eine Tabelle entzogen wurde:

config { type: "table" }

SELECT ...

post_operations {
  REVOKE `roles/bigquery.dataViewer` ON ${self()} FROM "user:222larabrown@gmail.com"
}

BigQuery-Rollen für Tabellen und Ansichten gemeinsam verwalten

Wenn Sie den BigQuery-Zugriff auf einzelne Tabellen und Ansichten an einem einzigen Speicherort steuern möchten, können Sie eine spezielle type: "operations"-Datei mit DCL-Anweisungen vom Typ GRANT und REVOKE erstellen.

So verwalten Sie den Zugriff auf BigQuery-Tabelle in einer einzelnen type: "operations"-Datei:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zur Seite „Dataform“

  2. Wählen Sie zuerst ein Repository und dann einen Arbeitsbereich aus.

  3. Klicken Sie im Bereich Dateien neben definitions/ auf das -Menü Mehr.

  4. Klicken Sie auf Datei erstellen.

  5. Geben Sie im Feld Dateipfad hinzufügen den Namen der Datei gefolgt von .sqlx nach definitions/ ein. Beispiel: definitions/table-access.sqlx

    Dateinamen dürfen nur Ziffern, Buchstaben, Bindestriche und Unterstriche enthalten.

  6. Klicken Sie auf Datei erstellen.

  7. Maximieren Sie im Bereich Files (Dateien) das Verzeichnis definitions/ und wählen Sie die neu erstellte Datei aus.

  8. Geben Sie in die Datei das folgende Code-Snippet ein:

      config { type: "operations" }
    
      GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
    
      REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
    

    Ersetzen Sie Folgendes:

    • ROLE_LIST: die BigQuery-Rolle oder eine Liste mit durch Kommas getrennten BigQuery-Rollen, die Sie gewähren oder widerrufen möchten.
    • RESOURCE_TYPE: der Typ der Ressource: TABLE oder VIEW.
    • RESOURCE_NAME: der Name der Tabelle oder Ansicht
    • USER_LIST: die durch Kommas getrennte Liste von Nutzern, denen die Rolle gewährt oder entzogen wurde. Eine Liste der gültigen Formate finden Sie unter user_list.
  9. Fügen Sie nach Bedarf GRANT- und REVOKE-Anweisungen hinzu.

    1. Wenn Sie den Zugriff widerrufen möchten, der in einer GRANT-Anweisung in der Datei erteilt wurde, ersetzen Sie die GRANT-Anweisung durch eine REVOKE-Anweisung.

      Der Zugriff wird nicht widerrufen, wenn die GRANT-Anweisung entfernt wird, ohne die REVOKE-Anweisung hinzuzufügen.

  10. Optional: Klicken Sie auf Format.

  11. Datei nach jeder Aktualisierung ausführen.

    1. Wenn Sie den Zugriff auf eine inkrementelle Tabelle gewährt oder widerrufen haben, entfernen Sie nach der ersten Ausführung der Anweisung die Anweisung GRANT oder REVOKE aus der Datei.

Nächste Schritte