Airflow Configuration
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Configuration File
Apache Airflow δημιουργεί ένα config file σε όλες τις μηχανές airflow που ονομάζεται airflow.cfg
στον φάκελο του χρήστη airflow. Αυτό το config file περιέχει πληροφορίες ρύθμισης και μπορεί να περιέχει ενδιαφέρουσες και ευαίσθητες πληροφορίες.
Υπάρχουν δύο τρόποι για να αποκτήσετε πρόσβαση σε αυτό το αρχείο: Με την παραβίαση κάποιας μηχανής airflow ή με την πρόσβαση στην web κονσόλα.
Σημειώστε ότι οι τιμές μέσα στο config file μπορεί να μην είναι οι χρησιμοποιούμενες, καθώς μπορείτε να τις αντικαταστήσετε ρυθμίζοντας μεταβλητές περιβάλλοντος όπως AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
.
Αν έχετε πρόσβαση στο config file στον web server, μπορείτε να ελέγξετε την πραγματική τρέχουσα ρύθμιση στην ίδια σελίδα που εμφανίζεται το config. Αν έχετε πρόσβαση σε κάποια μηχανή μέσα στο περιβάλλον airflow, ελέγξτε το περιβάλλον.
Ορισμένες ενδιαφέρουσες τιμές για έλεγχο κατά την ανάγνωση του config file:
[api]
access_control_allow_headers
: Αυτό υποδεικνύει τους επιτρεπόμενους κεφαλίδες για CORSaccess_control_allow_methods
: Αυτό υποδεικνύει τις επιτρεπόμενες μεθόδους για CORSaccess_control_allow_origins
: Αυτό υποδεικνύει τις επιτρεπόμενες προελεύσεις για CORSauth_backend
: Σύμφωνα με τα έγγραφα μερικές επιλογές μπορούν να είναι σε εφαρμογή για να ρυθμίσουν ποιος μπορεί να έχει πρόσβαση στο API:airflow.api.auth.backend.deny_all
: Από προεπιλογή κανείς δεν μπορεί να έχει πρόσβαση στο APIairflow.api.auth.backend.default
: Όλοι μπορούν να έχουν πρόσβαση χωρίς αυθεντικοποίησηairflow.api.auth.backend.kerberos_auth
: Για να ρυθμίσετε αυθεντικοποίηση kerberosairflow.api.auth.backend.basic_auth
: Για βασική αυθεντικοποίησηairflow.composer.api.backend.composer_auth
: Χρησιμοποιεί την αυθεντικοποίηση composers (GCP) (από εδώ).composer_auth_user_registration_role
: Αυτό υποδεικνύει τον ρόλο που θα αποκτήσει ο χρήστης composer μέσα στο airflow (Op από προεπιλογή).Μπορείτε επίσης να δημιουργήσετε τη δική σας μέθοδο αυθεντικοποίησης με python.
google_key_path
: Διαδρομή προς το κλειδί υπηρεσίας GCP
[atlas]
password
: Κωδικός πρόσβασης Atlasusername
: Όνομα χρήστη Atlas
[celery]
flower_basic_auth
: Διαπιστευτήρια (user1:password1,user2:password2)result_backend
: URL Postgres που μπορεί να περιέχει διαπιστευτήρια.ssl_cacert
: Διαδρομή προς το cacertssl_cert
: Διαδρομή προς το πιστοποιητικόssl_key
: Διαδρομή προς το κλειδί
[core]
dag_discovery_safe_mode
: Ενεργοποιημένο από προεπιλογή. Κατά την ανακάλυψη DAGs, αγνοήστε οποιαδήποτε αρχεία που δεν περιέχουν τις συμβολοσειρέςDAG
καιairflow
.fernet_key
: Κλειδί για την αποθήκευση κρυπτογραφημένων μεταβλητών (συμμετρικό)hide_sensitive_var_conn_fields
: Ενεργοποιημένο από προεπιλογή, κρύβει ευαίσθητες πληροφορίες συνδέσεων.security
: Ποιο μοντέλο ασφάλειας να χρησιμοποιηθεί (για παράδειγμα kerberos)
[dask]
tls_ca
: Διαδρομή προς catls_cert
: Διαδρομή προς το πιστοποιητικόtls_key
: Διαδρομή προς το κλειδί tls
[kerberos]
ccache
: Διαδρομή προς το αρχείο ccacheforwardable
: Ενεργοποιημένο από προεπιλογή
[logging]
google_key_path
: Διαδρομή προς τα GCP JSON creds.
[secrets]
backend
: Πλήρες όνομα κλάσης του backend μυστικών για ενεργοποίησηbackend_kwargs
: Η παράμετρος backend_kwargs φορτώνεται σε ένα λεξικό και περνάται στο init της κλάσης backend μυστικών.
[smtp]
smtp_password
: Κωδικός πρόσβασης SMTPsmtp_user
: Χρήστης SMTP
[webserver]
cookie_samesite
: Από προεπιλογή είναι Lax, οπότε είναι ήδη η πιο αδύναμη δυνατή τιμήcookie_secure
: Ρυθμίστε τη σημαία ασφαλείας στο cookie συνεδρίαςexpose_config
: Από προεπιλογή είναι False, αν είναι true, το config μπορεί να διαβαστεί από την web κονσόλαexpose_stacktrace
: Από προεπιλογή είναι True, θα δείξει python tracebacks (πιθανώς χρήσιμο για έναν επιτιθέμενο)secret_key
: Αυτό είναι το κλειδί που χρησιμοποιείται από το flask για να υπογράψει τα cookies (αν έχετε αυτό μπορείτε να παριστάνετε οποιονδήποτε χρήστη στο Airflow)web_server_ssl_cert
: Διαδρομή προς το SSL πιστοποιητικόweb_server_ssl_key
: Διαδρομή προς το SSL Κλειδίx_frame_enabled
: Η προεπιλογή είναι True, οπότε από προεπιλογή η κλοπή κλικ δεν είναι δυνατή
Web Authentication
Από προεπιλογή η web authentication καθορίζεται στο αρχείο webserver_config.py
και είναι ρυθμισμένη ως
Που σημαίνει ότι η αυθεντικοποίηση ελέγχεται σε σχέση με τη βάση δεδομένων. Ωστόσο, είναι δυνατές και άλλες ρυθμίσεις όπως
Για να αφήσετε την αυθεντικοποίηση σε τρίτες υπηρεσίες.
Ωστόσο, υπάρχει επίσης μια επιλογή να επιτρέψετε την πρόσβαση σε ανώνυμους χρήστες, ρυθμίζοντας την ακόλουθη παράμετρο στο επιθυμητό ρόλο:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated