Cuentas de servicio de Dataproc

En esta página, se describen las cuentas de servicio y los niveles de acceso de VM, y cómo se usan con Dataproc.

¿Qué son las cuentas de servicio?

Una cuenta de servicio es una cuenta especial que pueden usar los servicios y aplicaciones que se ejecutan en una instancia de máquina virtual (VM) de Compute Engine para interactuar con otras API de Google Cloud. Las aplicaciones pueden usar credenciales de cuentas de servicio para autorizarse a configurar un conjunto de API y realizar acciones en la VM dentro de los permisos otorgados a la cuenta de servicio.

Cuentas de servicio de Dataproc

Las siguientes cuentas de servicio tienen los permisos necesarios para realizar acciones de Dataproc en el proyecto en el que se encuentra el clúster.

  • Cuenta de servicio del agente de servicio de Dataproc: Dataproc crea esta cuenta de servicio con la función de agente de servicio de Dataproc en Dataproc. proyecto de Google Cloud del usuario. Esta cuenta de servicio no se puede reemplazar por una cuenta de servicio especificada por el usuario cuando creas un clúster. Esta cuenta de agente de servicio se usa para realizar operaciones del plano de control de Dataproc, como la creación, actualización y eliminación de las VM del clúster (consultaAgente de servicio de Dataproc (identidad del plano de control) ).

    De forma predeterminada, Dataproc usa service-[project-number]@dataproc-accounts.iam.gserviceaccount.com como la cuenta del agente de servicio. Si esa cuenta de servicio no existe, Dataproc usa la cuenta del agente de servicio de las API de Google, [project-number]@cloudservices.gserviceaccount.com, para las operaciones del plano de control.

Redes de VPC compartidas: si el clúster usa una red de VPC compartida, un administrador de VPC compartida debe otorgar a las dos cuentas de servicio anteriores la función de Usuario de red. para el proyecto host de la VPC compartida. Para obtener más información, consulte:

Permisos de acceso a las VM de Dataproc

Los permisos de acceso a VM se usan para otorgar o limitar el acceso de las instancias de VM a las API. Funcionan junto con la cuenta de servicio de VM para determinar el acceso a la API. Por ejemplo, si a las VM del clúster solo se otorga el permiso https://www.googleapis.com/auth/storage-full, las aplicaciones que se ejecutan en las VM del clúster pueden llamar a las API de Cloud Storage, pero no pueden realizar solicitudes a BigQuery, incluso si la VM. cuenta de servicio en la que se ejecutan, se les otorga una función de BigQuery con permisos amplios.

Permisos predeterminados de VM de Dataproc. Si no se especifican permisos cuando se crea un clúster (consulta gcloud dataproc cluster create --scopes), las VM de Dataproc tienen el siguiente conjunto predeterminado de alcances:

https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

Si especificas alcances cuando creas un clúster, las VM del clúster tendrán los alcances que especifiques y el siguiente conjunto mínimo de alcances obligatorios (incluso si no los especificas 101}:

https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

Crea un clúster con una cuenta de servicio de VM administrada por el usuario

Puedes especificar una cuenta de servicio de VM cuando creas un clúster. Dataproc no admite especificar o cambiar la cuenta de servicio de VM después de crear el clúster.

¿Por qué especificar una cuenta de servicio de VM administrada por el usuario? Las cuentas de servicio tienen funciones de IAM otorgadas. Especificar una cuenta de servicio de VM administrada por el usuario cuando creas un clúster de Dataproc te permite crear clústeres con acceso y control detallados de los recursos del proyecto. El uso de diferentes cuentas de servicio de VM administradas por el usuario con diferentes clústeres de Dataproc te permite configurar clústeres con diferentes accesos a los recursos de Cloud.

Antes de crear el clúster, crea la cuenta de servicio dentro del proyecto en el que se creará el clúster. Otorga a la cuenta de servicio la función Dataproc Worker y cualquier función adicional que necesite tus trabajos, por ejemplo, para permitir la lectura y escritura de datos desde y hacia recursos de Google Cloud. como BigQuery.

Comando de gcloud

Usa el comando gcloud clusters create para crear un clúster nuevo con una cuenta de servicio de VM especificada por el usuario y los niveles de acceso de VM.

gcloud dataproc clusters create cluster-name \
    --region=region \
    --service-account=service-account-name@project-id.iam.gserviceaccount.com \
    --scopes=scope[, ...]

API de REST

Configura serviceAccount y serviceAccountScopes en el objeto GceClusterConfig como parte de la solicitud a la API clusters.create ,

Console

Actualmente, no se admite la configuración de una cuenta de servicio de VM de Dataproc administrada por el usuario en Cloud Console. Puedes configurar el permiso “cloud-platform” en las VM de tu clúster si haces clic en “Permitir el acceso a la API a todos los servicios de Google Cloud en el mismo proyecto” en la páginaAcceso al proyecto de laAdministración de la seguridad Panel en DataprocCrea un clúster página en Cloud Console.

¿Qué sigue?