AWS EC2 इंस्टेंस मेटाडेटा API के लिए कॉल / फ़ायरवॉल को कैसे रोकें?


15

एडब्ल्यूएस EC2 उदाहरण मेटाडेटा API उपयोगी कार्यक्षमता का एक बहुत प्रदान करता है। वास्तविक EC2 उदाहरण पर कोई भी कॉल कर सकता है http://169.254.169.254/और कॉल से किए गए उदाहरण के लिए मेटाडेटा देख सकता है। एपीआई की सुरक्षा ऐसी है कि यह केवल यह जांचता है कि कॉल की शुरुआत किस उदाहरण से हुई है। इसलिए, अगर मैं किसी को अपने उदाहरण पर कोड चलाने की अनुमति दे रहा हूं, तो मैं यह जानना चाहूंगा कि खुद को एक्सेस बनाए रखने के दौरान उस विशेष यूआरएल तक पहुंच को कैसे अवरुद्ध किया जाए।

एक आकर्षण के रूप में, मुझे यह जानकर आश्चर्य हुआ कि मेटाडेटा एपीआई के माध्यम से भी पहुँचा जा सकता है http://instance-data/(जो मुझे कहीं दुर्घटना से मिला)।

मैं इस उदाहरण पर चलने वाले सभी कोड द्वारा कहे जा रहे url का निरीक्षण करने में सक्षम हूं, लेकिन मेरा मानना ​​है कि यह IPv6 पतों (संभवतः), या कुछ अजीब यूआरआई एन्कोडिंग को देखते हुए एक अच्छा तरीका नहीं है जो मेटाडाटा आईपी (169.254) में हल होगा .169.254), या कुछ अनिर्दिष्ट (ऐसा लगता है) जैसे URL http://instance-data/

जवाबों:


25

फ़ायरवॉल इसे बंद।

iptables -A OUTPUT -m owner ! --uid-owner root -d 169.254.169.254 -j DROP

यह नियम मूल उपयोगकर्ता के अलावा किसी भी उपयोगकर्ता को 169.254.169.254 पर कनेक्शन खोलने से रोकता है।


क्या यह इस सेवा के "सामान्य" उपयोग को नहीं रोकेगा। आमतौर पर इस सेवा को EC2 उपयोगकर्ता द्वारा / ओबो द्वारा बुलाया जाता है जो लगभग कभी भी जड़ नहीं है।
सैम-टी

@ सैम-टी यदि आपको इसे एक्सेस करने के लिए ec2-user की आवश्यकता है, तो आप निश्चित रूप से इसे भी अनुमति देने के लिए एक नियम लिख सकते हैं।
माइकल हैम्पटन

यदि आप फ़ायरवॉल स्तर पर रोकते हैं- केवल रूट की अनुमति देने के लिए, यह सुनिश्चित नहीं करें कि आप इसे EC2 उपयोगकर्ता के लिए कैसे सक्षम करेंगे (मुझे अभी पता नहीं है)। EC2 उपयोगकर्ता द्वारा - मेरा मतलब है कि जिसने भी उदाहरण शुरू किया है - मेरी समझ मेटाडाटा इस (और किसी भी अन्य) EC2 उपयोगकर्ता द्वारा एक्सेस की जाती है। क्या आप उदाहरण दे सकते हैं
सैम-टी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.