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 home del usuario de airflow. Este archivo de configuración contiene información importante y puede contener información sensible.
Hay dos maneras 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 que se usan, ya que puedes sobrescribirlos estableciendo 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, revisa el entorno.
Algunos valores interesantes para revisar 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 varias opciones disponibles para configurar 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 la autenticación kerberosairflow.api.auth.backend.basic_auth
: Para autenticación básicaairflow.composer.api.backend.composer_auth
: Usa la autenticación de composer (GCP) (desde aquí).composer_auth_user_registration_role
: Esto indica el rol que el usuario de composer tendrá 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
: Usuario de Atlas
[celery]
flower_basic_auth
: Credenciales (usuario1:contraseña1,usuario2:contraseña2)result_backend
: URL de Postgres que puede contener credenciales.ssl_cacert
: Ruta al cacertssl_cert
: Ruta al certificadossl_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 cifradas (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 certificadotls_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 para habilitarbackend_kwargs
: El parámetro backend_kwargs se carga en un diccionario y se pasa al 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
: Establece la bandera segura en la cookie de sesiónexpose_config
: Por defecto es Falso, si es verdadero, la configuración se puede leer desde la consola webexpose_stacktrace
: Por defecto es Verdadero, mostrará rastreos de python (potencialmente útiles 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 Verdadero, 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 está configurada como
Lo que significa que la autenticación se verifica contra la base de datos. Sin embargo, otras configuraciones son posibles como
Para delegar la autenticación a servicios de terceros.
Sin embargo, también existe la opción de permitir el acceso a usuarios anónimos, estableciendo el siguiente parámetro al rol deseado:
Last updated