Um den Zugriff für Nutzer innerhalb eines Projekts oder einer Organisation einzuschränken, können Sie IAM-Rollen (Identitäts- und Zugriffsverwaltung) für Dataflow verwenden. Sie können den Zugriff auf Dataflow-bezogene Ressourcen steuern, anstatt Nutzern die Rolle Betrachter, Bearbeiter oder Inhaber für das gesamte Google Cloud-Projekt zuzuweisen.
Diese Seite konzentriert sich auf die Verwendung der IAM-Rollen von Dataflow. Eine ausführliche Beschreibung von IAM und den entsprechenden Funktionen finden Sie in der IAM-Dokumentation.
Jede Dataflow-Methode fordert vom Aufrufer bestimmte Berechtigungen. Eine Liste der Berechtigungen und Rollen, die Dataflow unterstützt, finden Sie im nachfolgenden Abschnitt.
Berechtigungen und Rollen
In diesem Abschnitt sind die Berechtigungen und Rollen zusammengefasst, die von Dataflow IAM unterstützt werden.
Erforderliche Berechtigungen
In der folgenden Tabelle sind die Berechtigungen aufgelistet, die der Aufrufer haben muss, um die einzelnen Methoden aufzurufen:
Methode | Erforderliche Berechtigungen |
---|---|
dataflow.jobs.create |
dataflow.jobs.create |
dataflow.jobs.cancel |
dataflow.jobs.cancel |
dataflow.jobs.updateContents |
dataflow.jobs.updateContents |
dataflow.jobs.list |
dataflow.jobs.list |
dataflow.jobs.get |
dataflow.jobs.get |
dataflow.messages.list |
dataflow.messages.list |
dataflow.metrics.get |
dataflow.metrics.get |
dataflow.jobs.snapshot |
dataflow.jobs.snapshot |
Rollen
In der folgenden Tabelle sind die Dataflow IAM-Rollen und die jeweiligen Berechtigungen aufgeführt, die eine Rolle enthält. Jede Berechtigung gilt für einen bestimmten Ressourcentyp. Eine Liste der Berechtigungen finden Sie auf der Seite Rollen in der Google Cloud Console.
Role | Permissions |
---|---|
Dataflow Admin( Minimal role for creating and managing dataflow jobs. |
|
Dataflow Developer( Provides the permissions necessary to execute and manipulate Dataflow jobs. Lowest-level resources where you can grant this role:
|
|
Dataflow Viewer( Provides read-only access to all Dataflow-related resources. Lowest-level resources where you can grant this role:
|
|
Dataflow Worker( Provides the permissions necessary for a Compute Engine service account to execute work units for a Dataflow pipeline. Lowest-level resources where you can grant this role:
|
|
Die Rolle "Dataflow-Worker" (roles/dataflow.worker
) bietet die Berechtigungen, die ein Compute Engine-Dienstkonto benötigt, um Arbeitseinheiten für eine Apache Beam-Pipeline auszuführen. Die Rolle "Dataflow-Worker" muss einem Dienstkonto zugewiesen sein, das Arbeit vom Dataflow-Dienst anfordern und aktualisieren kann.
Die Rolle "Dataflow-Dienst-Agent" (roles/dataflow.serviceAgent
) wird ausschließlich vom Dataflow-Dienstkonto verwendet. Sie bietet dem Dienstkonto Zugriff auf verwaltete Ressourcen in Ihrem Google Cloud-Projekt, um Dataflow-Jobs auszuführen. Sie wird dem Dienstkonto automatisch zugewiesen, wenn Sie die Dataflow API für Ihr Projekt auf der API-Seite der Google Cloud Console aktivieren.
Jobs erstellen
Zum Erstellen eines Jobs enthält die Rolle roles/dataflow.admin
die minimalen Berechtigungen, die zum Ausführen und Prüfen von Jobs erforderlich sind.
Alternativ sind die folgenden Berechtigungen erforderlich:
- Die Rolle
roles/dataflow.developer
zum Instanziieren des Jobs selbst. - Die Rolle
roles/compute.viewer
für den Zugriff auf Maschinentypinformationen und zur Ansicht anderer Einstellungen. - Die Rolle
roles/storage.objectAdmin
für die Berechtigung zum Staging von Dateien in Cloud Storage.
Beispiel für eine Rollenzuweisung
Die folgende Gliederung veranschaulicht den Nutzen der verschiedenen Dataflow-Rollen:
- Der Entwickler, der Jobs erstellt und prüft, benötigt die Rolle
roles/iam.serviceAccountUser
. - Für eine komplexere Verwaltung von Berechtigungen benötigt der Entwickler, der mit dem Dataflow-Job interagiert, die Rolle
roles/dataflow.developer
.- Sie benötigen die Rolle
roles/storage.objectAdmin
oder eine ähnliche Rolle, um die erforderlichen Dateien bereitzustellen. - Für die Fehlerbehebung und Kontingentprüfung benötigen sie die Rolle
roles/compute.viewer
des Projekts. - Sofern keine anderen Rollen zugewiesen wurden, ermöglicht diese Rolle den Entwicklern, Dataflow-Jobs zu erstellen und zu löschen, nicht aber mit den einzelnen VMs zu interagieren oder auf andere Cloud-Dienste zuzugreifen.
- Sie benötigen die Rolle
- Das Worker-Dienstkonto benötigt die Rollen
roles/dataflow.worker
undroles/dataflow.admin
, um Daten für den Dataflow-Dienst zu verarbeiten.- Für den Zugriff auf Jobdaten benötigt das Worker-Dienstkonto andere Rollen, z. B.
roles/storage.objectAdmin
. - Zum Schreiben in BigQuery-Tabellen benötigt das Worker-Dienstkonto die Rolle
roles/bigquery.dataEditor
. - Zum Lesen aus einem Pub/Sub-Thema oder -Abo benötigt das Worker-Dienstkonto die Rolle
roles/pubsub.editor
.
- Für den Zugriff auf Jobdaten benötigt das Worker-Dienstkonto andere Rollen, z. B.
- Wenn Sie eine freigegebene VPC verwenden, muss das freigegebene VPC-Subnetzwerk für das Dataflow-Dienstkonto freigegeben werden und die Rolle "Compute-Netzwerknutzer", die im angegebenen Subnetz zugewiesen ist.
- Wenn Sie prüfen möchten, ob das freigegebene VPC-Subnetzwerk für das Dataflow-Dienstkonto freigegeben ist, rufen Sie in der Google Cloud Console die Seite Freigegebene VPC auf und suchen Sie nach dem Subnetz. In der Spalte Freigegeben für sehen Sie, ob das VPC-Subnetzwerk für das Dataflow-Dienstkonto freigegeben ist. Weitere Informationen finden Sie unter Richtlinien für die Angabe eines Subnetzwerkparameters für eine freigegebene VPC.
- Das Compute Engine-Dienstkonto des Hostprojekts, das Dataflow-Worker-Dienstkonto des Dienstprojekts und das Dienstkonto, mit dem die Job muss die folgenden Rollen haben:
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
Dataflow-Rollen zuweisen
Dataflow-Rollen können derzeit nur auf Organisations- und Projektebene festgelegt werden.
Informationen zum Verwalten von Rollen auf Organisationsebene finden Sie unter Zugriffssteuerung für Organisationen mithilfe von IAM.
Informationen zum Festlegen von Rollen auf Projektebene erhalten Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.