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 Spark4e 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 Spark3.5e 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.objectViewerroles/storage.objectAdmin |
Leggi i dati di input e gli script temporanei. Scrivi i dati di output. |
| Catalogo runtime BigLake e Lakehouse | roles/biglake.viewerroles/biglake.editorroles/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.readerroles/bigtable.user |
Leggere le tabelle Bigtable. Leggere e scrivere dati Bigtable. |
| Dataproc Metastore (DPMS) | roles/metastore.metadataViewerroles/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.
Richiedi il ruolo di editor serverless. Chiedi all'amministratore di concederti
roles/dataproc.serverlessEditorsul 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.
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"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 \ -- 1000Note:
Se è la prima volta che invii un workload
3.xcon credenziali dell'utente finale (EUC), ti viene chiesto il consenso OAuth una tantum. Concedi il consenso, quindi invia di nuovo il carico di lavoro.Se il tuo progetto non ha una rete VPC
default, utilizza il flag o il camposubnetper specificare la subnet regionale (vedi Configurazione di rete serverless di Managed Service for Apache Spark).Per un esempio end-to-end di esecuzione dei carichi di lavoro PySpark e configurazione delle autorizzazioni richieste in Cloud Storage, BigLake e BigQuery, consulta Trasformare i dati e scriverli in una tabella Apache Iceberg.
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).
Ottieni l'autorizzazione per eseguire i workload come account di servizio personalizzato. Chiedi all'amministratore di concederti
roles/iam.serviceAccountUserper il account di servizio personalizzato.gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="user:DEVELOPER_EMAIL" \ --role="roles/iam.serviceAccountUser"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 \ -- 1000Concedi 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.
Concedi
roles/dataproc.serverlessEditoragli sviluppatori di Spark.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEVELOPER_EMAIL" \ --role="roles/dataproc.serverlessEditor"Concedi
roles/dataproc.serverlessViewerai 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"Garantisci l'accesso degli sviluppatori ai dati.
Per impostazione predefinita, i carichi di lavoro del runtime
3.xvengono eseguiti come utente che invia. Concedi ruoli di accesso ai dati, ad esempioroles/storage.objectVieweroroles/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).
Concedi
roles/iam.serviceAccountUseral 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"Concedi
roles/dataproc.serverlessNodeal 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"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
gcloudche avvia il job. Ecco un esempio con l'utilizzo digcloud: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.
- Concedi
roles/dataproc.serverlessEditoral 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.xcon 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).- Concedi
Concedi
roles/iam.serviceAccountUseral 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"Configura il account di servizio personalizzato del workload. Concedi
roles/dataproc.serverlessNodee ruoli dei dati delle applicazioni aWORKLOAD_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.
Richiedi il ruolo di editor. Chiedi all'amministratore di concederti
roles/dataproc.editorsul progetto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEVELOPER_EMAIL" \ --role="roles/dataproc.editor"Richiedi l'autorizzazione di delega. Chiedi all'amministratore di concederti
roles/iam.serviceAccountUserper 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"Ottieni l'accesso al bucket di staging. L'utente che invia
2.xha 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 ruoloroles/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"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 \ -- 1000Note:
Poiché il carico di lavoro viene eseguito come account di servizio del carico di lavoro, è questo account, non il tuo account utente, a dover accedere ai dati che il job legge e scrive (vedi Ruoli comuni per dati e servizi).
Se il tuo progetto non ha una rete VPC
default, utilizza il flag o il camposubnetper specificare la subnet regionale (vedi Configurazione di rete serverless di Managed Service for Apache Spark).Per un esempio end-to-end di esecuzione dei carichi di lavoro PySpark e configurazione delle autorizzazioni richieste in Cloud Storage, BigLake e BigQuery, consulta Trasformare i dati e scriverli in una tabella Apache Iceberg.
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).
Ottieni l'autorizzazione per eseguire i workload come account di servizio personalizzato. Chiedi all'amministratore di concederti
roles/iam.serviceAccountUsersul account di servizio personalizzato:gcloud iam service-accounts add-iam-policy-binding \ WORKLOAD_SA_EMAIL \ --member="user:DEVELOPER_EMAIL" \ --role="roles/iam.serviceAccountUser"Specifica il account di servizio personalizzato con il flag
--service-accountquando 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 \ -- 1000Accesso 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.
Concedi
roles/dataproc.editorallo sviluppatore.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:DEVELOPER_EMAIL" \ --role="roles/dataproc.editor"Concedi
roles/iam.serviceAccountUseral 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"Concedi
roles/dataproc.workeral 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"Concedi
roles/storage.objectAdminper 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"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.
Concedi
roles/iam.serviceAccountUseral 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"Concedi
roles/dataproc.workeral account di servizio personalizzato.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:WORKLOAD_SA_EMAIL" \ --role="roles/dataproc.worker"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.objectAdminnei 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.
Concedi
roles/dataproc.editoral account di servizio del richiedente.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SUBMITTER_SA_EMAIL" \ --role="roles/dataproc.editor"Concedi
roles/iam.serviceAccountUseral 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"Configura il account di servizio del workload. Concedi l'accesso a
roles/dataproc.workere al set di dati aWORKLOAD_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
- Leggi Trasformare i dati e scriverli in una tabella Apache Iceberg per un tutorial end-to-end che utilizza le autorizzazioni PySpark e Spark serverless.
- Comprendi il ciclo di vita di un workload batch serverless Managed Service for Apache Spark.
- Scopri di più sulla configurazione di rete serverless di Managed Service for Apache Spark.