Usa el 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. Primero, los usuarios deben autenticarse en Identity-Aware Proxy (IAP) y tener los permisos de IAM adecuados antes de que puedan acceder a la IU web.

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

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

Habilitar la IU de RBAC

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

Usar la IU de RBAC

Desde la IU de RBAC, se puede configurar el control de acceso mediante los vínculos que aparecen 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 del usuario como la plantilla para todas las funciones personalizadas. Esto significa que Airflow copiará continuamente los permisos de la función del usuario a todas las funciones personalizadas, excepto los permisos de all_dags.

El RBAC de Airflow 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 en el RBAC de Airflow.

Registra usuarios en la IU de RBAC

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

Durante el registro, se les 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 mediante la anulación de 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.

Los pasos siguientes se recomiendan 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 beta 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 de Compute Engine en la que 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 los usuarios nuevos, lo que incluye otorgar la función Admin a otros usuarios.

Airflow 1

Airflow 1 no está disponible en Cloud Composer 2.

Quita usuarios

Si borras a un usuario de RBAC, no se revocará el acceso de ese usuario, ya que se volverá a registrar automáticamente 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 acceso en IAM en 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 quita todos los permisos para la IU de Airflow.

Configura los permisos a nivel del DAG

Puede configurar permisos de nivel de DAG para las funciones personalizadas a fin de especificar qué DAG son visibles para qué grupos de usuarios.

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

  1. El administrador crea funciones vacías para agrupar DAG.
  2. El administrador asigna funciones adecuadas a los usuarios
  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 mediante las propiedades del DAG o desde la IU de RBAC.

Asigna DAG a funciones en propiedades de DAG

El desarrollador del DAG puede establecer el parámetro de DAG access_control en los DAG que sube, 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 deben ejecutar el comando de Airflow sync_perm para aplicar la nueva configuración de 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 correspondientes en la IU de Airflow.

¿Qué sigue?