Dataproc Granular IAM ist eine Funktion, mit der Sie Berechtigungen auf der Ebene von Clustern, Jobs, Vorgängen, Workflowvorlagen oder Autoscaling-Richtlinien gewähren können.
Beispiel: Sie können einem Nutzer eine Cluster-Betrachterrolle zuweisen, die es ihm ermöglicht, einen Cluster innerhalb eines Projekts aufzurufen. Einem anderen Nutzer können Sie eine Job-Bearbeiterrolle erteilen, mit der dieser Nutzer den Job aktualisieren, abbrechen und anzeigen lassen kann. Informationen zu den spezifischen Google Cloud CLI-Befehlen, die durch jede Dataproc Granular IAM-Rolle aktiviert werden, finden Sie unter Durch Granular IAM aktivierte SDK-Befehle.
Granulare IAM-Rollen und ‑Berechtigungen für Dataproc
Dataproc Granular IAM kann die folgenden Rollen mit den folgenden Berechtigungen für Dataproc-Ressourcen festlegen.
Clusterrollen
Rolle | Berechtigungen |
---|---|
Betrachter | dataproc.clusters.get |
Editor | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop |
Inhaber | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.clusters.setIamPolicy dataproc.clusters.getIamPolicy |
Positionen
Rolle | Berechtigungen |
---|---|
Betrachter | dataproc.jobs.get |
Editor | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update |
Inhaber | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update dataproc.jobs.setIamPolicy dataproc.jobs.getIamPolicy |
Vorgangsrollen
Rolle | Berechtigungen |
---|---|
Betrachter | dataproc.operations.get |
Editor | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete |
Inhaber | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete dataproc.operations.setIamPolicy dataproc.operations.getIamPolicy |
Rollen für Workflowvorlagen
Rolle | Berechtigungen |
---|---|
Betrachter | dataproc.workflowTemplates.get |
Editor | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update |
Inhaber | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update dataproc.workflowTemplates.setIamPolicy dataproc.workflowTemplates.getIamPolicy |
Rollen für Autoscaling-Richtlinien
Rolle | Berechtigungen |
---|---|
Betrachter | dataproc.autoscalingPolicies.get |
Editor | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update |
Inhaber | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update dataproc.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.getIamPolicy |
Dataproc Granular IAM verwenden
In diesem Abschnitt wird erläutert, wie Sie Nutzern mithilfe von Dataproc Granular IAM Rollen in einer vorhandenen Dataproc-Ressource zuweisen. Weitere Informationen zum Aktualisieren und Entfernen von IAM-Rollen (Identity and Access Management) finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
gcloud-Befehl
- Rufen Sie die IAM-Richtlinie der Ressource ab und schreiben Sie sie in eine JSON-Datei (resource-type kann dabei "Cluster", "Jobs", "Vorgänge" oder "Workflow-Vorlagen" oder "autoscaling-policies" sein):
gcloud dataproc resource-type get-iam-policy resource-id \ --region=region \ --format=json > iam.json
- Der Inhalt der JSON-Datei sieht in etwa so aus:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" }
- Fügen Sie mithilfe eines Texteditors ein neues Binding-Objekt in das Array "bindings" ein, das die Nutzer und die Ressourcenzugriffsrolle für diese Nutzer definiert. Um beispielsweise dem Nutzer
sean@example.com
die Rolle „Betrachter“ (roles/viewer
) zuzuweisen, würden Sie das vorherige Beispiel ändern, um ein neues Binding-Objekt hinzuzufügen (im folgenden Beispiel fett dargestellt). Hinweis: Achten Sie darauf, denetag
-Wert zurückzugeben, den Sie vongcloud dataproc resource-type get-iam-policy
erhalten haben. Weitere Informationen finden Sie in der Dokumentation zu ETags.{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-get-iam-policy" }
- Aktualisieren Sie die Richtlinie des Clusters mit dem neuen Bindings-Array. Führen Sie dazu den folgenden Befehl aus (resource-type kann "clusters", "jobs", "operations", "workflow-templates" oder "autoscaling-policies" sein):
gcloud dataproc resource-type set-iam-policy resource-name \ --region=region \ --format=json iam.json
- Der Befehl gibt die aktualisierte Richtlinie aus:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
REST API
- Senden Sie eine resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies")-getIamPolicy-Anfrage, um die IAM-Richtlinie für die Ressource abzurufen.
Beispiel für eine getIamPolicy-Anfrage auf Clusterebene:
GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
- Der Inhalt der JSON-Datei sieht in etwa so aus:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" }
- Erstellen Sie mithilfe eines Texteditors das folgende JSON-Richtlinienobjekt, um das Bindings-Array einzuschließen, das Sie gerade vom Dataproc-Dienst erhalten haben. Achten Sie darauf, dass Sie den "etag"-Wert zurückgeben, den Sie in der getIamPolicy-Antwort erhalten haben (weitere Informationen finden Sie in der etag-Dokumentation).
Fügen Sie jetzt ein neues Binding-Objekt in das Array "bindings" ein, durch das die Nutzer und die Cluster-Zugriffsrolle für diese Nutzer festgelegt werden. Um beispielsweise dem Nutzer
sean@example.com
die Rolle "Betrachter" (roles/viewer
) zuzuweisen, würden Sie das obige Beispiel ändern, um ein neues Binding-Objekt hinzuzufügen (unten in Fettschrift dargestellt).{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } }
- Legen Sie die aktualisierte Richtlinie für die Ressource fest, indem Sie eine
setIamPolicy
-Anfrage ausgeben.Beispiel für setIamPolicy-Anfrage auf Clusterebene:
POST https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:setIamPolicy Request body
{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } }
- Der Inhalt der JSON-Antwort sieht in etwa so aus:
Antwort
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
Console
Rufen Sie in der Google Cloud Console die Seite Dataproc-Cluster auf und klicken Sie auf das Feld links neben dem Clusternamen, um den Bereich Berechtigungen/Labels zu öffnen. Wenn der Bereich nicht angezeigt wird, klicken Sie rechts oben auf der Seite auf INFOFELD ANSEHEN. Wählen Sie auf dem Tab „Berechtigungen“ die Dataproc-Rolle aus, fügen Sie im Feld Hauptkonten hinzufügen eine oder mehrere Kontoadressen hinzu und klicken Sie dann auf Hinzufügen.

Durch Granular IAM aktivierte SDK-Befehle
In diesem Abschnitt werden die gcloud dataproc
-Befehle beschrieben, die für Dataproc-Ressourcen nach jeder Granular IAM-Rolle aktiviert sind.
Cluster
IAM-Rolle | Befehl |
---|---|
Betrachter | gcloud dataproc clusters describe cluster-name |
Bearbeiter | gcloud dataproc clusters describe cluster-name gcloud dataproc clusters list gcloud dataproc clusters delete cluster-name gcloud dataproc clusters diagnose cluster-name gcloud dataproc clusters update cluster-name gcloud beta dataproc clusters start cluster-name gcloud beta dataproc clusters stop cluster-name |
Inhaber | gcloud dataproc clusters describe cluster-name gcloud dataproc clusters list gcloud dataproc clusters delete cluster-name gcloud dataproc clusters diagnose cluster-name gcloud dataproc clusters update cluster-name gcloud beta dataproc clusters start cluster-name gcloud beta dataproc clusters stop cluster-name gcloud dataproc clusters get-iam-policy cluster-name gcloud dataproc clusters set-iam-policy cluster-name |
Jobs
IAM-Rolle | Befehl |
---|---|
Betrachter | gcloud dataproc jobs describe job-id |
Bearbeiter | gcloud dataproc jobs delete job-id gcloud dataproc jobs describe job-id gcloud dataproc jobs kill job-id gcloud dataproc jobs update job-id gcloud dataproc jobs wait job-id |
Inhaber | gcloud dataproc jobs delete job-id gcloud dataproc jobs describe job-id gcloud dataproc jobs kill job-id gcloud dataproc jobs update job-id gcloud dataproc jobs wait job-id gcloud dataproc jobs get-iam-policy job-id gcloud dataproc jobs set-iam-policy job-id |
Betrieb
IAM-Rolle | Befehl |
---|---|
Betrachter | gcloud dataproc operations describe operation-id |
Bearbeiter | gcloud dataproc operations delete operation-id gcloud dataproc operations describe operation-id gcloud dataproc operations cancel operation-id |
Inhaber | gcloud dataproc operations delete operation-id gcloud dataproc operations describe operation-id gcloud dataproc operations cancel operation-id gcloud dataproc operations get-iam-policy operation-id gcloud dataproc operations set-iam-policy operation-id |
Workflowvorlagen
IAM-Rolle | Befehl |
---|---|
Betrachter | gcloud dataproc workflow-templates describe template-id |
Bearbeiter | gcloud dataproc workflow-templates delete template-id gcloud dataproc workflow-templates describe template-id gcloud dataproc workflow-templates remove-job template-id gcloud dataproc workflow-templates run template-id |
Inhaber | gcloud dataproc workflow-templates delete template-id gcloud dataproc workflow-templates describe template-id gcloud dataproc workflow-templates remove-job template-id gcloud dataproc workflow-templates run template-id gcloud dataproc workflow-templates get-iam-policy template-id gcloud dataproc workflow-templates set-iam-policy template-id |
Autoscaling-Richtlinien
IAM-Rolle | Befehl |
---|---|
Betrachter | gcloud dataproc autoscaling-policies describe policy-id |
Bearbeiter | gcloud dataproc autoscaling-policies delete policy-id gcloud dataproc autoscaling-policies describe policy-id gcloud dataproc autoscaling-policies update policy-id gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id |
Inhaber | gcloud dataproc autoscaling-policies delete policy-id gcloud dataproc autoscaling-policies describe policy-id gcloud dataproc autoscaling-policies update policy-id gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id gcloud dataproc autoscaling-policies get-iam-policy policy-id gcloud dataproc autoscaling-policies set-iam-policy policy-id |
Jobs mit Granular IAM senden
Damit ein Hauptkonto (Nutzer, Gruppe oder Dienstkonto) Jobs mit Cloud Dataproc Granular IAM an einen angegebenen Cluster übermitteln kann, müssen dem Nutzer zusätzlich zur Editor-Rolle in einem Cluster zusätzliche Berechtigungen auf Projektebene gewährt werden. Im Folgenden sind die Schritte beschrieben, wie Sie einem Hauptkonto das Senden von Jobs auf einem bestimmten Dataproc-Cluster gestatten:
- Erstellen Sie einen Cloud Storage-Bucket, mit dem der Cluster eine Verbindung zu Cloud Storage herstellen kann.
- Fügen Sie das Hauptkonto der Richtlinie auf Bucket-Ebene hinzu und wählen Sie die Rolle "Storage-Objektbetrachter" für das Mitglied aus (siehe
roles/storage.objectViewer
), die die folgenden Berechtigungen umfasst:storage.objects.get
storage.objects.list
- Wenn Sie den Cluster erstellen, übergeben Sie den Namen des soeben erstellten Buckets mit dem Parameter
--bucket
an den Cluster. Weitere Informationen finden Sie untergcloud dataproc clusters create --bucket
. - Legen Sie nach dem Erstellen des Clusters eine Richtlinie für den Cluster fest, die dem Hauptkonto eine Bearbeiter- oder Eigentümerrolle erteilt. Weitere Informationen finden Sie unter Dataproc Granular IAM verwenden.
- Erstellen Sie eine benutzerdefinierte IAM-Rolle mit den folgenden Berechtigungen:
dataproc.jobs.create
dataproc.jobs.get
- Wählen Sie das Hauptkonto auf der IAM der Google Cloud Console aus oder fügen Sie es hinzu und wählen Sie dann die benutzerdefinierte Rolle aus, um sie dem Hauptkonto hinzuzufügen.