Airflow Configuration
Konfigurationsdatei
Apache Airflow generiert eine Konfigurationsdatei auf allen Airflow-Maschinen namens airflow.cfg
im Home-Verzeichnis des Airflow-Benutzers. Diese Konfigurationsdatei enthält Konfigurationsinformationen und kann interessante und sensible Informationen enthalten.
Es gibt zwei Möglichkeiten, auf diese Datei zuzugreifen: Durch Kompromittierung einer Airflow-Maschine oder Zugriff auf die Webkonsole.
Beachten Sie, dass die Werte innerhalb der Konfigurationsdatei möglicherweise nicht die verwendeten Werte sind, da Sie sie überschreiben können, indem Sie Umgebungsvariablen wie AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
setzen.
Wenn Sie Zugriff auf die Konfigurationsdatei im Webserver haben, können Sie die tatsächliche laufende Konfiguration auf derselben Seite überprüfen, auf der die Konfiguration angezeigt wird. Wenn Sie Zugriff auf eine Maschine innerhalb der Airflow-Umgebung haben, überprüfen Sie die Umgebung.
Einige interessante Werte, die beim Lesen der Konfigurationsdatei überprüft werden sollten:
[api]
access_control_allow_headers
: Dies gibt die erlaubten Header für CORS anaccess_control_allow_methods
: Dies gibt die erlaubten Methoden für CORS anaccess_control_allow_origins
: Dies gibt die erlaubten Ursprünge für CORS anauth_backend
: Gemäß der Dokumentation können einige Optionen konfiguriert werden, wer auf die API zugreifen kann:airflow.api.auth.backend.deny_all
: Standardmäßig kann niemand auf die API zugreifenairflow.api.auth.backend.default
: Jeder kann darauf ohne Authentifizierung zugreifenairflow.api.auth.backend.kerberos_auth
: Zur Konfiguration der Kerberos-Authentifizierungairflow.api.auth.backend.basic_auth
: Für die grundlegende Authentifizierungairflow.composer.api.backend.composer_auth
: Verwendet die Komponistenauthentifizierung (GCP) (von hier).composer_auth_user_registration_role
: Dies gibt die Rolle an, die der Komponistenbenutzer in Airflow erhält (Op standardmäßig).Sie können auch Ihre eigene Authentifizierungsmethode mit Python erstellen.
google_key_path
: Pfad zum GCP-Dienstkonto-Schlüssel
[atlas]
password
: Atlas-Passwortusername
: Atlas-Benutzername
[celery]
flower_basic_auth
: Anmeldeinformationen (Benutzer1:Passwort1,Benutzer2:Passwort2)result_backend
: Postgres-URL, die Anmeldeinformationen enthalten kann.ssl_cacert
: Pfad zum CACertssl_cert
: Pfad zum Zertifikatssl_key
: Pfad zum Schlüssel
[core]
dag_discovery_safe_mode
: Standardmäßig aktiviert. Beim Entdecken von DAGs werden Dateien ignoriert, die die ZeichenfolgenDAG
undairflow
nicht enthalten.fernet_key
: Schlüssel zum Speichern verschlüsselter Variablen (symmetrisch)hide_sensitive_var_conn_fields
: Standardmäßig aktiviert, versteckt sensible Informationen von Verbindungen.security
: Welches Sicherheitsmodul verwendet werden soll (z. B. Kerberos)
[dask]
tls_ca
: Pfad zum CAtls_cert
: Teil zum Zertifikattls_key
: Teil zum TLS-Schlüssel
[kerberos]
ccache
: Pfad zur CCache-Dateiforwardable
: Standardmäßig aktiviert
[logging]
google_key_path
: Pfad zu GCP JSON-Credentials.
[secrets]
backend
: Vollständiger Klassenname des Secrets-Backends, um es zu aktivierenbackend_kwargs
: Der backend_kwargs-Parameter wird in ein Dictionary geladen und an init der Secrets-Backend-Klasse übergeben.
[smtp]
smtp_password
: SMTP-Passwortsmtp_user
: SMTP-Benutzer
[webserver]
cookie_samesite
: Standardmäßig ist es Lax, daher ist es bereits der schwächstmögliche Wertcookie_secure
: Setzt das Sicherheitsflag auf das Sitzungscookieexpose_config
: Standardmäßig ist es False, wenn true, kann die Konfiguration aus der Webkonsole gelesen werdenexpose_stacktrace
: Standardmäßig ist es True, es zeigt Python-Tracebacks an (potenziell nützlich für einen Angreifer)secret_key
: Dies ist der Schlüssel, den Flask zum Signieren der Cookies verwendet (wenn Sie diesen haben, können Sie jeden Benutzer in Airflow darstellen)web_server_ssl_cert
: Pfad zum SSL-Zertifikatweb_server_ssl_key
: Pfad zum SSL-Schlüsselx_frame_enabled
: Standardmäßig True, daher ist Clickjacking standardmäßig nicht möglich
Web-Authentifizierung
Standardmäßig wird die Web-Authentifizierung in der Datei webserver_config.py
angegeben und konfiguriert als
Was bedeutet, dass die Authentifizierung gegen die Datenbank überprüft wird. Es sind jedoch auch andere Konfigurationen möglich, wie z.B.
Um die Authentifizierung an Drittanbieterdienste zu überlassen.
Es gibt jedoch auch die Möglichkeit, anonymen Benutzern Zugriff zu gewähren, indem der folgende Parameter auf die gewünschte Rolle gesetzt wird:
Last updated