Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se describen diferentes mecanismos de control de acceso para la IU de Airflow y la IU de DAG. Puedes usar estos mecanismos, además del control de acceso que proporciona IAM para separar usuarios en el IU de Airflow y IU de DAG de tu entorno.
Descripción general del control de acceso a la IU de Airflow en Cloud Composer
Acceso a la IU de Airflow y a la IU de DAG y la visibilidad de los datos y las operaciones en esas IU se controla en dos niveles en Cloud Composer:
El acceso a las IU de Airflow y de DAG en Cloud Composer es controlados por IAM.
Si una cuenta no tiene un rol que pueda visualizar entornos de Cloud Composer en tus la IU de Airflow y la IU del DAG no estarán disponibles.
IAM no proporciona información detallada adicional el control de permisos en la IU de Airflow o la IU del DAG.
El modelo de control de acceso de Apache Airflow permite hacer lo siguiente: Reducir la visibilidad en la IU de Airflow y en la IU del DAG según el rol del usuario
El control de acceso de Apache Airflow es una función de Airflow, con su propio modelo de usuarios, roles y permisos, que es diferente del IAM.
El control de acceso de Apache Airflow usa permisos basados en recursos. Todo Airflow
los usuarios con un rol específico de Airflow obtienen los permisos de este rol. Por ejemplo:
Usuarios de Airflow que tienen un rol con el permiso can delete on Connections
Puedes borrar conexiones en la página Conexiones de la IU de Airflow.
También puedes asignar Permisos a nivel del DAG para DAG individuales. Para ejemplo, para que solo los usuarios con un rol específico de Airflow puedan ver un determinado DAG en la IU de Airflow. En Cloud Composer, puedes asignar automáticamente permisos a nivel del DAG según la subcarpeta en la que se encuentra el archivo DAG en la bucket.
Si quieres configurar el acceso para identidades externas federación de identidades de personal, primero otorgar acceso a tu entorno en IAM, como se describe en Otorga roles de IAM a identidades externas sección. Luego, podrás usar el control de acceso a la IU de Airflow como de costumbre. Los usuarios de Airflow para identidades externas usan su identificador principal en su lugar. de la dirección de correo electrónico y que se completen diferentes valores en los campos de registro que las Cuentas de Google.
Antes de comenzar
- El registro de roles por carpeta está disponible en Cloud Composer 2.0.16 y versiones posteriores
Administra los roles de Airflow y la configuración del control de acceso
Los usuarios con el rol de administrador (o equivalente) pueden ver y modificar el control de acceso de la configuración de la IU de Airflow.
En la IU de Airflow, puedes configurar los parámetros de control de acceso desde el menú Seguridad. Para obtener más información sobre el control de acceso de Airflow permisos disponibles y roles predeterminados, consulta la Documentación del control de acceso a la IU de Airflow.
Airflow mantiene su propia lista de usuarios. Usuarios con el administrador usuario (o equivalente) pueden ver la lista de usuarios que abrieron la IU de Airflow de un entorno y se registraron en Airflow. Esta lista también incluye a los usuarios un administrador realizó el registro previo manualmente, como se describe en la siguiente sección.
Registra usuarios en la IU de Airflow
Los usuarios nuevos se registran automáticamente cuando abren la IU de Airflow de un Entorno de Cloud Composer por primera vez.
Durante el registro, se otorga a los usuarios el rol especificado en el
[webserver]rbac_user_registration_role
Opción de configuración de Airflow. Puedes
controlar el rol de los usuarios recién registrados anulando este
Opción de configuración de Airflow con un valor diferente.
Si no se especifica, el rol de registro predeterminado es Op
en entornos con
Airflow 2.
Se recomiendan los siguientes pasos para crear una configuración de rol básico para la IU de Airflow:
Los administradores del entorno abren la IU de Airflow para la IU en un entorno de nube.
Otorga a las cuentas de administrador la función
Admin
. La función predeterminada para las cuentas nuevas en entornos con Airflow 2 esOp
. Para asignar el rolAdmin
, ejecuta el siguiente comando: Comando de la CLI de Airflow congcloud
:gcloud composer environments run ENVIRONMENT_NAME \ --location LOCATION \ users add-role -- -e USER_EMAIL -r Admin
Reemplaza lo siguiente:
ENVIRONMENT_NAME
por el nombre del entorno.LOCATION
por la región en la que se encuentra el entornoUSER_EMAIL
por el correo electrónico de una cuenta de usuario.
Los administradores ahora pueden configurar el control de acceso para usuarios nuevos, incluida la asignación de la función
Admin
a otros usuarios.
Usuarios con registro previo
Los usuarios se registran automáticamente con los IDs numéricos de las cuentas de usuario de Google (no direcciones de correo electrónico) como nombres de usuario. También puedes realizar el registro previo de un usuario de forma manual y asignarles un rol agregando un registro de usuario con el campo de nombre de usuario configurado a la dirección de correo electrónico principal del usuario. Cuando un usuario con una dirección de correo electrónico hacer coincidir el registro de un usuario con registro previo en la IU de Airflow por primera vez su nombre de usuario se reemplaza por el ID de usuario actual (en ese momento, del primer acceso) identificados por su dirección de correo electrónico. La relación entre Identidades de Google (direcciones de correo electrónico) y cuentas de usuario (IDs de usuario) no se solucionó. Los Grupos de Google no se pueden registrar previamente.
Para realizar el registro previo de los usuarios, puedes usar la IU de Airflow o ejecutar un comando de la CLI de Airflow a través de Google Cloud CLI.
Para realizar el registro previo de un usuario con un rol personalizado a través de Google Cloud CLI, sigue estos pasos: Ejecuta el siguiente comando de la CLI de Airflow:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
users create -- \
-r ROLE \
-e USER_EMAIL \
-u USER_EMAIL \
-f FIRST_NAME \
-l LAST_NAME \
--use-random-password # The password value is required, but is not used
Reemplaza lo siguiente:
ENVIRONMENT_NAME
: Es el nombre del entorno.LOCATION
: Es la región en la que se encuentra el entorno.ROLE
: Es un rol de Airflow para el usuario, por ejemplo,Op
.USER_EMAIL
: Es la dirección de correo electrónico del usuario.FIRST_NAME
yLAST_NAME
: Nombre y apellido del usuario
Ejemplo:
gcloud composer environments run example-environment \
--location us-central1 \
users create -- \
-r Op \
-e "example-user@example.com" \
-u "example-user@example.com" \
-f "Name" \
-l "Surname" \
--use-random-password
Quitar usuarios
Borrar un usuario de Airflow no revoca el acceso de ese usuario, ya que este
se volverán a registrar automáticamente la próxima vez que accedan a la IU de Airflow. Para
revocar el acceso a toda la IU de Airflow y quitar composer.environments.get
permiso de su política de permiso para tu proyecto.
También puedes cambiar el rol del usuario a Público, lo que mantiene del registro del usuario, pero quita todos los permisos de la IU de Airflow.
Configura permisos a nivel del DAG automáticamente
La función Registro de roles por carpeta crea automáticamente una
rol personalizado de Airflow para cada subcarpeta
directamente en la carpeta /dags
y otorga a este rol acceso a nivel del DAG a todos
DAG que tienen su archivo fuente almacenado en esa subcarpeta respectiva Esta
Optimiza la administración de los roles personalizados de Airflow y su acceso a los DAG.
Cómo funciona el registro de roles por carpeta
El registro de roles por carpeta es una forma automatizada de configurar roles y sus permisos a nivel del DAG. Por lo tanto, puede causar conflictos con otros mecanismos de Airflow que otorgan permisos a nivel del DAG:
- Cómo asignar permisos de DAG a las funciones de forma manual.
- Asigna DAG a funciones a través de la propiedad
access_control
en un DAG.
Para evitar estos conflictos, también se habilita el registro de roles por carpeta cambia el comportamiento de estos mecanismos.
En Airflow 2:
- Puedes otorgar acceso al DAG a los roles a través de la propiedad
access_control
definidos en el código fuente del DAG. - Otorga permisos de DAG de forma manual (a través de la IU de Airflow o gcloud CLI) pueden causar conflictos. Por ejemplo, si otorgar permisos a nivel del DAG de forma manual a un rol por carpeta, los permisos se pueden quitar o reemplazar cuando el encargado que sincroniza un DAG. Recomendamos no otorgar permisos de DAG de forma manual.
- Los roles tienen una unión de permisos de acceso al DAG registrados a través de cada carpeta
Registro de roles y definido en la propiedad
access_control
de el DAG.
Los DAG ubicados directamente en la carpeta de nivel superior /dags
no se asignan automáticamente a
cualquier rol por carpeta. No se puede acceder a ellas con una función por carpeta. Otra opción
roles como Administrador, Operaciones, Usuario o cualquier rol personalizado al que se le otorguen permisos
y acceder a ellos mediante la IU de Airflow y la IU del DAG.
Si subes DAG a subcarpetas con nombres que coinciden con los roles integrados de Airflow
y roles creados por Cloud Composer, luego los permisos
estas subcarpetas siguen asignadas a estos roles. Por ejemplo, subir un
El DAG de la carpeta /dags/Admin
le otorga permisos al administrador
en el área de la seguridad en la nube. Los roles integrados de Airflow incluyen los de administrador, operativo, usuario, visualizador y público.
Cloud Composer crea NoDags y UserNoDags después de la
Se habilitó la función Registro de roles.
Airflow realiza el registro de roles por carpeta cuando procesa DAG
en el programador de Airflow. Si hay más de cien DAG en tu
entorno, es posible que veas un
de aumento en el tiempo de análisis del DAG.
Si este es el caso, te recomendamos
usar más memoria y CPU para los programadores. Tú
puede aumentar el valor de la clase [scheduler]parsing_processes
de Airflow
opción de configuración.
Asigna automáticamente DAG a funciones por carpeta
Para asignar automáticamente DAG a funciones por carpeta, sigue estos pasos:
Anula la siguiente opción de configuración de Airflow:
Sección Clave Valor webserver
rbac_autoregister_per_folder_roles
True
Cambia el rol de registro de usuario nuevo a uno sin acceso a ningún DAG. De esta manera, los usuarios nuevos no tendrán acceso a ningún DAG hasta que asigna a sus cuentas un rol que tiene permisos para DAG específicos.
UserNoDags es un rol creado por Cloud Composer solo cuando Se habilitó la función de registro de roles por carpeta. Es un equivalente al Rol de usuario, pero sin acceso a ningún DAG.
Anula la siguiente opción de configuración de Airflow:
Sección Clave Valor webserver
rbac_user_registration_role
UserNoDags
Asegúrate de que los usuarios estén registrados en Airflow.
Usa uno de los siguientes enfoques para asignar roles a los usuarios:
- Permitir que Airflow cree automáticamente roles según las subcarpetas de DAG y, luego, asignar usuarios a esos roles.
- Crea previamente los roles vacíos para las subcarpetas de los DAG, con los nombres de los roles que coincidan
el nombre de una subcarpeta y, luego, asigna usuarios a esos roles. Por ejemplo:
Para la carpeta
/dags/CustomFolder
, crea un rol llamadoCustomFolder
Sube DAG a subcarpetas con nombres que coincidan con los roles asignados a los usuarios. Estas subcarpetas deben estar ubicadas en la carpeta
/dags
en el en el bucket de tu entorno. Airflow agrega permisos a los DAG de este subcarpeta para que solo los usuarios con el rol correspondiente puedan acceder a ellas a través de la IU de Airflow y la IU del DAG.
Configura permisos a nivel del DAG de forma manual
Puedes configurar Permisos a nivel del DAG para roles personalizados especificar qué DAG son visibles para grupos de usuarios específicos.
Para configurar los permisos a nivel del DAG en la IU de Airflow, sigue estos pasos:
- El administrador crea roles vacíos para agrupar los DAG.
- El administrador asigna roles adecuados a los usuarios.
- El administrador o los usuarios asignan los DAG a las funciones.
- En la IU de Airflow, los usuarios solo pueden ver los DAG asignados a su grupo.
Los DAG se pueden asignar a roles a través de las propiedades del DAG IU de Airflow.
Asigna DAG a roles en la IU de Airflow
Un administrador puede asignar los permisos a nivel del DAG de la IU de Airflow.
Esta operación no se admite en la IU del DAG.
Asigna DAG a funciones en propiedades de DAG
Puedes configurar
Parámetro de DAG access_control
en un DAG, que especifica
los roles de agrupación de DAG a los que está asignado el DAG.
En las versiones anteriores a la 2.1.0 de Airflow 2, el administrador, el desarrollador de DAG o un
el proceso automatizado debe ejecutar el comando sync-perm
de Airflow para
aplicar la nueva configuración de control de acceso.
En Airflow 2.1.0 y versiones posteriores, ejecutar este comando ya no es obligatorio, ya que el programador aplica permisos a nivel del DAG cuando analiza un en el DAG.
dag = DAG(
access_control={
'DagGroup': {'can_edit', 'can_read'},
},
...
)
Asigna registros de auditoría en la IU de Airflow a los usuarios
Los registros de auditoría de la IU de Airflow se asignan ID numéricos de las cuentas de usuario de Google. Para Por ejemplo, si un usuario pausa un DAG, se agrega una entrada a los registros.
Puedes ver los registros de auditoría en la página Explorar > Registros de auditoría la IU de Airflow.
Una entrada típica enumera un ID numérico en el campo Owner:
accounts.google.com:NUMERIC_ID
Puedes asignar IDs numéricos a los correos electrónicos de los usuarios en la
Seguridad > página Lista de usuarios. Esta página está disponible para
usuarios con el rol Admin
.
Ten en cuenta que la relación Identidades de Google (direcciones de correo electrónico) y cuentas de usuario (IDs de usuario) no se solucionó.
¿Qué sigue?
- Anula las opciones de configuración de Airflow
- Descripción general de seguridad
- Control de acceso de Cloud Composer