Dataproc Granular IAM è una funzionalità che consente di concedere autorizzazioni a livello di cluster, job, operazioni, modello di flusso di lavoro o criterio di scalabilità automatica.
Esempio: puoi concedere a un utente un ruolo Visualizzatore cluster, che consente all'utente di visualizzare un cluster all'interno di un progetto e a un altro utente il ruolo Editor job, che consente a quell'utente di eseguire l'aggiornamento e l'annullamento, nonché di visualizzare il job. Consulta la sezione Comandi SDK abilitati da IAM granulare per comprendere i comandi specifici di Google Cloud CLI abilitati da ciascun ruolo IAM di Dataproc Granular.
Ruoli e autorizzazioni IAM granulari di Dataproc
Dataproc Granular IAM può impostare i ruoli seguenti con le seguenti autorizzazioni sulle risorse Dataproc.
Ruoli cluster
Ruolo | Autorizzazioni |
---|---|
Visualizzatore | dataproc.clusters.get |
Editor | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop |
Proprietario | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.clusters.setIamPolicy dataproc.clusters.getIamPolicy |
Ruoli professionali
Ruolo | Autorizzazioni |
---|---|
Visualizzatore | dataproc.jobs.get |
Editor | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update |
Proprietario | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update dataproc.jobs.setIamPolicy dataproc.jobs.getIamPolicy |
Ruoli operazione
Ruolo | Autorizzazioni |
---|---|
Visualizzatore | dataproc.operations.get |
Editor | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete |
Proprietario | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete dataproc.operations.setIamPolicy dataproc.operations.getIamPolicy |
Ruoli modello flusso di lavoro
Ruolo | Autorizzazioni |
---|---|
Visualizzatore | dataproc.workflowTemplates.get |
Editor | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update |
Proprietario | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update dataproc.workflowTemplates.setIamPolicy dataproc.workflowTemplates.getIamPolicy |
Ruoli dei criteri di scalabilità automatica
Ruolo | Autorizzazioni |
---|---|
Visualizzatore | dataproc.autoscalingPolicies.get |
Editor | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update |
Proprietario | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update dataproc.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.getIamPolicy |
Utilizzo di Dataproc granulare per Dataproc
Questa sezione spiega come utilizzare Dataproc Granular IAM per assegnare ruoli agli utenti di una risorsa Dataproc esistente. Per informazioni più generali sull'aggiornamento e sulla rimozione dei ruoli IAM (Identity and Access Management), consulta Concessione, modifica e revoca dell'accesso.
Comando gcloud
- Ottieni il criterio IAM della risorsa e scrivilo in un file JSON (resource-type può essere "clusters" o "jobs" oppure "operations", "workflow-templates" o "autoscaling-policies"):
gcloud dataproc resource-type get-iam-policy resource-id \ --region=region \ --format=json > iam.json
- I contenuti del file JSON saranno simili ai seguenti:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" }
- Utilizzando un editor di testo, aggiungi un nuovo oggetto di associazione all'array di associazioni che definisce gli utenti e il ruolo di accesso alle risorse per questi utenti. Ad esempio, per concedere il ruolo Visualizzatore (
roles/viewer
) all'utentesean@example.com
, devi modificare l'esempio precedente per aggiungere un nuovo oggetto di associazione (visualizzato in grassetto di seguito. Nota: assicurati di restituire il valoreetag
che hai ricevuto dagcloud dataproc resource-type get-iam-policy
(consulta la documentazione relativa a etag).{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-get-iam-policy" }
- Aggiorna il criterio del cluster con il nuovo array di associazioni eseguendo il comando seguente (resource-type può essere "clusters" o "jobs" o "operations", "workflow-templates" o "autoscaling-policies"):
gcloud dataproc resource-type set-iam-policy resource-name \ --region=region \ --format=json iam.json
- Il comando restituisce il criterio aggiornato:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
API REST
- Invia una richiesta resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") getIamPolicy per ottenere il criterio IAM per la risorsa.
Esempio di cluster getIamPolicy:
GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
- I contenuti del file JSON saranno simili ai seguenti:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" }
- Utilizzando un editor di testo, crea il seguente oggetto JSON policy per racchiudere l'array di associazioni appena ricevuto dal servizio Dataproc. Assicurati di restituire il valore "etag" ricevuto nella risposta getIamPolicy (consulta la documentazione etag).
Ora, aggiungi un nuovo oggetto di associazione all'array di associazioni che definisce gli utenti e il ruolo di accesso al cluster di questi utenti. Ad esempio, per concedere il ruolo Visualizzatore (
roles/viewer
) all'utentesean@example.com
, devi modificare l'esempio precedente per aggiungere un nuovo oggetto di associazione (mostrato in grassetto di seguito).{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } }
- Imposta il criterio aggiornato sulla risorsa inviando una richiesta setIamPolicy.
Cluster setIamPolicy Esempio:
POST https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:setIamPolicy Request body
{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } }
- I contenuti della risposta JSON saranno simili ai seguenti:
Risposta
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
Console
Vai alla pagina Cluster Dataproc nella console Google Cloud, quindi fai clic sulla casella a sinistra del nome del gruppo di istanze per aprire il riquadro Autorizzazioni/Etichette (se il riquadro non è visualizzato, fai clic su MOSTRA RIQUADRO INFORMAZIONI in alto a destra nella pagina). Nella scheda Autorizzazioni, seleziona il ruolo Dataproc, aggiungi uno o più indirizzi di account nella casella Aggiungi entità, quindi fai clic su Aggiungi.
Comandi SDK abilitati da IAM granulare
Le tabelle riportate di seguito mostrano i comandi gcloud dataproc
abilitati sulle risorse Dataproc da ciascun ruolo IAM granulare.
Cluster
Ruolo IAM | Comando |
---|---|
Visualizzatore | gcloud dataproc clusters describe cluster-name |
Editor | gcloud dataproc clusters describe cluster-name gcloud dataproc clusters list gcloud dataproc clusters delete cluster-name gcloud dataproc clusters diagnose cluster-name gcloud dataproc clusters update cluster-name gcloud beta dataproc clusters start cluster-name gcloud beta dataproc clusters stop cluster-name |
Proprietario | gcloud dataproc clusters describe cluster-name gcloud dataproc clusters list gcloud dataproc clusters delete cluster-name gcloud dataproc clusters diagnose cluster-name gcloud dataproc clusters update cluster-name gcloud beta dataproc clusters start cluster-name gcloud beta dataproc clusters stop cluster-name gcloud dataproc clusters get-iam-policy cluster-name gcloud dataproc clusters set-iam-policy cluster-name |
Job
Ruolo IAM | Comando |
---|---|
Visualizzatore | gcloud dataproc jobs describe job-id |
Editor | gcloud dataproc jobs delete job-id gcloud dataproc jobs describe job-id gcloud dataproc jobs kill job-id gcloud dataproc jobs update job-id gcloud dataproc jobs wait job-id |
Proprietario | gcloud dataproc jobs delete job-id gcloud dataproc jobs describe job-id gcloud dataproc jobs kill job-id gcloud dataproc jobs update job-id gcloud dataproc jobs wait job-id gcloud dataproc jobs get-iam-policy job-id gcloud dataproc jobs set-iam-policy job-id |
Suite operativa
Ruolo IAM | Comando |
---|---|
Visualizzatore | gcloud dataproc operations describe operation-id |
Editor | gcloud dataproc operations delete operation-id gcloud dataproc operations describe operation-id gcloud dataproc operations cancel operation-id |
Proprietario | gcloud dataproc operations delete operation-id gcloud dataproc operations describe operation-id gcloud dataproc operations cancel operation-id gcloud dataproc operations get-iam-policy operation-id gcloud dataproc operations set-iam-policy operation-id |
Modelli di flusso di lavoro
Ruolo IAM | Comando |
---|---|
Visualizzatore | gcloud dataproc workflow-templates describe template-id |
Editor | gcloud dataproc workflow-templates delete template-id gcloud dataproc workflow-templates describe template-id gcloud dataproc workflow-templates remove-job template-id gcloud dataproc workflow-templates run template-id |
Proprietario | gcloud dataproc workflow-templates delete template-id gcloud dataproc workflow-templates describe template-id gcloud dataproc workflow-templates remove-job template-id gcloud dataproc workflow-templates run template-id gcloud dataproc workflow-templates get-iam-policy template-id gcloud dataproc workflow-templates set-iam-policy template-id |
Criteri di scalabilità automatica
Ruolo IAM | Comando |
---|---|
Visualizzatore | gcloud dataproc autoscaling-policies describe policy-id |
Editor | gcloud dataproc autoscaling-policies delete policy-id gcloud dataproc autoscaling-policies describe policy-id gcloud dataproc autoscaling-policies update policy-id gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id |
Proprietario | gcloud dataproc autoscaling-policies delete policy-id gcloud dataproc autoscaling-policies describe policy-id gcloud dataproc autoscaling-policies update policy-id gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id gcloud dataproc autoscaling-policies get-iam-policy policy-id gcloud dataproc autoscaling-policies set-iam-policy policy-id |
Invio di job con IAM granulare
Per consentire a un'entità (utente, gruppo o account di servizio) di inviare job a un cluster specificato utilizzando Dataproc Granular IAM, oltre a concedere a un utente il ruolo Editor su un cluster, è necessario impostare autorizzazioni aggiuntive a livello di progetto. Ecco i passaggi da seguire per consentire a un'entità di inviare job su un cluster Dataproc specificato:
- Crea un bucket Cloud Storage che il cluster possa utilizzare per connettersi a Cloud Storage.
- Aggiungi l'entità al criterio a livello di bucket,
selezionando il ruolo Visualizzatore oggetti Storage per l'entità
(vedi
roles/storage.objectViewer
), che include le seguenti autorizzazioni:storage.objects.get
storage.objects.list
- Quando crei il cluster, passa il nome del bucket appena creato al cluster utilizzando il parametro
--bucket
(vedi gcloud dataproc clusters create --bucket). - Dopo la creazione del cluster, imposta un criterio sul cluster che conceda all'entità il ruolo Editor o Proprietario (consulta la pagina relativa all'utilizzo di Dataproc granulare IAM).
- Crea un ruolo IAM personalizzato con le seguenti autorizzazioni:
dataproc.jobs.create
dataproc.jobs.get
- Seleziona o aggiungi l'entità nella pagina IAM della console Google Cloud, quindi seleziona il ruolo personalizzato da applicare all'entità.