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 sulle autorizzazioni IAM pertinenti per Dataproc e sui ruoli IAM che le concedono.

Autorizzazioni Dataproc

Le autorizzazioni Dataproc consentono agli utenti, inclusi gli account di servizio, di eseguire azioni su cluster, job, operazioni e modelli di flusso di lavoro di Dataproc. Ad esempio, l'autorizzazione dataproc.clusters.create consente a un utente di creare cluster Dataproc in un progetto. In genere, non concedi le autorizzazioni, ma concedi i ruoli, che includono una o più autorizzazioni.

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

Ambito delle autorizzazioni: l'ambito delle autorizzazioni Dataproc elencato nelle tabelle seguenti è il progetto Google Cloud contenente (ambito cloud-platform). Vedi 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 job Dataproc ai cluster Dataproc nel progetto
  • dataproc.clusters.list permette di elencare i dettagli dei cluster Dataproc nel progetto

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 ricevere aggiornamenti dello stato da Google Cloud CLI, è necessaria anche l'autorizzazione dataproc.operations.get.
  2. È necessaria anche l'autorizzazione dataproc.clusters.get per ottenere il risultato dell'operazione da Google Cloud CLI.
  3. È necessaria anche l'autorizzazione dataproc.autoscalingPolicies.use 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 l'autorizzazione dataproc.jobs.get per i comandi jobs submit, jobs wait, jobs update, jobs delete e jobs kill.

  2. gcloud CLI richiede anche l'autorizzazione dataproc.clusters.get per inviare i job. Per un esempio di impostazione delle autorizzazioni necessarie a un utente per eseguire gcloud dataproc jobs submit su un cluster 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 fondare un modello di flusso di lavoro.

  2. Google Cloud CLI richiede inoltre l'autorizzazione dataproc.operations.get per eseguire il polling per il completamento del flusso di lavoro.

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

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. Per abilitare un criterio di scalabilità automatica su un cluster con una richiesta di metodo clusters.patch, è necessaria l'autorizzazione dataproc.autoscalingPolicies.use.

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

I 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 autorizzazioni dataproc.*.get e dataproc.*.list, che consentono a un utente di ottenere ed elencare i cluster, i job e le operazioni Dataproc in un progetto.

La tabella seguente elenca i ruoli IAM Dataproc e le autorizzazioni associate a ciascun 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

  • "*" indica "cluster", "jobs" o "operazioni", ma le uniche autorizzazioni associate a dataproc.operations. sono get, list e delete.
  • Le autorizzazioni compute elencate in precedenza sono necessarie o consigliate per creare e visualizzare i cluster Dataproc quando utilizzi la console Google Cloud o Google Cloud CLI con gcloud 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 disporre dell'autorizzazione monitoring.timeSeries.list per visualizzare i grafici nella scheda Panoramica della console Google Cloud→Dataproc→Dettagli cluster.
  • Un utente deve disporre dell'autorizzazione compute.instances.list per visualizzare lo stato dell'istanza e il menu SSH dell'istanza master nella scheda Istanze VM della console Google Cloud→Dataproc→Dettagli cluster. 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 specificato deve disporre di tutte le autorizzazioni concesse dal ruolo Dataproc Worker, che includono l'accesso ai bucket temporanei e di gestione temporanea di Dataproc. A seconda delle funzionalità configurate, potrebbero essere necessari ruoli aggiuntivi. Per ulteriori informazioni, consulta Creare un cluster con un account di servizio per VM personalizzata.

Ruoli di progetto

Puoi anche impostare le autorizzazioni a livello di progetto utilizzando i ruoli IAM Progetto. La tabella seguente elenca le autorizzazioni associate ai 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 ai ruoli di progetto e Dataproc.

Operazione Editor progetto Visualizzatore progetto Amministratore Dataproc Editor Dataproc Visualizzatore Dataproc
Ottieni/imposta autorizzazioni IAM Dataproc No No No No
Crea cluster No No
Elenco dei cluster Yes Yes Yes
Recupero dei dettagli del cluster 1, 2 1, 2 1, 2
Aggiornamento cluster No No
Elimina cluster No No
Avvia/Arresta cluster No No
Invia il job No 3 3 No
Elenco job Yes Yes Yes
Ottieni dettagli job 4 4 4
Annulla job No No
Elimina job No No
Elenca operazioni Yes Yes Yes
Ottieni dettagli dell'operazione Yes Yes Yes
Eliminazione 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 o un link SSH per l'istanza master, a meno che l'utente non abbia anche un ruolo con l'autorizzazione compute.instances.list.
  3. I job che caricano file richiedono che l'utente abbia il ruolo Storage Object Creator o l'accesso in scrittura al bucket di gestione temporanea di Dataproc.
  4. L'output del job non è disponibile a meno che l'utente non disponga anche del ruolo Visualizzatore oggetti Storage o gli sia stato concesso l'accesso in lettura al bucket gestione temporanea per il progetto.

Account di servizio

Quando chiami le API Dataproc per eseguire azioni in un progetto, ad esempio la creazione di istanze VM, Dataproc esegue le azioni per tuo conto utilizzando un account di servizio che dispone delle autorizzazioni necessarie per eseguire le azioni. Per ulteriori informazioni, consulta 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