IAM-Rollen und -Berechtigungen für BigQuery
In diesem Dokument finden Sie Informationen zu IAM-Rollen (Identity and Access Management) und Berechtigungen für BigQuery. Mit IAM können Sie detaillierte Zugriffsberechtigungen auf bestimmte Ressourcen von BigQuery gewähren und unerwünschten Zugriff auf andere Ressourcen verhindern. Sie haben mit IAM die Möglichkeit, das Sicherheitsprinzip der geringsten Berechtigung anzuwenden, das besagt, dass niemand mehr Berechtigungen haben sollte, als er tatsächlich benötigt.
Wenn ein Hauptkonto (ein Nutzer, eine Gruppe oder ein Dienstkonto) eine Google Cloud API aufruft, muss dieses Hauptkonto die entsprechenden IAM-Berechtigungen für die Verwendung der Ressource haben. Um einem Hauptkonto die erforderlichen Berechtigungen zu gewähren, weisen Sie dem Hauptkonto eine IAM-Rolle zu.
In diesem Dokument wird beschrieben, wie Sie vordefinierte und benutzerdefinierte IAM-Rollen verwenden, um Hauptkonten den Zugriff auf BigQuery-Ressourcen zu ermöglichen.
Weitere Informationen zur Verwaltung des Zugriffs in Google Cloud im Allgemeinen finden Sie in der IAM-Übersicht.
Arten von IAM-Rollen
Eine Rolle ist eine Sammlung von Berechtigungen. Sie können die folgenden Rollentypen in IAM verwenden, um Zugriff auf BigQuery-Ressourcen zu gewähren:
- Vordefinierte Rollen werden von Google Cloud verwaltet und unterstützen gängige Anwendungsfälle und Zugriffssteuerungsmuster.
- Benutzerdefinierte Rollen, die Zugriff entsprechend einer vom Nutzer angegebenen Liste von Berechtigungen ermöglichen.
Um zu ermitteln, ob eine oder mehrere Berechtigungen in einer Rolle enthalten sind, können Sie eine der folgenden Methoden verwenden:
- Referenz zur Suche nach IAM-Berechtigungen
- Befehl
gcloud iam roles describe
- Methode
roles.get()
in der IAM API
Wenn Sie einem Nutzer mehrere Rollentypen zuweisen, werden ihm die Berechtigungen beider Rollen gewährt.
Weitere Informationen dazu, wie Sie mit IAM auf Ressourcen zugreifen, finden Sie in der IAM-Dokumentation Zugriff auf Ressourcen erteilen, ändern und widerrufen.
Informationen zum Erstellen benutzerdefinierter Rollen finden Sie in der IAM-Dokumentation unter Benutzerdefinierte Rollen erstellen und verwalten.
IAM-Rollen in BigQuery
Berechtigungen werden Nutzern, Gruppen oder Dienstkonten nicht direkt zugewiesen. Stattdessen erhalten Nutzer, Gruppen oder Dienstkonten Zugriff auf eine oder mehrere vordefinierte oder benutzerdefinierte Rollen, um ihnen Berechtigungen zum Ausführen von Aktionen für Ressourcen zu erteilen.
Sie können Zugriff auf den folgenden BigQuery-Ressourcenebenen gewähren:
- Organisationen, Ordner oder Projekte
- Verbindungen
- Datasets
- Tabellen oder Ansichten
- Richtlinien-Tags, Richtlinien für den Zeilenzugriff oder BigQuery-Datenrichtlinien
Auf Organisations- oder Google Cloud-Projektebene angewendete Rollen
Wenn Sie Rollen auf Organisations- und Projektebene zuweisen, erteilen Sie die Berechtigung zum Ausführen von BigQuery-Jobs oder zum Zugriff auf alle BigQuery-Ressourcen eines Projekts.
Auf Dataset-Ebene angewendete Rollen
Sie können Rollen auf Dataset-Ebene zuweisen, um Zugriff auf ein bestimmtes Dataset zu gewähren, ohne vollen Zugriff auf die Projektressourcen zu ermöglichen. In der IAM-Ressourcenhierarchie sind die Datasets die untergeordneten Ressourcen von Projekten. Weitere Informationen zum Zuweisen von Rollen auf Dataset-Ebene finden Sie unter Zugriff auf Datasets steuern.
Rollen, die auf einzelne Ressourcen in Datasets angewendet werden
Sie können bestimmten Ressourcentypen in Datasets Rollen zuweisen, ohne vollständigen Zugriff auf die Ressourcen des Datasets zu gewähren.
Rollen können einzelnen Ressourcen der folgenden Typen zugewiesen werden:
- Tabellen
- Aufrufe
Rollen können nicht auf einzelne Ressourcen der folgenden Typen angewendet werden:
- routines
- Modelle
Weitere Informationen zum Zuweisen von Rollen auf Tabellen- oder Ansichtsebene finden Sie unter Zugriff auf Tabellen oder Ansichten steuern.
Vordefinierte IAM-Rollen für BigQuery
In der folgenden Tabelle sind die vordefinierten BigQuery-IAM-Rollen und die jeweiligen Berechtigungen aufgeführt, die eine Rolle enthält. Beachten Sie, dass jede Berechtigung für einen bestimmten Ressourcentyp gilt.
Role | Permissions |
---|---|
BigQuery Admin( Provides permissions to manage all resources within the project. Can manage all data within the project, and can cancel jobs from other users running within the project. Lowest-level resources where you can grant this role:
|
|
BigQuery Connection Admin(
|
|
BigQuery Connection User(
|
|
BigQuery Data Editor( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
|
BigQuery Data Owner( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
|
BigQuery Data Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to list all of the resources in the dataset (such as tables, views, snapshots, models, and routines) and to read their data and metadata with applicable APIs and in queries. When applied at the project or organization level, this role can also enumerate all datasets in the project. Additional roles, however, are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
|
BigQuery Filtered Data Viewer( Access to view filtered table data defined by a row access policy |
|
BigQuery Job User( Provides permissions to run jobs, including queries, within the project. Lowest-level resources where you can grant this role:
|
|
BigQuery Metadata Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role provides permissions to:
Additional roles are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
|
BigQuery Read Session User( Provides the ability to create and use read sessions. Lowest-level resources where you can grant this role:
|
|
BigQuery Resource Admin( Administers BigQuery workloads, including slot assignments, commitments, and reservations. |
|
BigQuery Resource Editor( Manages BigQuery workloads, but is unable to create or modify slot commitments. |
|
BigQuery Resource Viewer( Can view BigQuery workloads, but cannot create or modify slot reservations or commitments. |
|
BigQuery Studio Admin( Combination role of BigQuery Admin, Dataform Admin, Notebook Runtime Admin and Dataproc Serverless Editor. |
|
BigQuery Studio User( Combination role of BigQuery Job User, BigQuery Read Session User, Dataform Code Creator, Notebook Runtime User and Dataproc Serverless Editor. |
|
BigQuery User( When applied to a dataset, this role provides the ability to read the dataset's metadata and list tables in the dataset. When applied to a project, this role also provides the ability to run jobs, including queries,
within the project. A principal with this role can enumerate their own jobs, cancel their own jobs, and
enumerate datasets within a project. Additionally, allows the creation of new datasets within the
project; the creator is granted the BigQuery Data Owner role ( Lowest-level resources where you can grant this role:
|
|
BigQuery Data Policy Admin( Role for managing Data Policies in BigQuery |
|
Masked Reader( Masked read access to sub-resources tagged by the policy tag associated with a data policy, for example, BigQuery columns |
|
Raw Data Reader Beta( Raw read access to sub-resources associated with a data policy, for example, BigQuery columns |
|
BigQuery Data Policy Viewer( Role for viewing Data Policies in BigQuery |
|
Benutzerdefinierte IAM-Rollen für BigQuery
Zum Erstellen einer benutzerdefinierten IAM-Rolle für BigQuery folgen Sie den Schritten für benutzerdefinierte IAM-Rollen unter Verwendung der BigQuery-Berechtigungen.
Einfache BigQuery-Rollen
Informationen zu einfachen BigQuery-Rollen finden Sie unter Einfache Rollen und Berechtigungen für BigQuery.
BigQuery-Berechtigungen
In der folgenden Tabelle werden die für BigQuery verfügbaren Berechtigungen aufgelistet. Diese sind in vordefinierten Rollen enthalten und können in Definitionen benutzerdefinierter Rollen verwendet werden.
Berechtigung | Beschreibung |
---|---|
bigquery.bireservations.get |
BI Engine-Reservierungen lesen. |
bigquery.bireservations.update |
BI Engine-Reservierungen aktualisieren. |
bigquery.capacityCommitments.create |
Kapazitätszusicherungen im Projekt erstellen. |
bigquery.capacityCommitments.delete |
Eine Kapazitätszusicherung löschen. |
bigquery.capacityCommitments.get |
Details zu einer Kapazitätszusicherung abrufen. |
bigquery.capacityCommitments.list |
Alle Kapazitätszusicherungen in einem Projekt auflisten. |
bigquery.capacityCommitments.update |
Alle Kapazitätsverpflichtungen in einem Projekt aktualisieren. |
bigquery.config.update |
Konfiguration erstellen. |
bigquery.config.get |
Details zu einer Konfiguration abrufen. |
bigquery.connections.create |
Neue Verbindungen in einem Projekt erstellen. |
bigquery.connections.delete |
Verbindung löschen. |
bigquery.connections.get |
Verbindungsmetadaten abrufen. Anmeldedaten sind ausgeschlossen. |
bigquery.connections.list |
Verbindungen in einem Projekt auflisten. |
bigquery.connections.update |
Verbindung und zugehörige Anmeldedaten aktualisieren. |
bigquery.connections.updateTag |
Tags für eine Verbindung aktualisieren. |
bigquery.connections.use |
Verbindungskonfiguration verwenden, um eine Verbindung zu einer Remotedatenquelle herzustellen. |
bigquery.connections.delegate |
Delegieren Sie die Verbindung, um autorisierte externe Tabellen und Remotefunktionen zu erstellen. |
bigquery.dataPolicies.create |
Erstellen Sie neue Datenrichtlinien. |
bigquery.dataPolicies.delete |
Datenrichtlinien löschen? |
bigquery.dataPolicies.get |
Metadaten über Datenrichtlinien abrufen. |
bigquery.dataPolicies.getIamPolicy |
IAM-Berechtigungen einer Datenrichtlinie lesen. |
bigquery.dataPolicies.list |
Datenrichtlinien in einem Projekt auflisten. |
bigquery.dataPolicies.maskedGet |
Maskierte Daten einer Spalte anzeigen, deren Richtlinien-Tag mit einer Datenrichtlinie verknüpft ist. |
bigquery.dataPolicies.setIamPolicy |
IAM-Berechtigungen einer Datenrichtlinie festlegen. |
bigquery.dataPolicies.update |
Metadaten einer Datenrichtlinie aktualisieren. |
bigquery.datasets.create |
Neue, leere Datasets erstellen. |
bigquery.datasets.createTagBinding |
Ressourcen-Tag-Bindungen für ein Dataset erstellen. |
bigquery.datasets.delete |
Datasets löschen. |
bigquery.datasets.deleteTagBinding |
Ressourcen-Tag-Bindungen für ein Dataset löschen. |
bigquery.datasets.get |
Metadaten und Berechtigungen für ein Dataset abrufen.
Zum Aufrufen von Berechtigungen in der Google Cloud Console ist außerdem die Berechtigung bigquery.datasets.getIamPolicy erforderlich. |
bigquery.datasets.getIamPolicy |
Benötigt von der Google Cloud Console, um dem Nutzer die Möglichkeit zu geben, die IAM-Berechtigungen eines Datasets abzurufen. Fails open. Die Möglichkeit, den Vorgang zum Abrufen der Berechtigungen auszuführen, wird durch die Berechtigung bigquery.datasets.get gesteuert. |
bigquery.datasets.link |
Erstellen Sie ein verknüpftes Dataset. |
bigquery.datasets.listTagBindings |
Ressourcen-Tag-Bindungen für ein Dataset auflisten |
bigquery.datasets.setIamPolicy |
Benötigt von der Google Cloud Console, um dem Nutzer die Möglichkeit zu geben, die IAM-Berechtigungen eines Datasets festzulegen. Fails open. Die Möglichkeit, die Berechtigungen festzulegen, wird durch die Berechtigung bigquery.datasets.update gesteuert. |
bigquery.datasets.update |
Metadaten und Berechtigungen für ein Dataset aktualisieren.
Zum Gewähren von Berechtigungen in der Google Cloud Console ist außerdem die Berechtigung bigquery.datasets.setIamPolicy erforderlich. |
bigquery.datasets.updateTag |
Data Catalog-Tags für einen Dataset aktualisieren. |
bigquery.jobs.create |
Jobs, einschließlich Abfragen, innerhalb des Projekts ausführen. |
bigquery.jobs.get |
Daten und Metadaten eines Jobs abrufen.1 |
bigquery.jobs.list |
Alle Jobs auflisten und Metadaten der einzelnen Jobs abrufen, die von einem Nutzer gesendet wurden. Bei Jobs, die von anderen Nutzern gesendet wurden, werden Details und Metadaten entfernt. |
bigquery.jobs.listAll |
Alle Jobs auflisten und Metadaten der einzelnen Jobs abrufen, die von einem Nutzer gesendet wurden. |
bigquery.jobs.listExecutionMetadata |
Alle Jobausführungsmetadaten (ohne vertrauliche Informationen) für jeden von einem Nutzer gesendeten Job auflisten. Sie kann nur auf Organisationsebene angewendet und von der Admin-Benutzeroberfläche verwendet werden. |
bigquery.jobs.delete |
Metadaten für einen Job löschen. |
bigquery.jobs.update |
Jobs abbrechen.1 |
bigquery.models.create |
Neue Modelle für maschinelles Lernen erstellen. |
bigquery.models.delete |
Modelle für maschinelles Lernen löschen. |
bigquery.models.getData |
Daten des Modells für maschinelles Lernen abrufen. Zum Abrufen der Modellmetadaten benötigen Sie bigquery.models.getMetadata . |
bigquery.models.getMetadata |
Metadaten des Modells für maschinelles Lernen abrufen. Zum Abrufen der Modelldaten benötigen Sie bigquery.models.getData . |
bigquery.models.list |
Modelle für maschinelles Lernen und Metadaten zu Modellen auflisten. |
bigquery.models.updateData |
Daten des Modells für maschinelles Lernen aktualisieren. Zum Aktualisieren von Modellmetadaten benötigen Sie bigquery.models.updateMetadata . |
bigquery.models.updateMetadata |
Metadaten des Modells für maschinelles Lernen aktualisieren. Zum Aktualisieren von Modelldaten benötigen Sie bigquery.models.updateData . |
bigquery.models.export |
Modelle für maschinelles Lernen exportieren. |
bigquery.models.updateTag |
Data Catalog-Tags für ein Modell aktualisieren. |
bigquery.readsessions.create |
Mithilfe der Storage Read API eine neue Lesesitzung erstellen. |
bigquery.readsessions.getData |
Daten über die Storage Read API aus einer Lesesitzung lesen. |
bigquery.readsessions.update |
Eine Lesesitzung über die Storage Read API aktualisieren. |
bigquery.reservations.create |
Slot-Reservierung in einem Administrationsprojekt erstellen. |
bigquery.reservations.delete |
Slot-Reservierung löschen. |
bigquery.reservations.get |
Details zu einer Slot-Reservierung abrufen. |
bigquery.reservations.list |
Alle Slot-Reservierungen in einem Administrationsprojekt auflisten. |
bigquery.reservations.update |
Die Attribute einer Slot-Reservierung aktualisieren. |
bigquery.reservationAssignments.create |
Eine Reservierungszuweisung erstellen.
Diese Berechtigung ist für das Eigentümerprojekt und die zugewiesene Ressource erforderlich. |
bigquery.reservationAssignments.delete |
Eine Reservierungszuweisung löschen.
Diese Berechtigung ist für das Eigentümerprojekt und die zugewiesene Ressource erforderlich. |
bigquery.reservationAssignments.list |
Alle Reservierungszuweisungen in einem Projekt auflisten. |
bigquery.reservationAssignments.search |
Reservierungszuweisung für ein bestimmtes Projekt, einen Ordner oder eine Organisation suchen. |
bigquery.rowAccessPolicies.create |
Neue Zugriffsrichtlinie auf Zeilenebene für eine Tabelle erstellen. |
bigquery.rowAccessPolicies.delete |
Zugriffsrichtlinie auf Zeilenebene aus einer Tabelle löschen |
bigquery.rowAccessPolicies.getFilteredData |
Daten in einer Tabelle abrufen, die nur für die Hauptkonten auf der Liste der Berechtigten einer Zugriffsrichtlinie auf Zeilenebene sichtbar sein sollen. Wir empfehlen, diese Berechtigung nur für eine Zugriffsrichtlinie auf Zeilenebene zu gewähren. |
bigquery.rowAccessPolicies.list |
Alle Zugriffsrichtlinien auf Zeilenebene für eine Tabelle auflisten. |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
Zugriff auf Verlaufsdaten für eine Tabelle, die über Zugriffsrichtlinien auf Zeilenebene verfügt oder verfügte. |
bigquery.rowAccessPolicies.getIamPolicy |
IAM-Berechtigungen einer Zeilenzugriffsrichtlinie abrufen. |
bigquery.rowAccessPolicies.setIamPolicy |
IAM-Berechtigungen für die Zeilenzugriffsrichtlinie festlegen. |
bigquery.rowAccessPolicies.update |
Zugriffsrichtlinie auf Zeilenebene neu erstellen. |
bigquery.routines.create |
Neue Routinen (Funktionen und gespeicherte Prozeduren) erstellen. |
bigquery.routines.delete |
Routinen löschen. |
bigquery.routines.get |
Routinendefinitionen und -metadaten abrufen. |
bigquery.routines.list |
Routinen und Metadaten zu Routinen auflisten. |
bigquery.routines.update |
Routinendefinitionen und -metadaten aktualisieren. |
bigquery.routines.updateTag |
Data Catalog-Tags für eine Routine aktualisieren. |
bigquery.savedqueries.create |
Gespeicherte Abfragen erstellen. |
bigquery.savedqueries.delete |
Gespeicherte Abfragen löschen. |
bigquery.savedqueries.get |
Metadaten für gespeicherte Abfragen abrufen. |
bigquery.savedqueries.list |
Gespeicherte Abfragen auflisten. |
bigquery.savedqueries.update |
Gespeicherte Abfragen aktualisieren. |
bigquery.tables.create |
Neue Tabellen erstellen. |
bigquery.tables.createIndex |
Suchindexe für Tabellen erstellen. |
bigquery.tables.createSnapshot
|
Neue Tabellen-Snapshots erstellen. |
bigquery.tables.createTagBinding
|
Ressourcen-Tag-Bindungen für eine Tabelle erstellen. |
bigquery.tables.delete |
Tabellen löschen. |
bigquery.tables.deleteIndex |
Suchindexe für Tabellen löschen. |
bigquery.tables.deleteSnapshot
|
Tabellen-Snapshots löschen. |
bigquery.tables.deleteTagBinding
|
Ressourcen-Tag-Bindungen für ein Dataset löschen. |
bigquery.tables.export |
Tabellendaten aus BigQuery exportieren. |
bigquery.tables.get |
Metadaten von Tabellen abrufen. Zum Abrufen der Tabellendaten benötigen Sie bigquery.tables.getData . |
bigquery.tables.getData |
Tabellendaten abrufen. Diese Berechtigung wird zum Abfragen von Tabellendaten benötigt. Zum Abrufen von Tabellenmetadaten benötigen Sie bigquery.tables.get . |
bigquery.tables.getIamPolicy |
IAM-Richtlinie einer Tabelle lesen. |
bigquery.tables.list |
Tabellen und Metadaten zu Tabellen auflisten. |
bigquery.tables.listEffectiveTags |
Listen Sie die gültigen Tag-Bindungen mit der Cloud Resource Manager API auf. Prüft, wenn das Flag --effective verwendet wird. |
bigquery.tables.listTagBindings |
Listen Sie mit der Cloud Resource Manager API Tag-Bindungen auf. |
bigquery.tables.replicateData |
Tabellendaten replizieren. Diese Berechtigung ist erforderlich, um materialisierte Ansichten zu erstellen. |
bigquery.tables.restoreSnapshot
|
Tabellen-Snapshots wiederherstellen. |
bigquery.tables.setCategory |
Richtlinien-Tags im Tabellenschema festlegen. |
bigquery.tables.setIamPolicy |
IAM-Richtlinie einer Tabelle ändern. |
bigquery.tables.update |
Tabellenmetadaten aktualisieren. |
bigquery.tables.updateData |
Tabellendaten aktualisieren. |
bigquery.tables.updateTag |
Data Catalog-Tags für eine Tabelle aktualisieren. |
bigquery.transfers.get |
Übertragungsmetadaten abrufen. |
bigquery.transfers.update |
Übertragungen erstellen, aktualisieren und löschen. |
1 Für jeden Job, den Sie erstellen, haben Sie automatisch die entsprechenden Berechtigungen bigquery.jobs.get
und bigquery.jobs.update
für diesen Job.
Berechtigungen für BigQuery ML-Aufgaben
In der folgenden Tabelle werden die Berechtigungen beschrieben, die für allgemeine BigQuery ML-Aufgaben erforderlich sind.
Berechtigung | Beschreibung |
---|---|
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData |
Neues Modell mit der Anweisung CREATE MODEL erstellen |
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData bigquery.models.updateMetadata |
Vorhandenes Modell mit der Anweisung CREATE OR REPLACE MODEL ersetzen |
bigquery.models.delete |
Modell mit der models.delete API löschen |
bigquery.jobs.create bigquery.models.delete |
Modell mit der DROP MODEL -Anweisung löschen |
bigquery.models.getMetadata |
Modellmetadaten mit der models.get API abrufen |
bigquery.models.list |
Modelle und Metadaten zu Modellen mithilfe der models.list API auflisten |
bigquery.models.updateMetadata |
Aktualisieren Sie die Modellmetadaten mit der models.delete API. Wenn Sie eine Ablaufzeit ungleich null für das Modell festlegen oder aktualisieren, ist außerdem die Berechtigung bigquery.models.delete erforderlich. |
bigquery.jobs.create bigquery.models.getData
|
Führen Sie mit Funktionen wie ML.EVALUATE , ML.PREDICT , ML.TRAINING_INFO und ML.WEIGHTS Bewertung, Vorhersage, Modell- und Featureinspektionen durch. |
bigquery.jobs.create bigquery.models.export
|
Modell exportieren |
bigquery.models.updateTag |
Data Catalog-Tags für ein Modell aktualisieren. |
Nächste Schritte
- Weitere Informationen zum Zuweisen von Rollen auf Dataset-Ebene finden Sie unter Zugriff auf Datasets steuern.
- Weitere Informationen zum Zuweisen von Rollen auf Tabellen- oder Ansichtsebene finden Sie unter Zugriff auf Tabellen und Ansichten steuern.