IAM detallada de Cloud Dataproc

La IAM detallada de Cloud Dataproc es una característica que te permite otorgar permisos a nivel de clúster, trabajos, operaciones o plantilla de flujo de trabajo.

Ejemplo: puedes otorgar a un usuario la función de Lector de clúster, que le permite ver un clúster dentro de un proyecto, y otorgar a otro usuario la función de Editor de trabajos, que le permite, además de verlo, actualizar y cancelar el trabajo. Consulta Comandos del SDK que habilita la IAM detallada para comprender los comandos específicos del SDK de Google Cloud que habilita cada función de la IAM detallada de Cloud Dataproc.

Funciones y permisos de la IAM detallada de Cloud Dataproc

Mediante la IAM detallada de Cloud Dataproc puedes establecer las siguientes funciones con los siguientes permisos en los recursos de Cloud Dataproc.

Funciones de Clúster

Función Permisos
Lector dataproc.clusters.get
Editor dataproc.clusters.get
dataproc.clusters.list
dataproc.clusters.delete
dataproc.clusters.update
dataproc.clusters.use
Propietario dataproc.clusters.get
dataproc.clusters.list
dataproc.clusters.delete
dataproc.clusters.update
dataproc.clusters.use
dataproc.clusters.setIamPolicy
dataproc.clusters.getIamPolicy

Funciones de trabajo

Función Permisos
Lector dataproc.jobs.get
Editor dataproc.jobs.get
dataproc.jobs.cancel
dataproc.jobs.delete
dataproc.jobs.update
Propietario dataproc.jobs.get
dataproc.jobs.cancel
dataproc.jobs.delete
dataproc.jobs.update
dataproc.jobs.setIamPolicy
dataproc.jobs.getIamPolicy

Funciones de operación

Función Permisos
Lector dataproc.operations.get
Editor dataproc.jobs.get
dataproc.operations.cancel
dataproc.operations.delete
Propietario dataproc.jobs.get
dataproc.operations.cancel
dataproc.operations.delete
dataproc.operations.setIamPolicy
dataproc.operations.getIamPolicy

Funciones de plantillas de flujo de trabajo

Función Permisos
Lector dataproc.workflowTemplates.get
Editor dataproc.workflowTemplates.get
dataproc.workflowTemplates.delete
dataproc.workflowTemplates.update
Propietario dataproc.workflowTemplates.get
dataproc.workflowTemplates.delete
dataproc.workflowTemplates.update
dataproc.operations.setIamPolicy
dataproc.operations.getIamPolicy

Usa la IAM detallada de Dataproc

En esta sección, se explica cómo usar la IAM detallada de Cloud Dataproc para asignar funciones a los usuarios en un recurso existente de Cloud Dataproc. Consulta, Otorga, cambia y revoca el acceso a los miembros del proyecto para obtener más información general sobre cómo actualizar y quitar las funciones de Cloud IAM.

Comando de gcloud

  1. Obtén la política de IAM del recurso y escríbela en un archivo JSON:
    gcloud dataproc resource-type ("clusters" or "jobs" or "operations" or "workflow-templates" \
        get-iam-policy  resource-name --format=json > iam.json
    
  2. El contenido del archivo JSON se verá similar al siguiente ejemplo:
    {
      "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"
    }
    
  3. Con un editor de texto, agrega un objeto de vinculación nuevo al arreglo de vinculación que define los usuarios y la función de acceso a los recursos para esos usuarios. Por ejemplo, para otorgar la función de Lector (roles/viewer) al usuario sean@example.com, cambiarías el ejemplo anterior para agregar un objeto de vinculación nuevo (que se muestra en negrita, a continuación). Nota: Asegúrate de mostrar el valor etag que recibiste de gcloud dataproc resource-type get-iam-policy (consulta la documentación de 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"
    }
    
  4. Actualiza la política del clúster con el arreglo de vinculación nuevo mediante la ejecución del siguiente comando:
    gcloud dataproc resource-type ("clusters" or "jobs" or "operations" or "workflow-templates") \
        set-iam-policy resource-name --format=json iam.json
    
  5. El comando genera esta política actualizada:
    {
      "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 de REST

  1. Envía una solicitud getIamPolicy de resource-type (“operaciones” o “clústeres” o “trabajos” o “plantillas de flujo de trabajo”) a fin de obtener la política de IAM para el recurso.

    Ejemplo de clúster getIamPolicy:

    GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
    
  2. El contenido del archivo JSON se verá similar al siguiente ejemplo:
    {
      "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"
    }
    
  3. Con un editor de texto, crea el siguiente objeto de política JSON para encerrar los arreglos de vinculación que recibiste del servicio de Cloud Dataproc. Asegúrate de mostrar el valor “ETag” que recibiste en la respuesta de getIamPolicy (consulta la documentación de ETag). Ahora, agrega un objeto de vinculación nuevo al arreglo de vinculación que define los usuarios y la función de acceso al clúster para esos usuarios. Por ejemplo, para otorgar la función de Lector (roles/viewer) al usuario sean@example.com, cambiarías el ejemplo anterior para agregar un objeto de vinculación nuevo (que se muestra en negrita, a continuación).
    {
      "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"
      }
    }
    
  4. Establece la política actualizada en el recurso mediante el envío de una solicitud setIamPolicy.

    Ejemplo de clúster setIamPolicy:

    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"
      }
    }
    
  5. El contenido de la respuesta JSON se verá similar al siguiente ejemplo:

    Respuesta

    {
      "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

Dirígete a la página Clústeres de Cloud Dataproc en GCP Console, a continuación, haz clic en el cuadro que está a la izquierda del nombre del clúster para abrir el panel Permisos y etiquetas (si el panel no aparece, haz clic en MOSTRAR PANEL DE INFORMACIÓN en la parte superior derecha de la página). En la pestaña Permisos, selecciona la función Dataproc, agrega una o más direcciones de cuenta en el cuadro Agregar miembros y luego haz clic en Agregar.

Comandos del SDK que habilita la IAM detallada

En las tablas a continuación, se muestran los comandos de gcloud dataproc habilitados en los recursos de Cloud Dataproc para cada función de la IAM detallada.

Clústeres

Función de IAM Comando
Lector 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
Propietario 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 dataproc clusters get-iam-policy cluster-name
gcloud dataproc clusters set-iam-policy cluster-name

Trabajos

Función de IAM Comando
Lector 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
Propietario 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

Operaciones

Función de IAM Comando
Lector 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
Propietario 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

Plantillas de flujo de trabajo

Función de IAM Comando
Lector 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
Propietario 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

Envía trabajos con la IAM detallada

Para permitir a un miembro (usuario, grupo o cuenta de servicio) enviar trabajos a un clúster específico con la IAM detallada de Cloud Dataproc, además de otorgar a un usuario la función de Editor en un clúster, se deben establecer permisos adicionales a nivel de proyecto. Estos son los pasos que se deben seguir para permitir a un miembro enviar trabajos en un clúster específico de Cloud Dataproc:

  1. Crea un depósito de Cloud Storage que pueda usar tu clúster para conectarse a Cloud Storage.
  2. Agrega el miembro a la política a nivel depósito y selecciona la función Visor de objetos de almacenamiento para el miembro (consulta roles/storage.objectViewer), que incluye los siguientes permisos:
    1. storage.objects.get
    2. storage.objects.list
  3. Cuando crees el clúster, pasa el nombre del depósito que acabas de crear a tu clúster con el parámetro --bucket (consulta gcloud dataproc clusters create --bucket).
  4. Después de crear el clúster, establece una política en este que le otorgue al miembro la función de Editor o Propietario (consulta Usa la IAM detallada de Dataproc).
  5. Crea una función personalizada de Cloud IAM con los siguientes permisos:
    1. dataproc.jobs.create
    2. dataproc.jobs.get
  6. Selecciona o agrega el miembro en la página IAM de GCP Console y selecciona la función personalizada para aplicársela.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Dataproc
Si necesitas ayuda, visita nuestra página de asistencia.