Control de acceso con IAM

Cloud Composer 1 | Cloud Composer 2

En esta página, se describen las opciones de control de acceso disponibles en Cloud Composer y se explica cómo asignar funciones.

Descripción general

Para obtener información sobre cómo otorgar funciones, consulta Administración del acceso a proyectos, carpetas y organizaciones.

También puedes controlar los permisos para la interfaz web de Airflow, además de habilitar o inhabilitar el acceso a ella. Para obtener más información, consulta Control de acceso basado en funciones.

Acerca de Identity and Access Management en Cloud Composer

de Cloud Composer usa Identity and Access Management (IAM) para el control de acceso.

Para controlar el acceso a diferentes funciones de Cloud Composer, asigna funciones y permisos para las cuentas de servicio de IAM y las cuentas de usuario en el proyecto de Google Cloud.

Cloud Composer usa dos tipos de cuentas de servicio de IAM:

Acerca de la cuenta del agente de servicio de Cloud Composer

En tu proyecto, el servicio de Cloud Composer usa una cuenta de servicio especial administrada por Google para administrar los recursos relacionados con Cloud Composer. Esta cuenta se llama agente de servicio de Cloud Composer.

El agente de servicio de Cloud Composer se usa para todos los entornos de tu proyecto.

Acerca de las cuentas de servicio para los entornos de Cloud Composer

Cuando creas un entorno, especificas una cuenta de servicio. El clúster de tu entorno usa esta cuenta de servicio para ejecutar pods con diferentes componentes de entorno, como trabajadores y programadores de Airflow.

De forma predeterminada, los entornos de Cloud Composer se ejecutan mediante la cuenta de servicio predeterminada de Compute Engine. Esta cuenta de servicio administrada por Google tiene más permisos que los necesarios para ejecutar entornos de Cloud Composer; por lo general, la función básica de Editor.

Te recomendamos que configures una cuenta de servicio administrada por el usuario para los entornos de Cloud Composer. Asigna a esta cuenta una función específica para Cloud Composer. Luego, especifica esta cuenta de servicio cuando crees entornos nuevos.

Acerca de las funciones para los usuarios de Cloud Composer

Para activar una operación de entorno, un usuario debe tener los permisos necesarios. Por ejemplo, si deseas crear un entorno nuevo, debes tener el permiso composer.environments.create.

Para Cloud Composer, los permisos individuales se agrupan en funciones. Puedes asignar estas funciones a las principales.

Si tu cuenta de servicio tiene la función Editor del proyecto, puedes ejecutar todas las operaciones del entorno. Sin embargo, esta función tiene permisos amplios. Para los usuarios que trabajan con entornos, recomendamos usar funciones que son específicas de Cloud Composer. De esta manera, puedes reducir el alcance de los permisos y proporcionar diferentes niveles de acceso a diferentes cuentas principales. Por ejemplo, un usuario puede tener permisos para crear, actualizar, borrar y mejorar entornos, mientras que otro usuario solo puede ver los entornos y acceder a la interfaz web de Airflow.

Asigna funciones a una cuenta de servicio administrada por el usuario

Para una cuenta de servicio administrada por el usuario que ejecuta entornos de Cloud Composer:

  • Para una configuración de IP pública, asigna la función Trabajador de Composer (composer.worker).
  • Para una configuración de IP privada, sigue estos pasos:
    1. Asigna la función Trabajador de Composer (composer.worker).
    2. Asigna la función Usuario de cuenta de servicio (iam.serviceAccountUser).

asignar funciones a los usuarios;

Según el nivel de acceso que desees proporcionar a los entornos de Cloud Composer, otorga los siguientes permisos a las cuentas principales.

Administra entornos y depósitos de entornos

Para que un usuario pueda ver, crear, actualizar, mejorar y borrar entornos, administra objetos (como archivos DAG) en los depósitos de entorno y accede a la interfaz web de Airflow:

  1. Asigna la función Administrador de objetos de almacenamiento y entorno (composer.environmentAndStorageObjectAdmin).
  2. Asigna la función Usuario de cuenta de servicio (iam.serviceAccountUser).

Administra entornos

Para un usuario que pueda ver, crear, actualizar, mejorar y borrar entornos, y acceder a la interfaz web de Airflow, haz lo siguiente:

  1. Asigna la función Administrador de Composer (composer.admin).
  2. Asigna la función Usuario de cuenta de servicio (iam.serviceAccountUser).

Visualiza entornos y administra depósitos de entornos

Para un usuario que pueda ver entornos, acceder a la interfaz web de Airflow y administrar objetos en los depósitos del entorno (por ejemplo, a fin de subir archivos nuevos de DAG):

  1. Asigna la función Usuario de entorno y Visualizador de objetos de almacenamiento (composer.environmentAndStorageObjectViewer).
  2. Asigna la función Administrador de objetos de almacenamiento (storage.objectAdmin).

Visualización de los entornos y los depósitos del entorno

Para un usuario que pueda ver entornos, acceder a la interfaz web de Airflow y ver objetos en depósitos de entornos, asigna el Usuario de entornos y el Visualizador de objetos de almacenamiento (composer.environmentAndStorageObjectViewer).

Visualización de entornos

Para un usuario que pueda ver entornos y acceder a la interfaz web de Airflow, asigna la función Usuario de Composer (composer.user).

Asigna permisos para usar gcloud con entornos

Se requieren los siguientes permisos para usar la herramienta de línea de comandos de gcloud con entornos de Cloud Composer, por ejemplo, para ejecutar comandos de la CLI de Airflow.

Si deseas administrar entornos o depósitos de entornos con comandos gcloud composer, también debes tener una función que tenga suficientes permisos para hacerlo.

Para usar gcloud con entornos de Cloud Composer, necesitas los siguientes permisos:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Funciones

Función Permisos

Extensión de agente de servicio de la API de Cloud Composer v2
(roles/composer.ServiceAgentV2Ext)

La extensión de agente de servicio de la API de Cloud Composer v2 es una función complementaria que se requiere para administrar entornos de Composer v2.

  • iam.serviceAccounts.getIamPolicy
  • iam.serviceAccounts.setIamPolicy

Administrador de Composer
(roles/composer.admin)

Proporciona control total de los recursos de Cloud Composer.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • Proyecto
  • composer.*
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Administrador de objetos de almacenamiento y entorno
(roles/composer.environmentAndStorageObjectAdmin)

Proporciona control total de los recursos de Cloud Composer y de los objetos en todos los depósitos de proyectos.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • Proyecto
  • composer.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.*

Visualizador de objetos de almacenamiento y de usuario del entorno
(roles/composer.environmentAndStorageObjectViewer)

Proporciona los permisos necesarios para enumerar y obtener entornos y operaciones de Cloud Composer. Proporciona acceso de solo lectura a objetos en todos los depósitos de proyectos.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • Proyecto
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • storage.objects.get
  • storage.objects.list

Agente de VPC compartida de Composer
(roles/composer.sharedVpcAgent)

La función que se debe asignar a la cuenta de servicio de Composer Agent en el proyecto host de la VPC compartida

  • compute.networks.access
  • compute.networks.addPeering
  • compute.networks.get
  • compute.networks.list
  • compute.networks.listPeeringRoutes
  • compute.networks.removePeering
  • compute.networks.updatePeering
  • compute.networks.use
  • compute.networks.useExternalIp
  • compute.projects.get
  • compute.regions.*
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.zones.*

Usuario de Composer
(roles/composer.user)

Proporciona los permisos necesarios para enumerar y obtener entornos y operaciones de Cloud Composer.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • Proyecto
  • composer.environments.get
  • composer.environments.list
  • composer.imageversions.*
  • composer.operations.get
  • composer.operations.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list

Trabajador de Composer
(roles/composer.worker)

Proporciona los permisos necesarios para ejecutar una VM de entorno de Cloud Composer. Se otorga para cuentas de servicio.

Recursos de nivel más bajo en los que puedes otorgar esta función:

  • Proyecto
  • artifactregistry.*
  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • cloudbuild.workerpools.use
  • composer.environments.get
  • container.*
  • containeranalysis.occurrences.create
  • containeranalysis.occurrences.delete
  • containeranalysis.occurrences.get
  • containeranalysis.occurrences.list
  • containeranalysis.occurrences.update
  • logging.logEntries.create
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.*
  • monitoring.timeSeries.*
  • pubsub.schemas.attach
  • pubsub.schemas.create
  • pubsub.schemas.delete
  • pubsub.schemas.get
  • pubsub.schemas.list
  • pubsub.schemas.validate
  • pubsub.snapshots.create
  • pubsub.snapshots.delete
  • pubsub.snapshots.get
  • pubsub.snapshots.list
  • pubsub.snapshots.seek
  • pubsub.snapshots.update
  • pubsub.subscriptions.consume
  • pubsub.subscriptions.create
  • pubsub.subscriptions.delete
  • pubsub.subscriptions.get
  • pubsub.subscriptions.list
  • pubsub.subscriptions.update
  • pubsub.topics.attachSubscription
  • pubsub.topics.create
  • pubsub.topics.delete
  • pubsub.topics.detachSubscription
  • pubsub.topics.get
  • pubsub.topics.list
  • pubsub.topics.publish
  • pubsub.topics.update
  • pubsub.topics.updateTag
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get
  • serviceusage.services.list
  • source.repos.get
  • source.repos.list
  • storage.buckets.create
  • storage.buckets.get
  • storage.buckets.list
  • storage.objects.*

Funciones básicas

Función Título Descripción Permisos Recurso más bajo
roles/owner Propietario Función básica que permite el control total de los recursos de Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.list
iam.serviceAccounts.actAs
Proyecto
roles/editor Editor Función básica que permite el control total de los recursos de Cloud Composer. composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.list
iam.serviceAccounts.actAs
Proyecto
roles/viewer Lector Función básica que permite al usuario enumerar y obtener recursos de Cloud Composer. composer.environments.get
composer.environments.list
composer.imageversions.list
composer.operations.get
composer.operations.list
Proyecto

Permisos

En la siguiente tabla, se enumeran los permisos que debe tener el emisor a fin de llamar a cada método de la API de Cloud Composer o de realizar tareas con las herramientas de Google Cloud que usan la API, como Google Cloud Console o el SDK de Cloud.

Método Permiso
environments.create composer.environments.create y iam.serviceAccounts.actAs en la cuenta de servicio del entorno.
environments.delete composer.environments.delete
environments.get composer.environments.get
environments.list composer.environments.list
environments.update composer.environments.update
operations.delete composer.operations.delete
operations.get composer.operations.get
operations.list composer.operations.list

Usa una cuenta de servicio de otro proyecto

Si deseas que un entorno de Cloud Composer en un proyecto use una cuenta de servicio administrada por el usuario de un proyecto diferente, haz lo siguiente:

  1. Configura la cuenta de servicio administrada por el usuario para que funcione en todos los proyectos.
  2. Como parte de este proceso, debes otorgar la función de creador de tokens de cuenta de servicio a las siguientes cuentas de servicio administradas por Google en tu cuenta de servicio administrada por el usuario:

    1. Cuenta de servicio predeterminada de Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com)
    2. Agente de servicio de Cloud Composer (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com)

¿Qué sigue?