Identity and Access Management (IAM) ti consente di controllare l'accesso di utenti e gruppi alle risorse del progetto. Questo documento si concentra sulle autorizzazioni IAM pertinenti per Managed Service for Apache Spark e sui ruoli IAM che concedono queste autorizzazioni.
Autorizzazioni di Managed Service for Apache Spark
Le autorizzazioni Managed Service for Apache Spark consentono agli utenti, inclusi gli account di servizio, di eseguire azioni su cluster, job, operazioni e modelli di workflow Managed Service for Apache Spark. Ad esempio, l'autorizzazione dataproc.clusters.create
consente a un utente di creare cluster Managed Service for Apache Spark 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 le API (metodi) di Managed Service for Apache Spark. Le tabelle sono organizzate in base alle API associate a ogni risorsa Managed Service for Apache Spark (cluster, job, operazioni e modelli di workflow).
Ambito delle autorizzazioni:l'ambito delle autorizzazioni Managed Service for Apache Spark elencate nelle tabelle seguenti è il progetto contenitore Google Cloud(ambito cloud-platform). Consulta
Autorizzazioni account di servizio.
Esempi:
dataproc.clusters.createconsente la creazione di cluster Managed Service for Apache Spark nel progetto contenitoredataproc.jobs.createconsente l'invio di job Managed Service for Apache Spark ai cluster Managed Service for Apache Spark nel progetto contenitoredataproc.clusters.listconsente di elencare i dettagli dei cluster Managed Service for Apache Spark nel progetto contenitore
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:
- È necessaria anche l'autorizzazione
dataproc.operations.getper ricevere aggiornamenti di stato da Google Cloud CLI. - L'autorizzazione
dataproc.clusters.getè necessaria anche per ottenere il risultato dell'operazione da Google Cloud CLI. - È necessaria anche l'autorizzazione
dataproc.autoscalingPolicies.useper attivare un criterio di scalabilità automatica su un cluster.
Autorizzazioni richieste per i metodi dei 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:
Google Cloud CLI richiede anche l'autorizzazione
dataproc.jobs.getper i comandijobs submit,jobs wait,jobs update,jobs deleteejobs kill.gcloud CLI richiede anche l'autorizzazione
dataproc.clusters.getper inviare job. Per un esempio di impostazione delle autorizzazioni necessarie a un utente per eseguiregcloud dataproc jobs submitsu un cluster utilizzando IAM granulare di Managed Service for Apache Spark (vedi Invio di job con IAM granulare).
Autorizzazioni richieste per i metodi delle 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 workflow
| 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:
Le autorizzazioni del modello di workflow sono indipendenti dalle autorizzazioni del cluster e del job. Un utente senza autorizzazioni
create clusterosubmit jobpuò creare e instanziare un modello di flusso di lavoro.Google Cloud CLI richiede inoltre l'autorizzazione
dataproc.operations.getper eseguire il polling per il completamento del flusso di lavoro.È necessaria l'autorizzazione
dataproc.operations.cancelper annullare un flusso di lavoro in esecuzione.
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:
- È necessaria l'autorizzazione
dataproc.autoscalingPolicies.useper abilitare un criterio di scalabilità automatica su un cluster con una richiesta del metodoclusters.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 di Managed Service for Apache Spark
I ruoli IAM di Managed Service for Apache Spark
sono un insieme di una o più autorizzazioni.
Concedi ruoli a utenti o gruppi per consentire loro di eseguire azioni sulle risorse Managed Service for Apache Spark in un progetto. Ad esempio, il ruolo Visualizzatore Managed Service for Apache Spark contiene le autorizzazioni get e list, che consentono a un utente di ottenere ed elencare cluster, job e operazioni Managed Service for Apache Spark in un progetto.
La tabella seguente elenca i ruoli che contengono le autorizzazioni necessarie per creare e gestire i cluster Managed Service for Apache Spark.
| Concedi ruolo a | Ruoli |
|---|---|
| Utente | Concedi agli utenti i seguenti ruoli:
|
| Service account | Concedi al service account VM Managed Service for Apache Spark il ruolo Worker Dataproc. |
Tieni presente quanto segue:
Potresti dover concedere all'account di servizio VM di Managed Service for Apache Spark ruoli predefiniti o personalizzati aggiuntivi che contengono le autorizzazioni necessarie per altre operazioni, come la lettura e la scrittura di dati da e verso Cloud Storage, BigQuery, Cloud Logging e altre risorse Google Cloud .
In alcuni progetti, all'account di servizio VM Managed Service for Apache Spark potrebbe essere stato concesso automaticamente il ruolo Editor del progetto, che include le autorizzazioni del ruolo Worker Managed Service for Apache Spark più autorizzazioni aggiuntive non necessarie per le operazioni del data plane di Managed Service for Apache Spark. Per seguire il principio di privilegio minimo, che è una best practice di sicurezza, sostituisci il ruolo Editor con il ruolo Managed Service for Apache Spark Worker (vedi Visualizzare i ruoli account di servizio VM).
Devi concedere ruoli?
A seconda delle norme della tua organizzazione, un ruolo obbligatorio potrebbe essere già stato concesso.
Controllare i ruoli concessi agli utenti
Per verificare se a un utente è stato concesso un ruolo, segui le istruzioni riportate in Gestire l'accesso a progetti, cartelle e organizzazioni > Visualizzare l'accesso attuale.
Controllare i ruoli concessi ai service account
Per verificare se a un account di servizio è stato concesso un ruolo, consulta Visualizzare e gestire i ruoli delaccount di serviziot IAM.
Controllare i ruoli concessi a un account di servizio
Per verificare se a un utente è stato concesso un ruolo in un account di servizio, segui le istruzioni riportate in Gestire l'accesso ai service account > Visualizzare l'accesso attuale.
Cercare ruoli e autorizzazioni di Managed Service for Apache Spark
Puoi utilizzare la sezione seguente per cercare i ruoli e le autorizzazioni di Managed Service for Apache Spark.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Note:
- Le autorizzazioni
computesono necessarie o consigliate per creare e visualizzare i cluster Managed Service for Apache Spark quando utilizzi la console Google Cloud o 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 ruoloStorage Object Viewer. - Un utente deve disporre dell'autorizzazione
monitoring.timeSeries.listper visualizzare i grafici nella console Google Cloud →Managed Service for Apache Spark→Dettagli cluster scheda Panoramica. - Un utente deve disporre dell'autorizzazione
compute.instances.listper visualizzare lo stato dell'istanza e il menu SSH dell'istanza master nella consoleGoogle Cloud →Managed Service for Apache Spark→Dettagli cluster scheda 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, il account di servizio specificato deve disporre di tutte le autorizzazioni concesse dal ruolo
Managed Service for Apache Spark Worker, che includono l'accesso ai bucket temporanei e di staging di Managed Service for Apache Spark. Potrebbero essere necessari ruoli aggiuntivi a seconda delle funzionalità configurate. Per saperne di più, consulta Crea un cluster con un service account VM personalizzato.
Ruoli di progetto
Puoi anche impostare le autorizzazioni a livello di progetto utilizzando i ruoli Progetto IAM. La tabella seguente elenca le autorizzazioni associate ai ruoli di progetto IAM:
| Ruolo progetto | Autorizzazioni |
|---|---|
| Visualizzatore progetto | Tutte le autorizzazioni del 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 (crea, elimina, aggiorna, utilizza, annulla, arresta, avvia) |
| Proprietario progetto | Tutte le autorizzazioni di Editor 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 Managed Service for Apache Spark
La seguente tabella elenca le operazioni di Managed Service for Apache Spark associate ai ruoli di progetto e Managed Service for Apache Spark.
| Operazione | Editor progetto | Visualizzatore progetto | Amministratore di Managed Service for Apache Spark | Editor Managed Service for Apache Spark | Visualizzatore di Managed Service for Apache Spark |
|---|---|---|---|---|---|
| Ottieni/imposta le autorizzazioni IAM di Managed Service for Apache Spark | No | No | Sì | No | No |
| Crea cluster | Sì | No | Sì | Sì | No |
| Elenca cluster | Sì | Sì | Sì | Sì | Sì |
| Recupero dei dettagli del cluster | Sì | Sì | Sì 1, 2 | Sì 1, 2 | Sì 1, 2 |
| Aggiorna cluster | Sì | No | Sì | Sì | No |
| Elimina cluster | Sì | No | Sì | Sì | No |
| Avvia/Interrompi cluster | Sì | No | Sì | Sì | No |
| Invia il job | Sì | No | Sì 3 | Sì 3 | No |
| Elenca job | Sì | Sì | Sì | Sì | Sì |
| Recupera i dettagli del job | Sì | Sì | Sì 4 | Sì 4 | Sì 4 |
| Annulla job | Sì | No | Sì | Sì | No |
| Elimina job | Sì | No | Sì | Sì | No |
| Elenca operazioni | Sì | Sì | Sì | Sì | Sì |
| Recuperare i dettagli dell'operazione | Sì | Sì | Sì | Sì | Sì |
| Elimina operazione | Sì | No | Sì | Sì | No |
Note:
- Il grafico del rendimento non è disponibile a meno che l'utente non disponga anche di un ruolo con l'autorizzazione
monitoring.timeSeries.list. - 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 disponga anche di un ruolo con
l'autorizzazione
compute.instances.list. - I job che caricano file richiedono che l'utente disponga del ruolo
Storage Object Creatoro dell'accesso in scrittura al bucket di staging di Managed Service for Apache Spark. - L'output del job non è disponibile a meno che l'utente non disponga anche del ruolo Storage Object Visualizzatore o non gli sia stato concesso l'accesso in lettura al bucket di staging per il progetto.
Ambiti di accesso alle VM Managed Service for Apache Spark
Gli ambiti di accesso VM e i ruoli IAM funzionano insieme per limitare l'accesso VM alle API Google Cloud. Ad esempio, se alle VM del cluster viene concesso solo l'ambito https://www.googleapis.com/auth/storage-full, le applicazioni in esecuzione sulle VM del cluster possono chiamare le API Cloud Storage, ma non sono in grado di effettuare richieste a BigQuery, anche se vengono eseguite come account di servizio VM a cui è stato concesso un ruolo BigQuery con autorizzazioni ampie.
Una best practice consiste nel concedere l'ambito cloud-platform ampio
(https://www.googleapis.com/auth/cloud-platform)
alle VM, quindi limitare l'accesso alle VM concedendo ruoli IAM
specifici al service account VM (vedi Best practice per gli ambiti).
Ambiti predefiniti delle VM di Managed Service for Apache Spark. Se gli ambiti non vengono specificati durante la creazione di un cluster (vedi gcloud dataproc cluster create --scopes), le VM Managed Service for Apache Spark hanno il seguente insieme predefinito di ambiti:
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Se specifichi gli ambiti durante la creazione di un cluster, le VM del cluster avranno gli ambiti specificati e il seguente insieme minimo di ambiti richiesti (anche se non li specifichi):
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Gestione dei criteri di autorizzazione IAM
Concedi ruoli IAM alle entità utilizzando le policy di autorizzazione. Puoi ottenere e impostare le policy di autorizzazione utilizzando la console Google Cloud , l'API IAM o Google Cloud CLI.
- Per la console Google Cloud , consulta Controllo dell'accesso tramite la console Google Cloud .
- Per l'API, vedi Controllo dell'accesso tramite l'API.
- Per Google Cloud CLI, consulta Controllo dell'accesso tramite Google Cloud CLI.
Passaggi successivi
- Scopri di più su ruoli e principal di Managed Service for Apache Spark
- Scopri di più su IAM granulare per Managed Service for Apache Spark
- Scopri di più su IAM.
- Scopri di più sui service account in Managed Service for Apache Spark