Personas e ruoli IAM serverless

Questa guida mostra a sviluppatori, amministratori e visualizzatori Spark come ottenere le autorizzazioni necessarie per iniziare a utilizzare i workload batch e le sessioni interattive di Managed Service for Apache Spark serverless.

Utente tipo Chi sono nell'organizzazione Cosa serve a IAM
Sviluppatore Spark Il builder e il consumatore della piattaforma. Scrive ed esegue job PySpark e Spark, sviluppa in notebook e sessioni, legge e scrive set di dati e monitora e risolve i problemi relativi ai workload. Include data engineer, data scientist e sviluppatori. Autorizzazioni per inviare, eseguire, monitorare e risolvere i problemi relativi ai workload, nonché per leggere e scrivere i dati a cui accedono i job.
Amministratore Spark Il proprietario e il gestore della piattaforma. Configura il progetto, decide come autenticare i workload, esegue l'onboarding degli sviluppatori Spark, gestisce gli account di servizio condivisi e applica i sistemi di protezione e il privilegio minimo dell'organizzazione. Chiamato anche amministratore della piattaforma. Autorizzazioni per concedere l'accesso ad altri, configurare l'identità di esecuzione (credenziali dell'utente finale o un account di servizio condiviso) e gestire le risorse serverless a livello di progetto.
Visualizzatore Spark L'osservatore e revisore della piattaforma. Monitora il completamento dei job, la cronologia di esecuzione, le metriche e i dashboard senza inviare o modificare i workload. Include analisti, project manager, FinOps e revisori della conformità. Autorizzazioni di sola lettura per visualizzare batch, sessioni, operazioni e dashboard di stato.

Scegliere una versione del runtime

La versione del runtime consigliata dipende dalla versione di Apache Spark su cui vengono eseguiti i tuoi workload.

  • Runtime 3.x (consigliato): utilizza Spark 4 e offre onboarding e utilizzo più semplici. Per impostazione predefinita, i carichi di lavoro vengono eseguiti come utente che invia con le credenziali utente finale (EUC) dell'utente, il che richiede la concessione di un singolo ruolo IAM all'utente. Gli amministratori possono configurare service account personalizzati per i workload per un utilizzo più avanzato.

  • Runtime 2.x: utilizza Spark 3.5 e account di invio e workload separati. Per impostazione predefinita, il mittente è l'identità utente e l'account di servizio predefinito di Compute Engine è l'identità del workload. Gli amministratori possono configurare account di servizio del workload personalizzati per controllo dell'accesso più granulare.

Per ulteriori informazioni, consulta Versioni del runtime di Managed Service for Apache Spark.

Confronto delle funzioni

Gli upgrade del runtime 3.x aggiornano i componenti e le funzionalità di 2.x e forniscono una configurazione semplificata:

Funzionalità e workflow Runtime 3.x (consigliato) Runtime 2.x
Versione di Apache Spark Spark 4 Spark 3.5 (e versioni precedenti 3.x)
Sviluppo interattivo Sessioni Spark Connect (client Spark interattivo standard del settore) Sessioni Jupyter
Workload batch R sparklyr Batch SparkR
Identità di esecuzione Credenziali utente finale (EUC)1 Service account 1
Archiviazione per la gestione temporanea dei job Non richiesto (gestito internamente) Bucket temporanei Cloud Storage
Formato di output del log Formato JSON strutturato (jsonPayload) Formato di testo non crittografato (textPayload)

1 Il runtime 3.x utilizza per impostazione predefinita le credenziali dell'utente finale (EUC) del mittente, a meno che non venga specificato un account di servizio personalizzato per il workload o la sessione. Il runtime 2.x utilizza per impostazione predefinita l'account di servizio predefinito di Compute Engine, a meno che non venga specificato un service account personalizzato per il workload o la sessione.

Ruoli comuni per dati e servizi

Managed Service for Apache Spark in genere per leggere e scrivere in altri serviziGoogle Cloud . Questa sezione elenca i ruoli associati ai servizi a cui si accede comunemente.

  • Runtime 3.x (identità EUC predefinita): concedi ruoli allo sviluppatore Spark (utente o gruppo).
  • Runtime 2.x: assegna i ruoli al account di servizio del workload (il account di servizio Compute Engine predefinito o un account di servizio del workload personalizzato).
Servizio o API Ruolo Finalità
Cloud Storage roles/storage.objectViewer
roles/storage.objectAdmin
Leggi i dati di input e gli script temporanei.
Scrivi i dati di output.
Catalogo runtime BigLake e Lakehouse roles/biglake.viewer
roles/biglake.editor
roles/biglake.admin
Esegui query e gestisci formati di tabelle aperti, come Apache Iceberg e Delta Lake, utilizzando il catalogo REST BigLake (catalogo REST Lakehouse (LRC)).
Bigtable roles/bigtable.reader
roles/bigtable.user
Leggere le tabelle Bigtable.
Leggere e scrivere dati Bigtable.
Dataproc Metastore (DPMS) roles/metastore.metadataViewer
roles/metastore.editor
Leggi i metadati Hive.
Gestisci schemi e tabelle di metadati.

DPMS è un metastore legacy. Consigliamo ai clienti di utilizzare il catalogo REST BigLake Lakehouse (LRC).

BigQuery offre molti ruoli IAM granulari e ACL a livello di risorsa. Per saperne di più, consulta Ruoli e autorizzazioni IAM di BigQuery.

Concedi ruoli

La sezione seguente contiene istruzioni su come concedere ruoli per ciascuna delle persona associata alla configurazione, all'invio e al monitoraggio dei workload batch e delle sessioni interattive serverless 3.x e 2.x di Managed Service for Apache Spark.

Runtime 3.x

Per impostazione predefinita, i carichi di lavoro 3.x vengono eseguiti con le credenziali utente finale (EUC) dell'utente che invia la richiesta. Gli amministratori concedono un singolo ruolo all'utente e non sono necessari service account condivisi o bucket di staging. Gli amministratori possono configurare service account personalizzati quando sono richieste identità di servizio dedicate.

Sviluppatore

Sviluppatore Spark (runtime 3.x)

In qualità di sviluppatore Spark, puoi utilizzare il runtime 3.x con le tue credenziali utente per sviluppare, inviare, monitorare e risolvere i problemi dei carichi di lavoro Spark e per accedere direttamente ai dati.

  1. Richiedi il ruolo di editor serverless. Chiedi all'amministratore di concederti roles/dataproc.serverlessEditor sul progetto.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.serverlessEditor"
    

    Questo ruolo ti consente di inviare, monitorare, risolvere i problemi e annullare i carichi di lavoro batch di Spark e le sessioni Spark Connect interattive.

  2. Accedere a dati e servizi. Poiché il workload viene eseguito come te, la tua identità deve accedere ai servizi e ai set di dati che la tua applicazione Spark tocca (vedi Ruoli comuni per dati e servizi).

    Ad esempio, concediti l'accesso in lettura a un bucket Cloud Storage di input:

    gcloud storage buckets add-iam-policy-binding gs://INPUT_BUCKET \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/storage.objectViewer"
    
  3. Invia un workload di test. Invia un carico di lavoro batch di prova per confermare la configurazione.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --version=3.0 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    

    Note:

Service account workload personalizzati (runtime 3.x)

Utilizza un account di servizio personalizzato con 3.x runtime quando la tua organizzazione richiede che i carichi di lavoro vengano eseguiti con un'identità dedicata e controllabile anziché con le credenziali dell'utente finale (vedi Best practice per i account di servizio IAM).

  1. Ottieni l'autorizzazione per eseguire i workload come account di servizio personalizzato. Chiedi all'amministratore di concederti roles/iam.serviceAccountUser per il account di servizio personalizzato.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Specifica il servizio personalizzato.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --service-account=WORKLOAD_SA_EMAIL \
      --version=3.0 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    
  3. Concedi l'accesso al set di dati. Quando utilizzi un account di servizio personalizzato, assegna i ruoli a livello di dati direttamente a WORKLOAD_SA_EMAIL (vedi Ruoli comuni per dati e servizi).

Amministratore

Amministratore Spark (runtime 3.x)

In qualità di amministratore di Spark, configuri il progetto, decidi come autenticare i workload e concedi l'accesso agli sviluppatori Spark.

I workload utilizzano automaticamente la subnet VPC denominata default. Se il tuo progetto non dispone di una rete default o utilizza VPC personalizzati, consulta Configurazione di rete serverless di Managed Service for Apache Spark per configurare e specificare una subnet per workload e sessioni.

Abilita il runtime 3.x con le credenziali dell'utente finale (consigliato)

Questa è la configurazione con privilegio minimo e manutenzione minima. Ogni sviluppatore Spark esegue i carichi di lavoro con la propria identità utente; gli amministratori non devono configurare e gestire i service account dei carichi di lavoro.

  1. Concedi roles/dataproc.serverlessEditor agli sviluppatori di Spark.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.serverlessEditor"
    
  2. Concedi roles/dataproc.serverlessViewer ai visualizzatori di sola lettura.

    Concedi questo ruolo a revisori, utenti della dashboard e membri del team che devono monitorare lo stato e i log dei job senza inviare o modificare i carichi di lavoro.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:VIEWER_EMAIL" \
      --role="roles/dataproc.serverlessViewer"
    
  3. Garantisci l'accesso degli sviluppatori ai dati.

    Per impostazione predefinita, i carichi di lavoro del runtime 3.x vengono eseguiti come utente che invia. Concedi ruoli di accesso ai dati, ad esempio roles/storage.objectViewer o roles/storage.objectAdmin, allo sviluppatore Spark o al gruppo Google che include gli sviluppatori Spark (vedi Ruoli comuni per dati e servizi).

Abilitare i service account personalizzati del carico di lavoro (runtime 3.x)

Utilizza un account di servizio personalizzato con il runtime 3.x quando vuoi che i workload vengano eseguiti con un'identità dedicata e controllabile anziché con le credenziali dell'utente finale (vedi Best practice per i account di servizio IAM).

  1. Concedi roles/iam.serviceAccountUser al account di servizio personalizzato del workload.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Concedi roles/dataproc.serverlessNode al account di servizio personalizzato del carico di lavoro.

    Questo ruolo consente al account di servizio di gestire i pool di nodi di calcolo e comunicare con le applicazioni Spark durante l'esecuzione del workload:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:WORKLOAD_SA_EMAIL" \
      --role="roles/dataproc.serverlessNode"
    
  3. Concedere l'accesso ai dati delle applicazioni.

    Concedi i ruoli a livello di dati direttamente al account di servizio del carico di lavoro in modo che possa leggere e scrivere i set di dati dell'applicazione (vedi Ruoli comuni per dati e servizi). Se i tuoi carichi di lavoro utilizzano script in staging o file JAR personalizzati, concedi anche l'accesso in lettura ai bucket Cloud Storage corrispondenti.

Abilitare i service account personalizzati del mittente (runtime 3.x)

Utilizza un account di servizio personalizzato per il richiedente quando i sistemi automatizzati (ad esempio Managed Service for Apache Airflow, Cloud Scheduler o pipeline CI o CD) inviano carichi di lavoro senza un utente umano interattivo.

  • In questo scenario, il account di servizio del mittente esegue il comando gcloud che avvia il job. Ecco un esempio con l'utilizzo di gcloud:

    gcloud dataproc batches submit spark \
      --service-account=WORKLOAD_SA_EMAIL \
      ...
    
  • Il account di servizio del carico di lavoro esegue il codice Spark sui nodi di calcolo e accede ai set di dati dell'applicazione.

    1. Concedi roles/dataproc.serverlessEditor al account di servizio personalizzato del mittente.
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/dataproc.serverlessEditor"
    

    Quando utilizzi il runtime 3.x con un account di servizio personalizzato per l'invio, è necessario un service account personalizzato per il workload per eseguire il workload. Il runtime non può eseguire il failover alle credenziali dell'utente finale (EUC) perché non esiste un utente finale interattivo. Il job deve essere eseguito come un account di servizio workload specificato (--service-account).

  1. Concedi roles/iam.serviceAccountUser al account di servizio personalizzato del workload.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Configura il account di servizio personalizzato del workload. Concedi roles/dataproc.serverlessNode e ruoli dei dati delle applicazioni a WORKLOAD_SA_EMAIL.

Riferimento ai ruoli di amministratore Spark (runtime 3.x)

La seguente tabella riepiloga i ruoli da concedere con 3.x in fase di runtime.

Richiedente Workload Identity Concessione al richiedente Concedi all'account di servizio del workload
Utente finale (opzione predefinita) Utente finale (EUC) roles/dataproc.serverlessEditor (+ ruoli dei dati sull'utente) (nessuno: non è stato utilizzato alcun SA)
Utente finale SA personalizzato roles/dataproc.serverlessEditor + roles/iam.serviceAccountUser su SA personalizzato roles/dataproc.serverlessNode + ruoli dei dati
SA personalizzata (automazione) SA personalizzato roles/dataproc.serverlessEditor + roles/iam.serviceAccountUser su SA personalizzato roles/dataproc.serverlessNode + ruoli dei dati

Visualizzatore

Visualizzatore Spark (runtime 3.x)

In qualità di visualizzatore Spark, puoi visualizzare i workload batch, le sessioni interattive, le metriche di esecuzione, i log e le dashboard di stato senza inviare o modificare i workload.

Chiedi all'amministratore di concederti roles/dataproc.serverlessViewer.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:VIEWER_EMAIL" \
  --role="roles/dataproc.serverlessViewer"

Questo ruolo concede l'accesso in sola lettura per visualizzare i workload batch serverless, le sessioni interattive e lo stato dell'operazione.

Autorizzazioni dettagliate

Autorizzazioni dettagliate (runtime 3.x)

Questa sezione elenca le autorizzazioni IAM incluse nei ruoli IAM associati al runtime 3.x.

Ruolo Editor serverless (roles/dataproc.serverlessEditor)

Questo ruolo con le relative autorizzazioni fornisce accesso in lettura e scrittura ai carichi di lavoro batch serverless e alle sessioni interattive di runtime 3.x.

Autorizzazione Descrizione
dataproc.batches.create Crea e invia nuovi workload batch.
dataproc.batches.get Visualizza lo stato e i dettagli del workload batch.
dataproc.batches.list Elenca tutti i carichi di lavoro batch in un progetto o in una regione.
dataproc.batches.delete Elimina i batch completati o terminati.
dataproc.batches.cancel Annulla un carico di lavoro batch in esecuzione.
dataproc.sessions.create Crea sessioni interattive di Spark Connect.
dataproc.sessions.get Visualizza lo stato e i dettagli della sessione.
dataproc.sessions.list Elenca tutte le sessioni in un progetto o in una regione.
dataproc.sessions.delete Elimina le sessioni terminate.
dataproc.sessions.terminate Termina una sessione interattiva in esecuzione.
dataproc.operations.get Estrai lo stato dell'operazione asincrona (richiesto dalla CLI gcloud).

Ruolo del nodo serverless (roles/dataproc.serverlessNode)

Fornisce le autorizzazioni di gestione pool di nodi e di comunicazione interna di Spark per i service account dei workload personalizzati del runtime 3.x.

Questo ruolo con le relative autorizzazioni è necessario quando si utilizza un account di servizio del carico di lavoro personalizzato con runtime 3.x. I workload in esecuzione con le credenziali utente finale (EUC) 3.x predefinite non utilizzano un service account del workload.

Autorizzazione Descrizione
dataproc.batches.sparkApplicationWrite Comunicazione dell'applicazione Spark per i carichi di lavoro batch.
dataproc.sessions.sparkApplicationWrite Comunicazione dell'applicazione Spark per le sessioni interattive.
dataprocrm.nodePools.create Crea pool di nodi di computing.
dataprocrm.nodePools.delete Elimina i node pool di computing.
dataprocrm.nodePools.resize Scalare i node pool in modo dinamico.
dataprocrm.nodePools.get Leggi lo stato del pool di nodi.
dataprocrm.nodePools.list Elenca i pool di nodi.
dataprocrm.nodePools.update Aggiorna la configurazione pool di nodi.
dataprocrm.nodePools.deleteNodes Rimuovi nodi specifici da un pool.
dataprocrm.nodes.list Elenca i nodi in un pool.
dataprocrm.nodes.delete Elimina i nodi al completamento dell'attività.
dataprocrm.nodes.get Leggi lo stato del nodo.
dataprocrm.nodes.heartbeat Segnala l'integrità e i battiti del nodo.
dataprocrm.nodes.mintOAuthToken Genera token OAuth per le operazioni sui nodi.
dataprocrm.operations.get Controlla lo stato dell'operazione dell'infrastruttura.

Ruolo Visualizzatore Serverless (roles/dataproc.serverlessViewer)

Questo ruolo con le relative autorizzazioni è necessario quando si utilizza 3.x runtime con un account di servizio personalizzato per l'invio. Forniscono l'accesso di sola lettura ai runtime 3.x dei workload batch serverless, alle sessioni interattive e allo stato dell'operazione.

Autorizzazione Descrizione
dataproc.batches.get Leggi lo stato e i dettagli del carico di lavoro batch.
dataproc.batches.list Elenca i workload batch.
dataproc.sessions.get Leggi lo stato e i dettagli della sessione.
dataproc.sessions.list Elenca le sessioni.
dataproc.operations.get Leggi lo stato dell'operazione.
dataproc.operations.list Elenca operazioni.

Ruolo di delega del service account (roles/iam.serviceAccountUser)

Consente a un utente o a un sistema automatizzato di collegare ed eseguire workload come account di servizio personalizzato. Il workload viene eseguito con le autorizzazioni e l'accesso alle risorse concessi a quell'account di servizio anziché alle credenziali dell'utente finale (EUC) dell'utente che invia la richiesta.

Autorizzazione Descrizione
iam.serviceAccounts.actAs Consente all'autore dell'invio di eseguire i carichi di lavoro come l'account di servizio specificato.

Runtime 2.x

Per impostazione predefinita, i carichi di lavoro di runtime 2.x vengono eseguiti come service account predefinito di Compute Engine. Il mittente (l'utente o il sistema automatizzato) funge da account quando esegue carichi di lavoro o sessioni.

Sviluppatore

Sviluppatore Spark (runtime 2.x)

In qualità di sviluppatore Spark che utilizza il runtime 2.x, sviluppi, invii, monitori e risolvi i problemi relativi ai carichi di lavoro Spark e accedi ai dati. Poiché il carico di lavoro viene eseguito come account di servizio anziché come identità utente, un amministratore ti concede il ruolo Editor IAM e il ruolo Utente service account per eseguire i carichi di lavoro come account di servizio del carico di lavoro.

  1. Richiedi il ruolo di editor. Chiedi all'amministratore di concederti roles/dataproc.editor sul progetto:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.editor"
    
  2. Richiedi l'autorizzazione di delega. Chiedi all'amministratore di concederti roles/iam.serviceAccountUser per ilaccount di serviziot del carico di lavoro.

    Il account di servizio del workload predefinito è l'service account predefinito di Compute Engine, PROJECT_NUMBER-compute@developer.gserviceaccount.com:

    gcloud iam service-accounts add-iam-policy-binding \
      PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  3. Ottieni l'accesso al bucket di staging. L'utente che invia 2.x ha bisogno dell'autorizzazione per caricare script e file JAR, mentre il account di servizio del workload ha bisogno dell'autorizzazione per gestire i file temporanei e i log. Queste autorizzazioni sono contenute nel ruolo roles/storage.objectAdmin.

    # Grant submitter access to upload staged files
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/storage.objectAdmin"
    
    # Grant workload service account access for staging, temporary files, and logs
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --role="roles/storage.objectAdmin"
    
  4. Invia un carico di lavoro batch di test. Invia un carico di lavoro batch di prova per confermare la configurazione.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --version=2.2 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    

    Note:

Service account personalizzati per workload personalizzati (runtime 2.x)

Utilizza un account di servizio personalizzato quando la tua organizzazione richiede che i workload vengano eseguiti con un'identità dedicata e controllabile anziché con il service account predefinito di Compute Engine condiviso (consulta le best practice per i account di servizio IAM).

  1. Ottieni l'autorizzazione per eseguire i workload come account di servizio personalizzato. Chiedi all'amministratore di concederti roles/iam.serviceAccountUser sul account di servizio personalizzato:

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Specifica il account di servizio personalizzato con il flag --service-account quando invii i workload.

    gcloud dataproc batches submit spark \
      --region=REGION \
      --service-account=WORKLOAD_SA_EMAIL \
      --version=2.2 \
      --class=org.apache.spark.examples.SparkPi \
      --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
      -- 1000
    
  3. Accesso al set di dati:se il tuo carico di lavoro non può accedere ai set di dati, concedi al account di servizio personalizzato del carico di lavoro (non al tuo account utente) i ruoli di accesso ai dati richiesti (vedi Ruoli comuni per dati e servizi).

Amministratore

Amministratore Spark (runtime 2.x)

In qualità di amministratore di Spark, configuri il progetto, i service account e concedi l'accesso agli sviluppatori Spark.

I workload utilizzano automaticamente la subnet VPC denominata default. Se il tuo progetto non dispone di una rete default o utilizza VPC personalizzati, consulta Configurazione di rete serverless di Managed Service for Apache Spark per configurare e specificare una subnet per workload e sessioni.

Abilita il runtime 2.x predefinito

Con il runtime predefinito 2.x, i carichi di lavoro vengono eseguiti come service account predefinito di Compute Engine.

  1. Concedi roles/dataproc.editor allo sviluppatore.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/dataproc.editor"
    
  2. Concedi roles/iam.serviceAccountUser al account di servizio predefinito.

    gcloud iam service-accounts add-iam-policy-binding \
      PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  3. Concedi roles/dataproc.worker al account di servizio del workload.

    Questo ruolo consente al account di servizio di registrare l'agente VM, noleggiare ed eseguire attività di calcolo ed emettere log e metriche in Cloud Logging e Cloud Monitoring:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --role="roles/dataproc.worker"
    
  4. Concedi roles/storage.objectAdmin per l'archiviazione del bucket gestione temporanea.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --role="roles/storage.objectAdmin"
    
  5. Concedi l'accesso al account di servizio del workload al set di dati.

    Concedi i ruoli a livello di dati al account di servizio del workload per consentirgli di accedere ai set di dati delle applicazioni Spark (vedi Ruoli comuni per dati e servizi).

Abilitare i service account personalizzati per i carichi di lavoro (runtime 2.x)

Utilizza un account di servizio personalizzato del workload con il runtime 2.x per isolare i workload anziché utilizzare ilaccount di serviziot predefinito di Compute Engine condiviso.

  1. Concedi roles/iam.serviceAccountUser al account di servizio personalizzato allo sviluppatore.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="user:DEVELOPER_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  2. Concedi roles/dataproc.worker al account di servizio personalizzato.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:WORKLOAD_SA_EMAIL" \
      --role="roles/dataproc.worker"
    
  3. Concedi l'accesso ai dati dell'applicazione e allo staging.

    Concedi i ruoli a livello di dati direttamente al account di servizio personalizzato del carico di lavoro (vedi Ruoli comuni per dati e servizi) e concedi roles/storage.objectAdmin nei bucket di staging e temporanei.

Abilitare i service account personalizzati del mittente (runtime 2.x)

Utilizza un account di servizio personalizzato per il richiedente quando i sistemi automatizzati (ad esempio Managed Service for Apache Airflow, Cloud Scheduler o pipeline CI/CD) inviano carichi di lavoro senza un utente umano interattivo.

  1. Concedi roles/dataproc.editor al account di servizio del richiedente.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/dataproc.editor"
    
  2. Concedi roles/iam.serviceAccountUser al account di servizio del workload.

    gcloud iam service-accounts add-iam-policy-binding \
      WORKLOAD_SA_EMAIL \
      --member="serviceAccount:SUBMITTER_SA_EMAIL" \
      --role="roles/iam.serviceAccountUser"
    
  3. Configura il account di servizio del workload. Concedi l'accesso a roles/dataproc.worker e al set di dati a WORKLOAD_SA_EMAIL.

Riferimento ai ruoli di amministratore Spark (runtime 2.x)

La tabella seguente riassume i ruoli IAM da concedere con 2.x.

Richiedente Workload Identity Concessione al richiedente Concedi all'account di servizio del workload
Utente finale (opzione predefinita) SA predefinito di Compute Engine roles/dataproc.editor + roles/iam.serviceAccountUser sulla SA predefinita roles/dataproc.worker + roles/storage.objectAdmin + ruoli dei dati
Utente finale SA personalizzato roles/dataproc.editor + roles/iam.serviceAccountUser su SA personalizzato roles/dataproc.worker + roles/storage.objectAdmin + ruoli dei dati
SA personalizzata (automazione) SA personalizzato roles/dataproc.editor + roles/iam.serviceAccountUser su SA personalizzato roles/dataproc.worker + roles/storage.objectAdmin + ruoli dei dati

Visualizzatore

Visualizzatore Spark (runtime 2.x)

In qualità di visualizzatore Spark, puoi visualizzare i workload batch, le sessioni interattive, le metriche di esecuzione, i log e le dashboard di stato senza inviare o modificare i workload.

Chiedi all'amministratore di concederti roles/dataproc.viewer:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:VIEWER_EMAIL" \
  --role="roles/dataproc.viewer"

Questo ruolo concede l'accesso in sola lettura alle risorse di Managed Service for Apache Spark, come cluster, job, batch, sessioni e operazioni.

Autorizzazioni dettagliate

Autorizzazioni dettagliate (runtime 2.x)

Questa sezione elenca le autorizzazioni IAM incluse nei ruoli IAM associati al runtime 2.x.

Ruolo Editor (roles/dataproc.editor)

Questo ruolo fornisce il controllo sui workload e sulle sessioni serverless del runtime 2.x, nonché sui cluster e sui job Managed Service for Apache Spark su Compute Engine.

Autorizzazione Obbligatorio per serverless Descrizione
dataproc.batches.create Sì Crea e invia nuovi workload batch.
dataproc.batches.get Sì Visualizza lo stato e i dettagli del workload batch.
dataproc.batches.list Sì Elenca tutti i carichi di lavoro batch in un progetto o in una regione.
dataproc.batches.delete Sì Elimina i batch completati o terminati.
dataproc.batches.cancel Sì Annulla un carico di lavoro batch in esecuzione.
dataproc.sessions.create Sì Crea sessioni interattive.
dataproc.sessions.get Sì Visualizza lo stato e i dettagli della sessione.
dataproc.sessions.list Sì Elenca tutte le sessioni in un progetto o in una regione.
dataproc.sessions.delete Sì Elimina le sessioni terminate.
dataproc.sessions.terminate Sì Termina una sessione interattiva in esecuzione.
dataproc.operations.get Sì Estrai lo stato dell'operazione asincrona (richiesto dalla CLI gcloud).
compute.networks.get Sì Visualizza la configurazione della rete VPC.
compute.networks.list Sì Elenca le reti e le subnet VPC disponibili.
dataproc.clusters.* No (solo cluster) Crea, gestisci e utilizza cluster Managed Service for Apache Spark basati su Compute Engine.
dataproc.jobs.* No (solo cluster) Invia e gestisci i job sui cluster Managed Service for Apache Spark basati su Compute Engine.
dataproc.autoscalingPolicies.* No (solo cluster) Policy di scalabilità automatica per i cluster basati su Compute Engine.
dataproc.nodeGroups.* No (solo cluster) Gruppi di nodi personalizzati sui cluster basati su Compute Engine.
dataproc.workflowTemplates.* No (solo cluster) Flussi di lavoro dei modelli per i cluster basati su Compute Engine.
compute.machineTypes.* No (solo cluster) Metadati del tipo di macchina per i cluster basati su Compute Engine.

Ruolo Worker (roles/dataproc.worker)

Questo ruolo fornisce le autorizzazioni di esecuzione del workload per il runtime 2.x.

Autorizzazione Descrizione
dataproc.agents.create Registra l'agente VM sulla VM.
dataproc.agents.get Leggi lo stato dell'agente.
dataproc.agents.update Aggiorna lo stato dell'agente.
dataproc.agents.delete Annulla la registrazione dell'agente al termine.
dataproc.tasks.lease Lease delle attività di calcolo per l'esecuzione.
dataproc.tasks.reportStatus Segnala lo stato di esecuzione dell'attività.
storage.objects.create Scrivi dati di staging, file temporanei e log.
storage.objects.delete Libera spazio dai file temporanei.
storage.objects.get Lettura di script di avvio e file in staging.
storage.objects.list Elenca i contenuti del bucket gestione temporanea e di staging.

Ruolo Visualizzatore (roles/dataproc.viewer)

Questo ruolo fornisce l'accesso in sola lettura a tutte le risorse di Managed Service for Apache Spark.

Autorizzazione Obbligatorio per serverless Descrizione
dataproc.batches.get Sì Leggi lo stato e i dettagli del carico di lavoro batch.
dataproc.batches.list Sì Elenca tutti i carichi di lavoro batch in un progetto o in una regione.
dataproc.sessions.get Sì Leggi lo stato e i dettagli della sessione.
dataproc.sessions.list Sì Elenca tutte le sessioni in un progetto o in una regione.
dataproc.operations.get Sì Leggi lo stato dell'operazione asincrona.
dataproc.operations.list Sì Elenca le operazioni in un progetto o in una regione.
dataproc.clusters.get No (solo cluster) Visualizza la configurazione e lo stato del cluster.
dataproc.clusters.list No (solo cluster) Elenca i cluster in un progetto o una regione.
dataproc.jobs.get No (solo cluster) Visualizza i dettagli e lo stato dei job sui cluster.
dataproc.jobs.list No (solo cluster) Elenca i job sui cluster.
dataproc.autoscalingPolicies.get No (solo cluster) Visualizza i dettagli della policy di scalabilità automatica.
dataproc.autoscalingPolicies.list No (solo cluster) Elenca le policy di scalabilità automatica.
dataproc.workflowTemplates.get No (solo cluster) Visualizza i dettagli del modello di workflow.
dataproc.workflowTemplates.list No (solo cluster) Elenca i modelli di workflow.

Ruolo di delega del service account (roles/iam.serviceAccountUser)

Consente a un utente o a un sistema automatizzato di collegare ed eseguire carichi di lavoro come service account Compute Engine predefinito o uaccount di serviziont personalizzato. Il workload viene eseguito con le autorizzazioni e l'accesso alle risorse concessi a questoaccount di serviziot.

Autorizzazione Descrizione
iam.serviceAccounts.actAs Consente all'autore dell'invio di eseguire i carichi di lavoro come l'account di servizio specificato.

Passaggi successivi