Airflow Configuration
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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:
access_control_allow_headers
: Αυτό υποδεικνύει τους επιτρεπόμενους κεφαλίδες για CORS
access_control_allow_methods
: Αυτό υποδεικνύει τις επιτρεπόμενες μεθόδους για CORS
access_control_allow_origins
: Αυτό υποδεικνύει τις επιτρεπόμενες προελεύσεις για CORS
auth_backend
: Σύμφωνα με τα έγγραφα μερικές επιλογές μπορούν να είναι σε εφαρμογή για να ρυθμίσουν ποιος μπορεί να έχει πρόσβαση στο API:
airflow.api.auth.backend.deny_all
: Από προεπιλογή κανείς δεν μπορεί να έχει πρόσβαση στο API
airflow.api.auth.backend.default
: Όλοι μπορούν να έχουν πρόσβαση χωρίς αυθεντικοποίηση
airflow.api.auth.backend.kerberos_auth
: Για να ρυθμίσετε αυθεντικοποίηση kerberos
airflow.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
password
: Κωδικός πρόσβασης Atlas
username
: Όνομα χρήστη Atlas
flower_basic_auth
: Διαπιστευτήρια (user1:password1,user2:password2)
result_backend
: URL Postgres που μπορεί να περιέχει διαπιστευτήρια.
ssl_cacert
: Διαδρομή προς το cacert
ssl_cert
: Διαδρομή προς το πιστοποιητικό
ssl_key
: Διαδρομή προς το κλειδί
dag_discovery_safe_mode
: Ενεργοποιημένο από προεπιλογή. Κατά την ανακάλυψη DAGs, αγνοήστε οποιαδήποτε αρχεία που δεν περιέχουν τις συμβολοσειρές DAG
και airflow
.
fernet_key
: Κλειδί για την αποθήκευση κρυπτογραφημένων μεταβλητών (συμμετρικό)
hide_sensitive_var_conn_fields
: Ενεργοποιημένο από προεπιλογή, κρύβει ευαίσθητες πληροφορίες συνδέσεων.
security
: Ποιο μοντέλο ασφάλειας να χρησιμοποιηθεί (για παράδειγμα kerberos)
tls_ca
: Διαδρομή προς ca
tls_cert
: Διαδρομή προς το πιστοποιητικό
tls_key
: Διαδρομή προς το κλειδί tls
ccache
: Διαδρομή προς το αρχείο ccache
forwardable
: Ενεργοποιημένο από προεπιλογή
google_key_path
: Διαδρομή προς τα GCP JSON creds.
backend
: Πλήρες όνομα κλάσης του backend μυστικών για ενεργοποίηση
backend_kwargs
: Η παράμετρος backend_kwargs φορτώνεται σε ένα λεξικό και περνάται στο init της κλάσης backend μυστικών.
smtp_password
: Κωδικός πρόσβασης SMTP
smtp_user
: Χρήστης SMTP
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 καθορίζεται στο αρχείο webserver_config.py
και είναι ρυθμισμένη ως
Που σημαίνει ότι η αυθεντικοποίηση ελέγχεται σε σχέση με τη βάση δεδομένων. Ωστόσο, είναι δυνατές και άλλες ρυθμίσεις όπως
Για να αφήσετε την αυθεντικοποίηση σε τρίτες υπηρεσίες.
Ωστόσο, υπάρχει επίσης μια επιλογή να επιτρέψετε την πρόσβαση σε ανώνυμους χρήστες, ρυθμίζοντας την ακόλουθη παράμετρο στο επιθυμητό ρόλο:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)