Ruoli e autorizzazioni IAM di Dataproc

Panoramica

Identity and Access Management (IAM) consente di controllare l'accesso di utenti e gruppi alle risorse di progetto. Questo documento è incentrato su Le autorizzazioni IAM pertinenti per Dataproc e i ruoli IAM che concedono queste autorizzazioni.

Autorizzazioni Dataproc

Le autorizzazioni Dataproc consentono agli utenti, tra cui account di servizio, eseguire azioni su Dataproc cluster, job, operazioni e modelli di flusso di lavoro. Ad esempio, dataproc.clusters.create consente a un utente di creare cluster Dataproc in un progetto. In genere, non concedi autorizzazioni, concedi invece roles, che includono una o più autorizzazioni.

Le tabelle seguenti elencano le autorizzazioni necessarie per chiamare Dataproc API (metodi). Le tabelle sono organizzate in base alle API associate ogni risorsa Dataproc (cluster, job, operazioni e modelli di flusso di lavoro).

Ambito delle autorizzazioni: l'ambito di Dataproc elencate nella tabella che segue sono le autorizzazioni di Google Cloud che contengono progetto (ambito: cloud-platform). Consulta Autorizzazioni dell'account di servizio.

Esempi:

  • dataproc.clusters.create consente la creazione di Cluster Dataproc nel progetto contenitore
  • dataproc.jobs.create consente l'invio di Dataproc in cluster Dataproc nel progetto contenitore
  • dataproc.clusters.list consente la visualizzazione di dettagli di cluster Dataproc nel progetto contenitore

Autorizzazioni cluster

Metodo Autorizzazioni obbligatorie
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

Note:

  1. Per ottenere lo stato è necessaria anche l'autorizzazione dataproc.operations.get aggiornamenti da Google Cloud CLI.
  2. Per ottenere il risultato è necessaria anche l'autorizzazione dataproc.clusters.get dell'operazione da Google Cloud CLI.
  3. L'autorizzazione dataproc.autoscalingPolicies.use è necessaria anche per abilitare un criterio di scalabilità automatica su un cluster.

Autorizzazioni per i job

Metodo Autorizzazioni obbligatorie
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

Note:

  1. Google Cloud CLI richiede anche dataproc.jobs.get autorizzazione per jobs submit, jobs wait, jobs update, jobs delete, e jobs kill.

  2. gcloud CLI richiede anche dataproc.clusters.get per inviare i job. Per un esempio di configurazione le autorizzazioni necessarie a un utente per eseguire gcloud dataproc jobs submit su utilizzando IAM granulare Dataproc (vedi Invio di job con IAM granulare).

Autorizzazioni per le operazioni

Metodo Autorizzazioni obbligatorie
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

Autorizzazioni del modello di flusso di lavoro

Metodo Autorizzazioni obbligatorie
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

Note:

  1. Le autorizzazioni dei modelli di flusso di lavoro sono indipendenti dalle autorizzazioni per cluster e job. Un utente senza le autorizzazioni create cluster o submit job può creare e creare un'istanza per un modello di flusso di lavoro.

  2. Google Cloud CLI richiede inoltre Autorizzazione dataproc.operations.get a eseguire il polling per il completamento del flusso di lavoro.

  3. Per annullare un'esecuzione è necessaria l'autorizzazione dataproc.operations.cancel nel tuo flusso di lavoro.

Autorizzazioni dei criteri di scalabilità automatica

Metodo Autorizzazioni obbligatorie
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

Note:

  1. È necessaria l'autorizzazione dataproc.autoscalingPolicies.use per abilita un criterio di scalabilità automatica su un cluster con un metodo clusters.patch richiesta.

Autorizzazioni gruppi di nodi

Metodo Autorizzazioni obbligatorie
projects.regions.nodeGroups.create dataproc.nodeGroups.create
projects.regions.nodeGroups.get dataproc.nodeGroups.get
projects.regions.nodeGroups.resize dataproc.nodeGroups.update

Ruoli Dataproc

Ruoli IAM di Dataproc sono un bundle di una o più autorizzazioni. Puoi concedere ruoli a utenti o gruppi per consentire loro di eseguire azioni sulle risorse Dataproc in un progetto. Ad esempio, il ruolo Visualizzatore Dataproc contiene le le autorizzazioni dataproc.*.get e dataproc.*.list, che Consentire a un utente di recuperare ed elencare i cluster, i job e le operazioni Dataproc in un progetto.

La tabella seguente elenca i ruoli IAM Dataproc le autorizzazioni associate a ogni ruolo:

ID ruolo Autorizzazioni
roles/dataproc.admin dataproc.*.getIamPolicy
dataproc.*.setIamPolicy
dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.viewer dataproc.*.get
dataproc.*.list
compute.machineTypes.get
compute.regions.get
compute.regions.list
compute.zones.get
resourcemanager.projects.get
resourcemanager.projects.list
ruoli/dataproc.worker (solo per account di servizio) dataproc.agents.*
dataproc.tasks.*
logging.logEntries.create
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create
storage.buckets.get
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete
storage.objects.getIamPolicy
storage.objects.setIamPolicy

Note:

  • "*" significa "cluster", "offerte di lavoro", o "operazioni", ad eccezione di solo le autorizzazioni associate a dataproc.operations. sono get, list e delete.
  • Le autorizzazioni compute elencate in precedenza sono necessarie o consigliate per crea e visualizza i cluster Dataproc utilizzando la console Google Cloud o gcloud CLI Google Cloud CLI.
  • Per consentire a un utente di caricare file, concedi il ruolo Storage Object Creator. Per consentire a un utente di visualizzare l'output del job, concedi il ruolo Storage Object Viewer.
  • Un utente deve avere l'autorizzazione monitoring.timeSeries.list per poter visualizza i grafici nella console Google Cloud→Dataproc→Dettagli del cluster Panoramica.
  • Un utente deve avere l'autorizzazione compute.instances.list per visualizzare lo stato dell'istanza e il menu SSH dell'istanza master nella Console Google Cloud→Dataproc→Dettagli cluster Istanze VM. Per informazioni sui ruoli di Compute Engine, consulta Compute Engine→Ruoli IAM disponibili).
  • Per creare un cluster con un account di servizio specificato dall'utente, l'account di servizio deve disporre di tutte le autorizzazioni concesse Dataproc Worker che includono l'accesso bucket gestione temporanea e gestione temporanea. A seconda delle funzionalità configurate, potrebbero essere necessari ruoli aggiuntivi. Consulta Creare un cluster con un account di servizio VM personalizzato per ulteriori informazioni.

Ruoli di progetto

Puoi anche impostare le autorizzazioni a livello di progetto utilizzando il ruolo IAM Ruoli di progetto. La tabella seguente elenca le autorizzazioni associate a Ruoli del progetto IAM:

Ruolo progetto Autorizzazioni
Visualizzatore progetto Tutte le autorizzazioni di progetto per le azioni di sola lettura che conservano lo stato (get, list)
Editor progetto Tutte le autorizzazioni di Visualizzatore progetto più tutte le autorizzazioni di progetto per le azioni che modificano lo stato (creazione, eliminazione, aggiornamento, utilizzo, annullamento, interruzione, avvio)
Proprietario progetto Tutte le autorizzazioni dell'editor di progetto più le autorizzazioni per gestire il controllo dell'accesso per il progetto (get/set IamPolicy) e per configurare la fatturazione del progetto

Riepilogo dei ruoli IAM e delle operazioni di Dataproc

Nella tabella seguente sono elencate le operazioni di Dataproc associate a: nei ruoli di progetto e Dataproc.

Operazione Editor progetto Visualizzatore progetto Amministratore Dataproc Dataproc Editor Dataproc Viewer
Ottieni/imposta autorizzazioni IAM Dataproc No No No No
Crea cluster No No
Elenca cluster
Recupero dei dettagli del cluster 1, 2 1, 2 1, 2
Aggiorna cluster No No
Elimina cluster No No
Avvia/Arresta cluster No No
Invia il job No 3 3 No
Elenca job
Ottieni dettagli job 4 4 4
Annulla job No No
Elimina job No No
Elenca operazioni
Ottieni dettagli operazione
Elimina operazione No No

Note:

  1. Il grafico del rendimento non è disponibile, a meno che l'utente non abbia anche un ruolo con l'autorizzazione monitoring.timeSeries.list.
  2. L'elenco delle VM nel cluster non includerà informazioni sullo stato oppure un link SSH per l'istanza master, a meno che l'utente non abbia anche un ruolo l'autorizzazione compute.instances.list.
  3. I job che caricano file richiedono che l'utente disponga di Storage Object Creator o l'accesso in scrittura al ruolo Dataproc bucket gestione temporanea.
  4. L'output del job non è disponibile a meno che l'utente non disponga anche dell'oggetto Storage Ruolo Visualizzatore o dispone dell'accesso in lettura al bucket gestione temporanea per del progetto.

Account di servizio

Quando chiami le API Dataproc per eseguire azioni in un progetto, come la creazione di istanze VM, Dataproc esegue le azioni utilizzando un account di servizio che dispone delle autorizzazioni necessarie eseguire le azioni. Per ulteriori informazioni, vedi Account di servizio Dataproc.

Gestione IAM

Puoi recuperare e impostare i criteri IAM utilizzando la console Google Cloud, l'API IAM o Google Cloud CLI.

Passaggi successivi