Uso del control de acceso basado en funciones de Airflow en la interfaz web

Cloud Composer 1 | Cloud Composer 2

El acceso a la IU de Airflow en Cloud Composer se controla mediante la administración de identidades y accesos. Los usuarios primero deben autenticarse en Identity‑Aware Proxy (IAP) y tener los permisos de IAM adecuados antes de poder acceder a la IU web.

Sin embargo, una vez que los usuarios acceden a la IU de Airflow, IAM no proporciona ningún control de permisos detallado adicional en la IU de Airflow. Con esta función, puedes habilitar el control de acceso basado en funciones (RBAC) nativo de Airflow detallado en la IU de Airflow.

Ten en cuenta que la IU de RBAC es una característica de Airflow, que cuenta con su propio modelo de usuarios, funciones y permisos, distinto de IAM.

Habilitación de la IU de RBAC

En Cloud Composer 2, la IU de RBAC de Airflow siempre está habilitada.

Uso de la IU de RBAC

Desde la IU de RBAC, se puede configurar el control de acceso con los vínculos que se encuentran en el menú de seguridad. Consulta la documentación de la IU de RBAC de Airflow para obtener más información sobre el modelo de RBAC, los permisos disponibles y las funciones predeterminadas.

Airflow trata la función de usuario como la plantilla para todas las funciones personalizadas. Esto significa que Airflow copiará de forma continua los permisos de la función de usuario a todas las funciones personalizadas, excepto los permisos de all_dags.

Airflow RBAC mantiene su propia lista de usuarios, lo que significa que los usuarios con la función de administrador (o equivalente) pueden ver la lista de usuarios que abrieron esta instancia de la IU de Airflow y se registraron para el RBAC de Airflow.

Registra usuarios en la IU de RBAC

Los usuarios nuevos se registran de forma automática por primera vez cuando abren la IU de RBAC de Airflow asociada a un entorno de Cloud Composer determinado.

Durante el registro, se otorga a los usuarios la función especificada en la opción de configuración de Airflow [webserver]rbac_user_registration_role. Puedes controlar la función de los usuarios registrados recientemente si anulas esta opción de configuración con un valor diferente.

Si no se especifica, la función de registro predeterminada es Op en entornos con Airflow 2.

Se recomiendan los siguientes pasos a fin de crear una configuración de función básica para la IU de RBAC de Airflow:

Airflow 2

  1. Los administradores del entorno visitan la IU de RBAC de Airflow para el entorno recién creado.

  2. Otorga a las cuentas de administrador la función Admin. La función predeterminada para las cuentas nuevas en entornos con Airflow 2 es Op. Para asignar la función Admin, ejecuta el siguiente comando de la CLI de Airflow con gcloud:

      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 donde se encuentra el entorno
    • USER_EMAIL por el correo electrónico de una cuenta de usuario.
  3. Los administradores ahora pueden configurar el control de acceso para usuarios nuevos, incluida la asignación de la función Admin a otros usuarios.

Airflow 1

Airflow 1 no está disponible en Cloud Composer 2.

Quita usuarios

Borrar un usuario del RBAC no revocará el acceso para ese usuario, ya que se volverá a registrar de forma automática la próxima vez que visite la IU de Airflow. Para revocar el acceso a toda la IU de Airflow, quita el permiso composer.environments.get de su política de permisos para tu proyecto. También puedes cambiar la función del usuario en la IU de RBAC a pública, lo que mantendrá el registro del usuario, pero quitará todos los permisos de la IU de Airflow.

Configuración de los permisos a nivel del DAG

Puedes configurar los permisos a nivel del DAG para las funciones personalizadas a fin de especificar qué DAG son visibles según el grupo de usuarios.

Para configurar la separación del DAG en la IU de RBAC de Airflow, sigue estos pasos:

  1. El administrador crea funciones vacías para agrupar los DAG
  2. El administrador asigna usuarios a las funciones adecuadas
  3. El administrador o los usuarios asignan DAG a las funciones
  4. Los usuarios solo pueden ver los DAG en la IU cuyos permisos se asignaron a un grupo al que pertenece ese usuario

Los DAG se pueden asignar a funciones a través de propiedades de DAG o desde la IU de RBAC.

Asigna DAG a funciones en propiedades de DAG

El desarrollador del DAG puede configurar el parámetro de DAG access_control en los DAG que suben y especificar las funciones de agrupación de DAG a las que se asignará el DAG:

dag = DAG(
  access_control={
    'DagGroup': {'can_dag_edit', 'can_dag_read'},
  },
  ...
  )

Luego, el administrador, el desarrollador del DAG o un proceso automatizado debe ejecutar el comando de Airflow sync_perm para aplicar la nueva configuración del control de acceso.

Asigna DAG a funciones en la IU de RBAC

Un administrador también puede asignar los permisos de nivel de DAG deseados a las funciones adecuadas en la IU de Airflow.

Asigna registros de auditoría en la IU de Airflow a los usuarios

Los registros de auditoría en la IU de Airflow se asignan a ID numéricos de cuentas de usuario de Google. Por ejemplo, si un usuario pausa un DAG, se agregará una entrada a los registros.

Puedes ver los registros de auditoría en la página Explorar > Registros de auditoría en la IU de Airflow.

Una entrada en la página Registros de auditoría en Airflow 2
Figure 1. Una entrada en la página Registros de auditoría en Airflow 2

Una entrada típica enumera un ID numérico en el campo Propietario: accounts.google.com:NUMERIC_ID. Puedes mapear los ID numéricos a los correos electrónicos de los usuarios en la página Seguridad (Users Users). Esta página está disponible para los usuarios con la función Admin.

Ten en cuenta que la relación entre las identidades de Google (direcciones de correo electrónico) y las cuentas de usuario (ID de usuario) no es fija.

¿Qué sigue?