Airflow Configuration
Reading time: 5 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
Configuration File
Apache Airflow सभी एयरफ्लो मशीनों में एक config file उत्पन्न करता है जिसे airflow.cfg
कहा जाता है, जो एयरफ्लो उपयोगकर्ता के होम में होता है। यह config file कॉन्फ़िगरेशन जानकारी रखती है और दिलचस्प और संवेदनशील जानकारी हो सकती है।
इस फ़ाइल तक पहुँचने के दो तरीके हैं: किसी एयरफ्लो मशीन को समझौता करके, या वेब कंसोल तक पहुँचकर।
ध्यान दें कि config file के अंदर के मान वास्तव में उपयोग किए गए नहीं हो सकते, क्योंकि आप उन्हें env वेरिएबल सेट करके ओवरराइट कर सकते हैं जैसे AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
।
यदि आपके पास वेब सर्वर में config file तक पहुँच है, तो आप उसी पृष्ठ पर वास्तविक चल रही कॉन्फ़िगरेशन की जांच कर सकते हैं जहाँ config प्रदर्शित होता है।
यदि आपके पास एयरफ्लो वातावरण के अंदर किसी मशीन तक पहुँच है, तो पर्यावरण की जांच करें।
config file पढ़ते समय जांचने के लिए कुछ दिलचस्प मान:
[api]
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
: केर्बेरोस प्रमाणीकरण कॉन्फ़िगर करने के लिएairflow.api.auth.backend.basic_auth
: बेसिक प्रमाणीकरण के लिएairflow.composer.api.backend.composer_auth
: कंपोज़र्स प्रमाणीकरण (GCP) का उपयोग करता है (से यहाँ).composer_auth_user_registration_role
: यह भूमिका को इंगित करता है जो कंपोज़र उपयोगकर्ता को एयरफ्लो के अंदर मिलेगी (Op डिफ़ॉल्ट रूप से)।- आप अपना खुद का प्रमाणीकरण विधि भी बना सकते हैं पायथन के साथ।
google_key_path
: GCP सेवा खाता कुंजी का पथ
[atlas]
password
: एटलस पासवर्डusername
: एटलस उपयोगकर्ता नाम
[celery]
flower_basic_auth
: क्रेडेंशियल (user1:password1,user2:password2)result_backend
: पोस्टग्रेस यूआरएल जिसमें क्रेडेंशियल हो सकते हैं।ssl_cacert
: cacert का पथssl_cert
: प्रमाणपत्र का पथssl_key
: कुंजी का पथ
[core]
dag_discovery_safe_mode
: डिफ़ॉल्ट रूप से सक्षम। DAGs की खोज करते समय, किसी भी फ़ाइल को अनदेखा करें जिसमेंDAG
औरairflow
के स्ट्रिंग्स नहीं हैं।fernet_key
: एन्क्रिप्टेड वेरिएबल्स को स्टोर करने के लिए कुंजी (संपूर्ण)hide_sensitive_var_conn_fields
: डिफ़ॉल्ट रूप से सक्षम, कनेक्शनों की संवेदनशील जानकारी छिपाएँ।security
: किस सुरक्षा मॉड्यूल का उपयोग करना है (उदाहरण के लिए केर्बेरोस)
[dask]
tls_ca
: ca का पथtls_cert
: प्रमाणपत्र का भागtls_key
: tls कुंजी का भाग
[kerberos]
ccache
: ccache फ़ाइल का पथforwardable
: डिफ़ॉल्ट रूप से सक्षम
[logging]
google_key_path
: GCP JSON क्रेड्स का पथ।
[secrets]
backend
: सक्रिय करने के लिए रहस्यों के बैकएंड का पूरा वर्ग नामbackend_kwargs
: backend_kwargs पैरामीटर को एक शब्दकोश में लोड किया जाता है और रहस्यों के बैकएंड वर्ग के init में पास किया जाता है।
[smtp]
smtp_password
: SMTP पासवर्डsmtp_user
: SMTP उपयोगकर्ता
[webserver]
cookie_samesite
: डिफ़ॉल्ट रूप से यह Lax है, इसलिए यह पहले से ही सबसे कमजोर संभव मान हैcookie_secure
: सत्र कुकी पर सुरक्षित ध्वज सेट करेंexpose_config
: डिफ़ॉल्ट रूप से False है, यदि सत्य है, तो config को वेब कंसोल से पढ़ा जा सकता हैexpose_stacktrace
: डिफ़ॉल्ट रूप से यह सत्य है, यह पायथन ट्रेसबैक दिखाएगा (संभावित रूप से हमलावर के लिए उपयोगी)secret_key
: यह कुंजी है जिसका उपयोग फ्लास्क कुकीज़ पर हस्ताक्षर करने के लिए किया जाता है (यदि आपके पास यह है तो आप एयरफ्लो में किसी भी उपयोगकर्ता का अनुकरण कर सकते हैं)web_server_ssl_cert
: SSL प्रमाणपत्र का पथweb_server_ssl_key
: SSL कुंजी का पथx_frame_enabled
: डिफ़ॉल्ट सत्य है, इसलिए डिफ़ॉल्ट रूप से क्लिकजैकिंग संभव नहीं है
Web Authentication
डिफ़ॉल्ट रूप से वेब प्रमाणीकरण फ़ाइल webserver_config.py
में निर्दिष्ट है और इसे इस प्रकार कॉन्फ़िगर किया गया है
AUTH_TYPE = AUTH_DB
जिसका मतलब है कि प्रमाणीकरण डेटाबेस के खिलाफ जांचा जाता है। हालाँकि, अन्य कॉन्फ़िगरेशन संभव हैं जैसे
AUTH_TYPE = AUTH_OAUTH
तीसरे पक्ष की सेवाओं को प्रमाणीकरण छोड़ने के लिए।
हालांकि, गुमनाम उपयोगकर्ताओं को पहुंच की अनुमति देने का एक विकल्प भी है, निम्नलिखित पैरामीटर को चाहे गए भूमिका पर सेट करना:
AUTH_ROLE_PUBLIC = 'Admin'
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।