Conceder roles de cuenta de servicio para Dataproc

En esta página se describe cómo asignar el rol Usuario de cuenta de servicio a la cuenta de servicio de Dataproc para que el agente de servicio de Cloud Data Fusion pueda aprovisionar y ejecutar flujos de trabajo en clústeres de Dataproc.

En el caso de las cuentas de servicio que usa Dataproc, también debes conceder el permiso datafusion.instances.runtime para acceder a los recursos de tiempo de ejecución de Cloud Data Fusion.

Tanto si usas una cuenta de servicio gestionada por el usuario como la cuenta de servicio predeterminada de Compute Engine en las máquinas virtuales de un clúster, debes asignar el rol Usuario de cuenta de servicio a Cloud Data Fusion. De lo contrario, Cloud Data Fusion no podrá aprovisionar un clúster de Dataproc y aparecerá el siguiente error al ejecutar una canalización de datos:

PROVISION task failed in REQUESTING_CREATE state for program run [pipeline-name] due to Dataproc operation failure: INVALID_ARGUMENT: User not authorized to act as service account '[service-account-name]'

Obtener el nombre de la cuenta de servicio

  1. En la Google Cloud consola, ve a la página Gestión de identidades y accesos.
    Ir a la página de gestión de identidades y accesos
  2. En el selector de proyectos situado en la parte superior de la página, elige el proyecto, la carpeta o la organización a la que pertenece la instancia de Cloud Data Fusion.
  3. Busca y copia el nombre de la cuenta de servicio de Cloud Data Fusion. Utiliza el siguiente formato: service-[project-number]@gcp-sa-datafusion.iam.gserviceaccount.com.

Conceder permiso de usuario de cuenta de servicio

  1. En la Google Cloud consola, ve a la página Cuentas de servicio.
    Ir a la página Cuentas de servicio
  2. Haz clic en Seleccionar un proyecto, elige un proyecto en el que se encuentre la cuenta de servicio que quieras usar para el clúster de Dataproc y, a continuación, haz clic en Abrir.
  3. Haz clic en la dirección de correo de la cuenta de servicio de Dataproc.

  4. Haz clic en la pestaña Permisos. En la página se muestra una lista de los principales a los que se les han concedido roles en la cuenta de servicio.

  5. Haz clic en Conceder acceso.

  6. En el campo Nuevos principales, pega el nombre de la cuenta de servicio de Cloud Data Fusion que has copiado anteriormente.

  7. Selecciona el rol Usuario de cuenta de servicio.

    Usuario de cuenta de servicio

  8. Haz clic en Guardar.

Conceder roles a cuentas de servicio de Dataproc

Conceder permiso de rol de ejecutor

Concede el rol de ejecutor de Cloud Data Fusion (roles/datafusion.runner) a las cuentas de servicio que utiliza Dataproc. De esta forma, la cuenta de servicio de Dataproc puede ejecutar flujos de procesamiento de Cloud Data Fusion en tu proyecto. Para obtener más información, consulta el artículo Requerir permiso para asociar cuentas de servicio a recursos.

Conceder permiso de administrador de Cloud Storage

En Cloud Data Fusion 6.2.0 y versiones posteriores, asigna el rol de administrador de Cloud Storage (roles/storage.admin) a las cuentas de servicio que usa Dataproc en tu proyecto.

Siguientes pasos