Dataproc-IAM-Rollen und ‑Berechtigungen

Übersicht

Mit Identity and Access Management (IAM) können Sie den Nutzer- und Gruppenzugriff auf Projektressourcen steuern. In diesem Dokument werden die für Dataproc erforderlichen IAM-Berechtigungen sowie die IAM-Rollen erläutert, mit denen diese Berechtigungen gewährt werden.

Dataproc-Berechtigungen

Mit Dataproc-Berechtigungen können Nutzer, einschließlich Dienstkonten, Aktionen in Dataproc-Clustern, -Jobs und -Vorgängen oder Workflow-Vorlagen ausführen. Mit der Berechtigung dataproc.clusters.create kann ein Nutzer beispielsweise Dataproc-Cluster in einem Projekt erstellen. Normalerweise erteilen Sie keine Berechtigungen, sondern Rollen, die eine oder mehrere Berechtigungen enthalten.

In den folgenden Tabellen werden die Berechtigungen aufgeführt, die zum Aufrufen von Dataproc APIs (Methoden) erforderlich sind. Die Tabellen sind entsprechend den APIs organisiert, die mit den einzelnen Dataproc-Ressourcen (Cluster, Jobs, Vorgänge und Workflows) verbunden sind.

Geltungsbereich der Berechtigung: Die in den folgenden Tabellen aufgeführten Dataproc-Berechtigungen gelten für das zugehörige Google Cloud-Projekt (cloud-platform-Bereich). Weitere Informationen finden Sie unter Dienstkontoberechtigungen.

Beispiele:

  • dataproc.clusters.create berechtigt zum Erstellen von Dataproc-Clustern im zugehörigen Projekt.
  • dataproc.jobs.create berechtigt zum Senden von Dataproc-Jobs an Dataproc-Cluster im zugehörigen Projekt.
  • dataproc.clusters.list berechtigt zum Auflisten der Details von Dataproc-Clustern im zugehörigen Projekt.

Erforderliche Berechtigungen für Clustermethoden

Methode Erforderliche Berechtigungen
projects.regions.clusters.create 1, 2 dataproc.clusters.create
projects.regions.clusters.get dataproc.clusters.get
projects.regions.clusters.list dataproc.clusters.list
projects.regions.clusters.patch 1, 2, 3 dataproc.clusters.update
projects.regions.clusters.delete 1 dataproc.clusters.delete
projects.regions.clusters.start dataproc.clusters.start
projects.regions.clusters.stop dataproc.clusters.stop
projects.regions.clusters.getIamPolicy dataproc.clusters.getIamPolicy
projects.regions.clusters.setIamPolicy dataproc.clusters.setIamPolicy

Hinweise:

  1. Die Berechtigung dataproc.operations.get ist auch erforderlich, um Statusaktualisierungen über die Google Cloud CLI abzurufen.
  2. Die Berechtigung dataproc.clusters.get ist auch erforderlich, um das Ergebnis des Vorgangs über die Google Cloud CLI abzurufen.
  3. Die Berechtigung dataproc.autoscalingPolicies.use ist auch erforderlich, um eine Autoscaling-Richtlinie für einen Cluster zu aktivieren.

Erforderliche Berechtigungen für Jobs-Methoden

Methode Erforderliche Berechtigungen
projects.regions.jobs.submit 1, 2 dataproc.jobs.create
dataproc.clusters.use
projects.regions.jobs.get dataproc.jobs.get
projects.regions.jobs.list dataproc.jobs.list
projects.regions.jobs.cancel 1 dataproc.jobs.cancel
projects.regions.jobs.patch 1 dataproc.jobs.update
projects.regions.jobs.delete 1 dataproc.jobs.delete
projects.regions.jobs.getIamPolicy dataproc.jobs.getIamPolicy
projects.regions.jobs.setIamPolicy dataproc.jobs.setIamPolicy

Hinweise:

  1. Für die Google Cloud CLI ist außerdem die dataproc.jobs.get-Berechtigung für die Befehle jobs submit, jobs wait, jobs update, jobs delete und jobs kill erforderlich.

  2. Die gcloud CLI erfordert außerdem die Berechtigung dataproc.clusters.get, um Jobs senden zu können. Ein Beispiel für das Festlegen der notwendigen Berechtigungen, um gcloud dataproc jobs submit in einem Cluster mithilfe von Dataproc Granular IAM auszuführen, finden Sie unter Jobs mit Granular IAM senden.

Erforderliche Berechtigungen für Vorgangsmethoden

Methode Erforderliche Berechtigungen
projects.regions.operations.get dataproc.operations.get
projects.regions.operations.list dataproc.operations.list
projects.regions.operations.cancel dataproc.operations.cancel
projects.regions.operations.delete dataproc.operations.delete
projects.regions.operations.getIamPolicy dataproc.operations.getIamPolicy
projects.regions.operations.setIamPolicy dataproc.operations.setIamPolicy

Erforderliche Berechtigungen für Methoden von Workflow-Vorlagen

Methode Erforderliche Berechtigungen
projects.regions.workflowTemplates.instantiate dataproc.workflowTemplates.instantiate
projects.regions.workflowTemplates.instantiateInline dataproc.workflowTemplates.instantiateInline
projects.regions.workflowTemplates.create dataproc.workflowTemplates.create
projects.regions.workflowTemplates.get dataproc.workflowTemplates.get
projects.regions.workflowTemplates.list dataproc.workflowTemplates.list
projects.regions.workflowTemplates.update dataproc.workflowTemplates.update
projects.regions.workflowTemplates.delete dataproc.workflowTemplates.delete
projects.regions.workflowTemplates.getIamPolicy dataproc.workflowTemplates.getIamPolicy
projects.regions.workflowTemplates.setIamPolicy dataproc.workflowTemplates.setIamPolicy

Hinweise:

  1. Workflow-Vorlagenberechtigungen sind unabhängig von Cluster- und Jobberechtigungen. Ein Nutzer ohne create cluster- oder submit job-Berechtigungen kann eine Workflow-Vorlage erstellen und instanziieren.

  2. Die Google Cloud CLI erfordert zusätzlich die Berechtigung dataproc.operations.get, um die Fertigstellung des Workflows abzufragen.

  3. Die Berechtigung dataproc.operations.cancel ist erforderlich, um einen laufenden Workflow abzubrechen.

Erforderliche Berechtigungen für Methoden von Autoscaling-Richtlinien

Methode Erforderliche Berechtigungen
projects.regions.autoscalingPolicies.create dataproc.autoscalingPolicies.create
projects.regions.autoscalingPolicies.get dataproc.autoscalingPolicies.get
projects.regions.autoscalingPolicies.list dataproc.autoscalingPolicies.list
projects.regions.autoscalingPolicies.update dataproc.autoscalingPolicies.update
projects.regions.autoscalingPolicies.delete dataproc.autoscalingPolicies.delete
projects.regions.autoscalingPolicies.getIamPolicy dataproc.autoscalingPolicies.getIamPolicy
projects.regions.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.setIamPolicy

Hinweise:

  1. Die Berechtigung dataproc.autoscalingPolicies.use ist erforderlich, um eine Autoscaling-Richtlinie für einen Cluster mit einer clusters.patch-Methodenanfrage zu aktivieren.

Erforderliche Berechtigungen für Methoden für Knotengruppen

Methode Erforderliche Berechtigungen
projects.regions.nodeGroups.create dataproc.nodeGroups.create
projects.regions.nodeGroups.get dataproc.nodeGroups.get
projects.regions.nodeGroups.resize dataproc.nodeGroups.update

Dataproc-Rollen

Dataproc-IAM-Rollen enthalten eine oder mehrere Berechtigungen. Sie erteilen Nutzern oder Gruppen Rollen, damit sie Aktionen für die Dataproc-Ressourcen in einem Projekt ausführen können. Die Rolle Dataproc-Betrachter umfasst beispielsweise die Berechtigungen get und list, die Nutzern ermöglichen, Dataproc-Cluster, -Jobs und -Vorgänge in einem Projekt abzurufen und aufzulisten.

In der folgenden Tabelle sind die Dataproc-IAM-Rollen und die Berechtigungen aufgeführt, die mit jeder Rolle verknüpft sind.

Berechtigungen

(roles/dataproc.admin)

Umfassende Kontrolle über Dataproc-Ressourcen.

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.*

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.*

dataproc.jobs.*

dataproc.nodeGroups.*

dataproc.operations.*

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.*

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.editor)

Bietet Berechtigungen zum Aufrufen der Ressourcen, die zum Verwalten von Dataproc erforderlich sind, beispielsweise Maschinentypen, Netzwerke, Projekte und Zonen.

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Cluster

compute.machineTypes.*

compute.networks.get

compute.networks.list

compute.projects.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.create

dataproc.autoscalingPolicies.delete

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.update

dataproc.autoscalingPolicies.use

dataproc.batches.analyze

dataproc.batches.cancel

dataproc.batches.create

dataproc.batches.delete

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.start

dataproc.clusters.stop

dataproc.clusters.update

dataproc.clusters.use

dataproc.jobs.cancel

dataproc.jobs.create

dataproc.jobs.delete

dataproc.jobs.get

dataproc.jobs.list

dataproc.jobs.update

dataproc.nodeGroups.*

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.*

dataproc.sessions.create

dataproc.sessions.delete

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.sessions.terminate

dataproc.workflowTemplates.create

dataproc.workflowTemplates.delete

dataproc.workflowTemplates.get

dataproc.workflowTemplates.instantiate

dataproc.workflowTemplates.instantiateInline

dataproc.workflowTemplates.list

dataproc.workflowTemplates.update

dataprocrm.nodePools.*

dataprocrm.nodes.get

dataprocrm.nodes.heartbeat

dataprocrm.nodes.list

dataprocrm.nodes.update

dataprocrm.operations.get

dataprocrm.operations.list

dataprocrm.workloads.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.hubAgent)

Kann Dataproc-Ressourcen verwalten. Vorgesehen für Dienstkonten, mit denen Dataproc Hub-Instanzen ausgeführt werden.

compute.instances.get

compute.instances.setMetadata

compute.instances.setTags

compute.zoneOperations.get

compute.zones.list

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.autoscalingPolicies.use

dataproc.clusters.create

dataproc.clusters.delete

dataproc.clusters.get

dataproc.clusters.list

dataproc.clusters.update

dataproc.operations.cancel

dataproc.operations.delete

dataproc.operations.get

dataproc.operations.list

iam.serviceAccounts.actAs

iam.serviceAccounts.get

iam.serviceAccounts.list

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

logging.logEntries.create

logging.logEntries.list

logging.logEntries.route

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.get

storage.objects.list

(roles/dataproc.viewer)

Lesezugriff auf Dataproc-Ressourcen

Ressourcen auf der niedrigsten Ebene, für die Sie diese Rolle zuweisen können:

  • Cluster

compute.machineTypes.get

compute.regions.*

compute.zones.*

dataproc.autoscalingPolicies.get

dataproc.autoscalingPolicies.list

dataproc.batches.analyze

dataproc.batches.get

dataproc.batches.list

dataproc.batches.sparkApplicationRead

dataproc.clusters.get

dataproc.clusters.list

dataproc.jobs.get

dataproc.jobs.list

dataproc.nodeGroups.get

dataproc.operations.get

dataproc.operations.list

dataproc.sessionTemplates.get

dataproc.sessionTemplates.list

dataproc.sessions.get

dataproc.sessions.list

dataproc.sessions.sparkApplicationRead

dataproc.workflowTemplates.get

dataproc.workflowTemplates.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataproc.worker)

Bietet Worker-Zugriff auf Dataproc-Ressourcen. Für Dienstkonten gedacht.

cloudprofiler.profiles.create

cloudprofiler.profiles.update

dataproc.agents.*

dataproc.batches.sparkApplicationWrite

dataproc.sessions.sparkApplicationWrite

dataproc.tasks.*

dataprocrm.nodes.mintOAuthToken

logging.logEntries.create

logging.logEntries.route

monitoring.metricDescriptors.create

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

monitoring.timeSeries.create

storage.buckets.get

storage.folders.*

storage.managedFolders.create

storage.managedFolders.delete

storage.managedFolders.get

storage.managedFolders.list

storage.multipartUploads.*

storage.objects.*

Hinweise:

  • compute-Berechtigungen sind erforderlich oder werden empfohlen, um Dataproc-Cluster mit der Google Cloud Console oder der gcloud-Befehlszeilen-CLI zu erstellen und abzurufen.
  • Damit ein Nutzer Dateien hochladen kann, muss ihm die Rolle Storage Object Creator zugewiesen werden. Damit ein Nutzer die Jobausgabe abrufen kann, muss ihm die Rolle Storage Object Viewer zugewiesen werden.
  • Ein Nutzer benötigt die Berechtigung monitoring.timeSeries.list, um Diagramme auf dem Tab „Übersicht“ der Seite „Google Cloud Console → Dataproc → Clusterdetails“ aufzurufen.
  • Ein Nutzer benötigt die Berechtigung compute.instances.list, um den Instanzstatus und das SSH-Menü für die Masterinstanz auf dem Tab „VM-Instanzen“ der Seite „Google Cloud Console → Dataproc → Clusterdetails“ aufzurufen. Weitere Informationen zu Compute Engine-Rollen finden Sie unter Compute Engine → Verfügbare IAM-Rollen.
  • Zum Erstellen eines Clusters mit einem benutzerdefinierten Dienstkonto muss das angegebene Dienstkonto alle Berechtigungen der Rolle Dataproc Worker haben, einschließlich Zugriff auf die Staging- und Temp-Buckets von Dataproc. Abhängig von den konfigurierten Funktionen können zusätzliche Rollen erforderlich sein. Weitere Informationen finden Sie unter Cluster mit einem benutzerdefinierten VM-Dienstkonto erstellen.

Projektrollen

Sie können auch Berechtigungen auf Projektebene festlegen, indem Sie die IAM- Projektrollen verwenden. In der folgenden Tabelle sind die Berechtigungen aufgeführt, die mit IAM-Projektrollen verknüpft sind:

Projektrolle Berechtigungen
Projektbetrachter Alle Projektberechtigungen für schreibgeschützte Aktionen, die den Status (get, list) beibehalten
Projektbearbeiter Alle Berechtigungen des Projektbetrachters sowie alle Projektberechtigungen für Aktionen, die den Status ändern (erstellen, löschen, aktualisieren, verwenden, abbrechen, anhalten, starten)
Projektinhaber Alle Berechtigungen des Projektbearbeiters sowie Berechtigungen zum Verwalten der Zugriffskontrolle für das Projekt (get/set IamPolicy) und zum Einrichten der Projektabrechnung

IAM-Rollen und Dataproc-Vorgänge – Zusammenfassung

In der folgenden Tabelle sind die Dataproc-Vorgänge aufgeführt, die mit Projekt- und Dataproc-Rollen verknüpft sind.

Aktion Projektbearbeiter Projektbetrachter Dataproc-Administrator Dataproc-Bearbeiter Dataproc-Betrachter
Dataproc-IAM-Berechtigungen abrufen/festlegen Nein Nein Ja Nein Nein
Cluster erstellen Ja Nein Ja Ja Nein
Cluster auflisten Ja Ja Ja Ja Ja
Clusterdetails abrufen Ja Ja Ja 1, 2 Ja 1, 2 Ja 1, 2
Cluster aktualisieren Ja Nein Ja Ja Nein
Cluster löschen Ja Nein Ja Ja Nein
Cluster starten/anhalten Ja Nein Ja Ja Nein
Job senden Ja Nein Ja 3 Ja 3 Nein
Jobs auflisten Ja Ja Ja Ja Ja
Jobdetails abrufen Ja Ja Ja 4 Ja 4 Ja 4
Job abbrechen Ja Nein Ja Ja Nein
Job löschen Ja Nein Ja Ja Nein
Vorgänge auflisten Ja Ja Ja Ja Ja
Vorgangsdetails abrufen Ja Ja Ja Ja Ja
Vorgang löschen Ja Nein Ja Ja Nein

Hinweise:

  1. Das Leistungsdiagramm ist nur verfügbar, wenn der Nutzer auch eine Rolle mit der Berechtigung monitoring.timeSeries.list hat.
  2. Die Liste der VMs im Cluster enthält nur dann Statusinformationen und einen SSH-Link für die Masterinstanz, wenn der Nutzer auch eine Rolle mit der Berechtigung compute.instances.list hat.
  3. Für Jobs, bei denen Dateien hochgeladen werden, muss der Nutzer die Rolle Storage Object Creator oder Schreibzugriff auf den Dataproc-Staging-Bucket haben.
  4. Die Jobausgabe ist nur verfügbar, wenn der Nutzer auch die Rolle zum Betrachten des Storage-Objekts oder Lesezugriff auf den Staging-Bucket für das Projekt hat.

Dienstkonten

Wenn Sie Dataproc APIs aufrufen, um Aktionen wie das Erstellen von VM-Instanzen in einem Projekt auszuführen, führt Dataproc diese Aktionen in Ihrem Namen mithilfe eines Dienstkontos aus, das die dafür erforderlichen Berechtigungen hat. Weitere Informationen finden Sie unter Dataproc-Dienstkonten.

IAM-Management

Sie können IAM-Richtlinien mithilfe der Google Cloud Console, der IAM API oder der Google Cloud CLI abrufen und festlegen.

Nächste Schritte