AWS - Elastic Beanstalk Enum
Elastic Beanstalk
Amazon Elastic Beanstalk एक सरल प्लेटफ़ॉर्म प्रदान करता है वेब एप्लिकेशन और सेवाओं को तैनात करने, प्रबंधित करने और स्केल करने के लिए। यह विभिन्न प्रोग्रामिंग भाषाओं और फ्रेमवर्क्स का समर्थन करता है, जैसे कि Java, .NET, PHP, Node.js, Python, Ruby, और Go, साथ ही Docker कंटेनरों का भी। यह सेवा व्यापक रूप से उपयोग किए जाने वाले सर्वरों के साथ संगत है, जिनमें Apache, Nginx, Passenger, और IIS शामिल हैं।
Elastic Beanstalk एक सरल और लचीला तरीका प्रदान करता है आपके एप्लिकेशन को AWS क्लाउड में तैनात करने के लिए, बिना अंतर्निहित इंफ्रास्ट्रक्चर की चिंता किए। यह स्वचालित रूप से क्षमता प्रावधान, लोड संतुलन, स्केलिंग, और एप्लिकेशन स्वास्थ्य निगरानी के विवरणों को संभालता है, जिससे आप अपने कोड को लिखने और तैनात करने पर ध्यान केंद्रित कर सकते हैं।
Elastic Beanstalk द्वारा बनाई गई इंफ्रास्ट्रक्चर Autoscaling Groups द्वारा EC2 (एक लोड बैलेंसर के साथ) में प्रबंधित की जाती है। जिसका मतलब है कि अंत में, यदि आप होस्ट को समझौता करते हैं, तो आपको EC2 के बारे में जानना चाहिए:
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumइसके अलावा, यदि Docker का उपयोग किया जाता है, तो ECS का उपयोग करना संभव है।
AWS - EKS EnumApplication & Environments
AWS Elastic Beanstalk में, "application" और "environment" की अवधारणाएं विभिन्न उद्देश्यों की सेवा करती हैं और तैनाती प्रक्रिया में अलग-अलग भूमिकाएं निभाती हैं।
Application
Elastic Beanstalk में एक application आपके एप्लिकेशन के स्रोत कोड, environments, और configurations के लिए एक तार्किक कंटेनर है। यह आपके एप्लिकेशन कोड के विभिन्न संस्करणों को एक साथ समूहित करता है और आपको उन्हें एक ही इकाई के रूप में प्रबंधित करने की अनुमति देता है।
जब आप एक application बनाते हैं, तो आप एक नाम और विवरण प्रदान करते हैं, लेकिन इस चरण में कोई संसाधन प्रावधान नहीं किया जाता है। यह केवल आपके कोड और संबंधित संसाधनों को व्यवस्थित और प्रबंधित करने का एक तरीका है।
आप एक application के भीतर कई एप्लिकेशन संस्करण रख सकते हैं। प्रत्येक संस्करण आपके कोड के एक विशिष्ट रिलीज़ से मेल खाता है, जिसे एक या अधिक environments में तैनात किया जा सकता है।
Environment
एक environment आपके एप्लिकेशन का एक प्रावधानित उदाहरण है जो AWS इंफ्रास्ट्रक्चर पर चल रहा है। यह वह जगह है जहां आपका एप्लिकेशन कोड तैनात और निष्पादित होता है। Elastic Beanstalk environment configuration के आधार पर आवश्यक संसाधनों (जैसे, EC2 instances, load balancers, auto-scaling groups, databases) का प्रावधान करता है।
प्रत्येक environment आपके एप्लिकेशन का एक ही संस्करण चलाता है, और आप विभिन्न उद्देश्यों के लिए कई environments रख सकते हैं, जैसे विकास, परीक्षण, स्टेजिंग, और उत्पादन।
जब आप एक environment बनाते हैं, तो आप एक प्लेटफ़ॉर्म (जैसे, Java, .NET, Node.js, आदि) और एक environment प्रकार (जैसे, वेब सर्वर या वर्कर) चुनते हैं। आप इंफ्रास्ट्रक्चर और एप्लिकेशन सेटिंग्स के विभिन्न पहलुओं को नियंत्रित करने के लिए environment configuration को भी अनुकूलित कर सकते हैं।
2 प्रकार के Environments
Web Server Environment: यह वेब एप्लिकेशन और APIs की मेजबानी और सेवा करने के लिए डिज़ाइन किया गया है। ये एप्लिकेशन आमतौर पर आने वाले HTTP/HTTPS अनुरोधों को संभालते हैं। वेब सर्वर environment संसाधनों जैसे EC2 instances, load balancers, और auto-scaling समूहों का प्रावधान करता है ताकि आने वाले ट्रैफ़िक को संभाला जा सके, क्षमता का प्रबंधन किया जा सके, और एप्लिकेशन की उच्च उपलब्धता सुनिश्चित की जा सके।
Worker Environment: यह पृष्ठभूमि कार्यों को संसाधित करने के लिए डिज़ाइन किया गया है, जो अक्सर समय लेने वाले या संसाधन-गहन संचालन होते हैं जिन्हें ग्राहकों को तत्काल प्रतिक्रिया की आवश्यकता नहीं होती है। वर्कर environment संसाधनों जैसे EC2 instances और auto-scaling समूहों का प्रावधान करता है, लेकिन इसमें लोड बैलेंसर नहीं होता क्योंकि यह सीधे HTTP/HTTPS अनुरोधों को नहीं संभालता है। इसके बजाय, यह Amazon Simple Queue Service (SQS) queue से कार्यों का उपभोग करता है, जो वर्कर environment और इसके द्वारा संसाधित कार्यों के बीच एक बफर के रूप में कार्य करता है।
सुरक्षा
Beanstalk में एक App बनाते समय 3 बहुत महत्वपूर्ण सुरक्षा विकल्प चुनने होते हैं:
EC2 key pair: यह वह SSH key होगी जो ऐप चलाने वाले EC2 instances तक पहुंच सकेगी।
IAM instance profile: यह वह instance profile है जो instances के पास होगी (IAM विशेषाधिकार)
स्वचालित रूप से उत्पन्न भूमिका को
aws-elasticbeanstalk-ec2-role
कहा जाता है और इसमें सभी ECS, सभी SQS, DynamoDB elasticbeanstalk और elasticbeanstalk S3 पर कुछ दिलचस्प पहुंच होती है, AWS प्रबंधित नीतियों का उपयोग करके: AWSElasticBeanstalkWebTier, AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWorkerTier.Service role: यह वह भूमिका है जो AWS सेवा सभी आवश्यक कार्यों को करने के लिए उपयोग करेगी। Afaik, एक नियमित AWS उपयोगकर्ता उस भूमिका तक पहुंच नहीं सकता।
AWS द्वारा उत्पन्न इस भूमिका को
aws-elasticbeanstalk-service-role
कहा जाता है और यह AWS प्रबंधित नीतियों का उपयोग करती है AWSElasticBeanstalkEnhancedHealth और AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
डिफ़ॉल्ट रूप से metadata version 1 अक्षम है:
Exposure
Beanstalk डेटा एक S3 bucket में संग्रहीत होता है जिसका नाम है: elasticbeanstalk-<region>-<acc-id>
(यदि इसे AWS कंसोल में बनाया गया था)। इस बकेट के अंदर आपको एप्लिकेशन का अपलोड किया गया स्रोत कोड मिलेगा।
बनाई गई वेबपेज का URL है http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/
यदि आपको बकेट पर पढ़ने की पहुंच मिलती है, तो आप स्रोत कोड पढ़ सकते हैं और यहां तक कि संवेदनशील क्रेडेंशियल्स भी पा सकते हैं।
यदि आपको बकेट पर लिखने की पहुंच मिलती है, तो आप स्रोत कोड को संशोधित कर सकते हैं ताकि अगली बार जब इसे निष्पादित किया जाए तो IAM भूमिका को समझौता किया जा सके।
Enumeration
Unauthenticated Access
AWS - Elastic Beanstalk Unauthenticated EnumPersistence
AWS - Elastic Beanstalk PersistencePrivesc
AWS - Elastic Beanstalk PrivescPost Exploitation
AWS - Elastic Beanstalk Post ExploitationLast updated