Airflow Configuration
Archivo de Configuración
Apache Airflow genera un archivo de configuración en todas las máquinas de airflow llamado airflow.cfg
en el directorio home del usuario de airflow. Este archivo de configuración contiene información de configuración y puede contener información interesante y sensible.
Hay dos formas de acceder a este archivo: Comprometiendo alguna máquina de airflow, o accediendo a la consola web.
Ten en cuenta que los valores dentro del archivo de configuración pueden no ser los utilizados, ya que puedes sobrescribirlos configurando variables de entorno como AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
Si tienes acceso al archivo de configuración en el servidor web, puedes verificar la configuración real en ejecución en la misma página donde se muestra la configuración. Si tienes acceso a alguna máquina dentro del entorno de airflow, verifica el entorno.
Algunos valores interesantes para verificar al leer el archivo de configuración:
[api]
access_control_allow_headers
: Esto indica los encabezados permitidos para CORSaccess_control_allow_methods
: Esto indica los métodos permitidos para CORSaccess_control_allow_origins
: Esto indica los orígenes permitidos para CORSauth_backend
: Según la documentación hay algunas opciones que se pueden configurar para determinar quién puede acceder a la API:airflow.api.auth.backend.deny_all
: Por defecto, nadie puede acceder a la APIairflow.api.auth.backend.default
: Todos pueden acceder sin autenticaciónairflow.api.auth.backend.kerberos_auth
: Para configurar autenticación kerberosairflow.api.auth.backend.basic_auth
: Para autenticación básicaairflow.composer.api.backend.composer_auth
: Utiliza autenticación de compositores (GCP) (de aquí).composer_auth_user_registration_role
: Esto indica el rol que el usuario de composer obtendrá dentro de airflow (Op por defecto).También puedes crear tu propio método de autenticación con python.
google_key_path
: Ruta a la clave de cuenta de servicio de GCP
[atlas]
password
: Contraseña de Atlasusername
: Nombre de usuario de Atlas
[celery]
flower_basic_auth
: Credenciales (user1:password1,user2:password2)result_backend
: URL de Postgres que puede contener credenciales.ssl_cacert
: Ruta al cacertssl_cert
: Ruta al certssl_key
: Ruta a la clave
[core]
dag_discovery_safe_mode
: Habilitado por defecto. Al descubrir DAGs, ignora cualquier archivo que no contenga las cadenasDAG
yairflow
.fernet_key
: Clave para almacenar variables encriptadas (simétrica)hide_sensitive_var_conn_fields
: Habilitado por defecto, oculta información sensible de las conexiones.security
: Qué módulo de seguridad usar (por ejemplo, kerberos)
[dask]
tls_ca
: Ruta al catls_cert
: Ruta al certtls_key
: Ruta a la clave tls
[kerberos]
ccache
: Ruta al archivo ccacheforwardable
: Habilitado por defecto
[logging]
google_key_path
: Ruta a las credenciales JSON de GCP.
[secrets]
backend
: Nombre completo de la clase del backend de secretos a habilitarbackend_kwargs
: El parámetro backend_kwargs se carga en un diccionario y se pasa a init de la clase del backend de secretos.
[smtp]
smtp_password
: Contraseña SMTPsmtp_user
: Usuario SMTP
[webserver]
cookie_samesite
: Por defecto es Lax, por lo que ya es el valor más débil posiblecookie_secure
: Establecer bandera segura en la cookie de sesiónexpose_config
: Por defecto es False, si es verdadero, la configuración puede ser leída desde la consola webexpose_stacktrace
: Por defecto es True, mostrará tracebacks de python (potencialmente útil para un atacante)secret_key
: Esta es la clave utilizada por flask para firmar las cookies (si tienes esto puedes suplantar a cualquier usuario en Airflow)web_server_ssl_cert
: Ruta al certificado SSLweb_server_ssl_key
: Ruta a la clave SSLx_frame_enabled
: Por defecto es True, por lo que por defecto el clickjacking no es posible
Autenticación Web
Por defecto, la autenticación web se especifica en el archivo webserver_config.py
y se configura como
Lo que significa que la autenticación se verifica contra la base de datos. Sin embargo, otras configuraciones son posibles como
Para dejar la autenticación a servicios de terceros.
Sin embargo, también hay una opción para permitir el acceso a usuarios anónimos, configurando el siguiente parámetro al rol deseado:
Last updated