Ruoli e autorizzazioni IAM di Dataproc

Panoramica

Identity and Access Management (IAM) ti consente di controllare l'accesso di utenti e gruppi alle risorse del 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, inclusi gli account di servizio, di eseguire azioni su cluster, job, operazioni e modelli di flusso di lavoro Dataproc. Ad esempio, dataproc.clusters.create consente a un utente di creare cluster Dataproc in un progetto. In genere, non concedi autorizzazioni, ma ruoli 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 contenente
  • 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
di Gemini Advanced.

Autorizzazioni richieste per i metodi dei 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. L'autorizzazione dataproc.operations.get è necessaria anche per ricevere aggiornamenti sullo stato da Google Cloud CLI.
  2. L'autorizzazione dataproc.clusters.get è necessaria anche per ottenere il risultato dell'operazione da Google Cloud CLI.
  3. Per attivare un criterio di scalabilità automatica su un cluster è necessaria anche l'autorizzazione dataproc.autoscalingPolicies.use.

Autorizzazioni richieste per i metodi di 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 richieste dai metodi di 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 richieste per i metodi dei modelli 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 di cluster e job. Un utente senza autorizzazioni create cluster o submit job può creare e istanziare 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 richieste per i metodi 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. L'autorizzazione dataproc.autoscalingPolicies.use è necessaria per attivare un criterio di scalabilità automatica su un cluster con una richiesta di metodo clusters.patch.

Autorizzazioni richieste per i metodi dei 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 assegnare ruoli a utenti o gruppi per consentire loro di eseguire azioni nella di risorse Dataproc in un progetto. Ad esempio: Il ruolo Visualizzatore Dataproc contiene Autorizzazioni get e list, che consentono a un utente di recuperare ed elencare Cluster, job e operazioni Dataproc in un progetto.

La tabella riportata di seguito elenca i ruoli IAM di Dataproc e le autorizzazioni associate a ciascun ruolo.

Autorizzazioni

(roles/dataproc.admin)

Controllo completo delle risorse Dataproc.

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)

Fornisce le autorizzazioni necessarie per visualizzare le risorse richieste per gestire Dataproc, inclusi tipi di macchine, reti, progetti e zone.

Risorse di livello più basso a cui puoi concedere questo ruolo:

  • 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)

Consente di gestire le risorse Dataproc. Destinato agli account di servizio che eseguono istanze Dataproc Hub.

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)

Fornisce l'accesso di sola lettura alle risorse di Dataproc.

Risorse di livello più basso in cui puoi concedere questo ruolo:

  • 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)

Fornisce l'accesso worker alle risorse Dataproc. Destinato agli account di servizio.

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.*

Note:

  • Le autorizzazioni compute 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 specificato deve disporre di tutte le autorizzazioni concesse dal ruolo Dataproc Worker, che includono l'accesso ai bucket temporanei e di staging di Dataproc. Potrebbero essere necessari ruoli aggiuntivi a seconda delle funzionalità configurate. Consulta Creare un cluster con un account di servizio VM personalizzato per ulteriori informazioni.

Ruoli del progetto

Puoi anche impostare le autorizzazioni a livello di progetto utilizzando i ruoli IAM Project. 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, oltre a tutte le autorizzazioni del progetto per le azioni che modificano lo stato (creazione, eliminazione, aggiornamento, utilizzo, annullamento, interruzione, avvio)
Proprietario progetto Tutte le autorizzazioni di Editor del progetto, oltre alle 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 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/Interrompi cluster No No
Invia il job No 3 3 No
Elenca job
Visualizza i dettagli del job 4 4 4
Annulla job No No
Elimina job No No
Elenca operazioni
Visualizzare i dettagli dell'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 o un link SSH per l'istanza principale, 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 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 per tuo conto utilizzando un account di servizio con le autorizzazioni richieste per 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 la Google Cloud CLI.

Passaggi successivi