Ansible Tower / AWX / Automation controller Security

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

मौलिक जानकारी

एंसिबल टावर या इसका ओपनसोर्स संस्करण AWX को भी जाना जाता है जो एंसिबल का उपयोगकर्ता इंटरफेस, डैशबोर्ड, और REST API के रूप में है। रोल-आधारित पहुंच नियंत्रण, नौकरी की अनुसूचीकरण, और ग्राफिकल इन्वेंटरी प्रबंधन के साथ, आप अपनी एंसिबल बुनियादी संरचना को एक आधुनिक यूआई से प्रबंधित कर सकते हैं। टावर का REST API और कमांड-लाइन इंटरफेस इसे मौजूदा उपकरण और कार्यप्रवाहों में संघटित करना आसान बनाते हैं।

ऑटोमेशन कंट्रोलर एक नए संस्करण है जिसमें अधिक क्षमताएँ हैं।

अंतर

इस के अनुसार, एंसिबल टावर और AWX के मुख्य अंतर है समर्थन और एंसिबल टावर में अतिरिक्त सुविधाएं जैसे कि रोल-आधारित पहुंच नियंत्रण, कस्टम API के समर्थन, और उपयोगकर्ता-निर्धारित कार्यप्रवाह हैं।

तकनीक स्टैक

  • वेब इंटरफेस: यह ग्राफिकल इंटरफेस है जहाँ उपयोगकर्ता इन्वेंटरी, क्रेडेंशियल, टेम्पलेट, और नौकरियाँ प्रबंधित कर सकते हैं। यह समझने में मदद करने के लिए डिज़ाइन किया गया है और आपके ऑटोमेशन नौकरियों की स्थिति और परिणाम को समझने में मदद करने के लिए विजुअलाइज़ेशन प्रदान करता है।

  • REST API: जो कुछ आप वेब इंटरफेस में कर सकते हैं, वह आप REST API के माध्यम से भी कर सकते हैं। इसका मतलब है कि आप AWX/Tower को अन्य सिस्टमों के साथ एकीकृत कर सकते हैं या उन क्रियाएँ स्क्रिप्ट कर सकते हैं जो आप सामान्यत: इंटरफेस में करते हैं।

  • डेटाबेस: AWX/Tower अपने विन्यास, नौकरी के परिणाम, और अन्य आवश्यक संचालन डेटा को स्टोर करने के लिए डेटाबेस (सामान्यत: PostgreSQL) का उपयोग करता है।

  • RabbitMQ: यह AWX/Tower द्वारा विभिन्न घटकों के बीच संचार के लिए उपयोग किया जाने वाला संदेशन प्रणाली है, विशेष रूप से वेब सेवा और कार्य रनर्स के बीच।

  • Redis: रेडिस एक कैश और टास्क कतार के लिए बैकएंड के रूप में सेवा करता है।

तार्किक घटक

  • इन्वेंटरी: इन्वेंटरी एक होस्टों (या नोड्स) का संग्रह है जिसके खिलाफ नौकरियाँ (एंसिबल प्लेबुक्स) चलाई जा सकती हैं। AWX/Tower आपको अपनी इन्वेंटरी को परिभाषित और समूहीकृत करने की अनुमति देता है और डायनामिक इन्वेंटरी का समर्थन करता है जो अन्य सिस्टमों जैसे AWS, Azure, आदि से होस्ट सूची प्राप्त कर सकती है।

  • प्रोजेक्ट्स: एक प्रोजेक्ट मौजूदा समय पर नवीनतम प्लेबुक्स खींचने के लिए एक संस्करण नियंत्रण प्रणाली (जैसे Git) से स्रोतित एंसिबल प्लेबुक्स का संग्रह है।

  • टेम्पलेट्स: नौकरी टेम्पलेट्स विशेष प्रकार का प्लेबुक कैसे चलाया जाएगा को परिभाषित करते हैं, नौकरी के लिए इन्वेंटरी, क्रेडेंशियल्स, और अन्य पैरामीटर्स को निर्धारित करते हैं।

  • क्रेडेंशियल्स: AWX/Tower एक सुरक्षित तरीके से गोपनीयताएँ प्रबंधित और स्टोर करने का तरीका प्रदान करता है, जैसे SSH कुंजी, पासवर्ड, और API टोकन्स। ये क्रेडेंशियल्स नौकरी टेम्पलेट्स के साथ जुड़े हो सकते हैं ताकि प्लेबुक्स को जब वे चलते हैं तो आवश्यक पहुंच हो।

  • टास्क इंजन: यहाँ जादू होता है। टास्क इंजन एंसिबल पर निर्भर है और प्लेबुक्स को चलाने के लिए जिम्मेदार है। नौकरियाँ टास्क इंजन को भेजी जाती हैं, जो फिर निर्धारित इन्वेंटरी का उपयोग करते हुए निर्धारित प्लेबुक्स को चलाता है।

  • स्केज्यूलर्स और कॉलबैक्स: ये AWX/Tower में उन्नत सुविधाएं हैं जो नौकरियाँ निर्धारित समय पर चलाने की अनुमति देती हैं या बाह्य घटनाओं द्वारा प्रेरित करती हैं।

  • सूचनाएँ: AWX/Tower नौकरियों की सफलता या विफलता के आधार पर सूचनाएँ भेज सकता है। यह ईमेल, स्लैक संदेश, वेबहुक्स, आदि जैसे विभिन्न सूचना के साधनों का समर्थन करता है।

  • एंसिबल प्लेबुक्स: एंसिबल प्लेबुक्स विन्यास, डिप्लॉयमेंट, और ऑर्केस्ट्रेशन उपकरण हैं। वे एक स्वचालित, दोहराया गया तरीके में सिस्टमों की इच्छित स्थिति का वर्णन करते हैं। यमल में लिखे गए प्लेबुक्स एंसिबल के घोषणात्मक स्वचालन भाषा का उपयोग करते हैं ताकि वर्णन किए गए विन्यास, कार्य, और कदमों को निष्पादित करने की आवश्यकता हो।

नौकरी निष्पादन प्रवाह

  1. उपयोगकर्ता अंतर्क्रिया: एक उपयोगकर्ता AWX/Tower के माध्यम से वेब इंटरफेस या REST API के माध्यम से संवाद कर सकता है। ये AWX/Tower द्वारा प्रस्तावित सभी सुविधाओं तक पहुंच प्रदान करते हैं।

  2. **न

git clone -b x.y.z https://github.com/ansible/awx.git # Get in x.y.z the latest release version

cd awx

# Build
make docker-compose-build

# Run
make docker-compose

# Or to create a more complex env
MAIN_NODE_TYPE=control EXECUTION_NODE_COUNT=2 COMPOSE_TAG=devel make docker-compose

# Clean and build the UI
docker exec tools_awx_1 make clean-ui ui-devel

# Once migrations are completed and the UI is built, you can begin using AWX. The UI can be reached in your browser at https://localhost:8043/#/home, and the API can be found at https://localhost:8043/api/v2.

# Create an admin user
docker exec -ti tools_awx_1 awx-manage createsuperuser

# Load demo data
docker exec tools_awx_1 awx-manage create_preload_data

RBAC

समर्थित भूमिकाएँ

सबसे अधिक विशेषाधिकार वाली भूमिका को सिस्टम प्रशासक कहा जाता है। इस भूमिका वाले किसी भी व्यक्ति को किसी भी चीज को संशोधित करने की अनुमति होती है।

व्हाइट बॉक्स सुरक्षा समीक्षा से, आपको सिस्टम ऑडिटर भूमिका की आवश्यकता होगी, जिससे सभी सिस्टम डेटा देख सकें लेकिन कोई भी परिवर्तन नहीं कर सकते। एक और विकल्प हो सकता है संगठन ऑडिटर भूमिका प्राप्त करना, लेकिन दूसरी भूमिका प्राप्त करना बेहतर होगा।

विस्तृत विवरण प्राप्त करने के लिए इसे विस्तारित करें
  1. सिस्टम प्रशासक:

  • यह सुपरयूजर भूमिका है जिसकी अनुमतियाँ सिस्टम में किसी भी संसाधन तक पहुंचने और संशोधन करने की हैं।

  • वे सभी संगठन, टीम, परियोजनाएं, इन्वेंटरी, जॉब टेम्प्लेट्स आदि को प्रबंधित कर सकते हैं।

  1. सिस्टम ऑडिटर:

  • इस भूमिका वाले उपयोगकर्ता सभी सिस्टम डेटा देख सकते हैं लेकिन कोई भी परिवर्तन नहीं कर सकते।

  • यह भूमिका अनुपालन और निगरानी के लिए डिज़ाइन की गई है।

  1. संगठन भूमिकाएँ:

  • व्यवस्थापक: संगठन के संसाधनों पर पूर्ण नियंत्रण।

  • ऑडिटर: संगठन के संसाधनों को केवल देख सकते हैं।

  • सदस्य: किसी भी विशेष अनुमतियों के बिना संगठन में मूल सदस्यता।

  • क्रियान्वित करें: संगठन के भीतर जॉब टेम्प्लेट्स को चला सकते हैं।

  • पढ़ें: संगठन के संसाधनों को देख सकते हैं।

  1. परियोजना भूमिकाएँ:

  • व्यवस्थापक: परियोजना को प्रबंधित और संशोधित कर सकते हैं।

  • उपयोग करें: परियोजना को जॉब टेम्प्लेट में उपयोग कर सकते हैं।

  • अपडेट करें: स्रोत नियंत्रण का उपयोग करके परियोजना को अपडेट कर सकते हैं।

  1. इन्वेंटरी भूमिकाएँ:

  • व्यवस्थापक: इन्वेंटरी को प्रबंधित और संशोधित कर सकते हैं।

  • एड हॉक: इन्वेंटरी पर एड हॉक कमांड चला सकते हैं।

  • अपडेट करें: इन्वेंटरी स्रोत को अपडेट कर सकते हैं।

  • उपयोग करें: इन्वेंटरी को जॉब टेम्प्लेट में उपयोग कर सकते हैं।

  • पढ़ें: केवल देखने की अनुमति।

  1. जॉब टेम्प्लेट भूमिकाएँ:

  • व्यवस्थापक: जॉब टेम्प्लेट को प्रबंधित और संशोधित कर सकते हैं।

  • क्रियान्वित करें: जॉब चला सकते हैं।

  • पढ़ें: केवल देखने की अनुमति।

  1. क्रेडेंशियल भूमिकाएँ:

  • व्यवस्थापक: क्रेडेंशियल को प्रबंधित और संशोधित कर सकते हैं।

  • उपयोग करें: क्रेडेंशियल को जॉब टेम्प्लेट्स या अन्य संबंधित संसाधनों में उपयोग कर सकते हैं।

  • पढ़ें: केवल देखने की अनुमति।

  1. टीम भूमिकाएँ:

  • सदस्य: टीम का हिस्सा लेकिन किसी भी विशेष अनुमतियों के बिना।

  • व्यवस्थापक: टीम के सदस्यों और संबंधित संसाधनों को प्रबंधित कर सकते हैं।

  1. वर्कफ़्लो भूमिकाएँ:

  • व्यवस्थापक: वर्कफ़्लो को प्रबंधित और संशोधित कर सकते हैं।

  • क्रियान्वित करें: वर्कफ़्लो चला सकते हैं।

  • पढ़ें: केवल देखने की अनुमति।

Last updated