जवाबों:
आप निम्नलिखित का उपयोग करके सुरक्षित टोकन सेवा उपकेंद्र से खाता संख्या प्राप्त कर सकते हैं get-caller-identity:
aws sts get-caller-identity --query Account --output text
aws sts get-caller-identity|jq -r ".Account"
aws sts get-caller-identity --output json | jq '.Account' | sed 's/\"//g'
--query 'Account'भाग निकालता हूं ।
jqएक सिस्टम में शामिल या स्थापित होने पर भरोसा नहीं कर सकते । कुछ सर्वर सुरक्षा के कारण बाहरी पैकेज स्थापित करते हैं। आप ऐसा कुछ कर सकते हैं, aws sts get-caller-identity --output json |grep Account |awk -F ': "' '{print$2}' |sed 's/\".*//'लेकिन यह थोड़ा कष्टप्रद है और आप --query 'Account' --output textउस बिंदु पर भी ऐसा कर सकते हैं ।
AWS PowerShell CLI के लिए मेरे संबंधित उत्तर से , आपकी खाता आईडी आपके द्वारा बनाए गए संसाधनों का एक हिस्सा है ... और जो आपके लिए स्वचालित रूप से बनाई गई हैं। कुछ संसाधन आपको एक स्वामी के रूप में भी सूचीबद्ध करेंगे।
डिफ़ॉल्ट सुरक्षा समूह स्वचालित रूप से आपके लिए प्रत्येक क्षेत्र के डिफ़ॉल्ट VPC में आरक्षित सुरक्षा समूह के रूप में बनाया जाता है। से प्रलेखन :
आप एक डिफ़ॉल्ट सुरक्षा समूह को हटा नहीं सकते। यदि आप EC2-Classic डिफ़ॉल्ट सुरक्षा समूह को हटाने का प्रयास करते हैं, तो आपको निम्न त्रुटि मिलेगी: Client.InvalidGroup.Reserved: सुरक्षा समूह 'डिफ़ॉल्ट' आरक्षित है। यदि आप VPC डिफ़ॉल्ट सुरक्षा समूह को हटाने का प्रयास करते हैं, तो आपको निम्न त्रुटि मिलेगी: Client.CannotDelete: निर्दिष्ट समूह: "sg-51530134" नाम: "डिफ़ॉल्ट" उपयोगकर्ता द्वारा हटाया नहीं जा सकता।
यह हमारे खाते आईडी को पुनः प्राप्त करने के लिए एक विश्वसनीय उम्मीदवार बनाता है, जब तक कि आप EC2 क्लासिक में हैं या आपके पास डिफ़ॉल्ट VPC है (यदि आप नहीं करते हैं तो किनारे के मामलों को देखें)।
उदाहरण:
aws ec2 describe-security-groups \
--group-names 'Default' \
--query 'SecurityGroups[0].OwnerId' \
--output text
यह --queryइस अनुरोध के पहले परिणाम के लिए आउटपुट को "स्वामी आईडी" तक फ़िल्टर करने के लिए उपयोग करता है, और फिर --outputअपने खाता आईडी को सादे के रूप में आउटपुट करने के लिए उपयोग करता है:
123456781234
बढ़त के मामले:
(धन्यवाद @kenchew) ध्यान दें कि यदि आपने किसी दिए गए क्षेत्र में अपना डिफ़ॉल्ट VPC हटा दिया है, तो यह सुरक्षा समूह अब मौजूद नहीं है और आपको इनमें से किसी एक वैकल्पिक समाधान का उपयोग करना चाहिए:
आगे की पढाई:
यदि आप एक सर्वर पर चल रहे हैं जो एक मान्य भूमिका के साथ चल रहा है जिसे आप कॉल नहीं कर सकते aws sts get-caller-identity। इसके अलावा, describe-security-groupsआप हमेशा --group-namesफ़िल्टर का उपयोग नहीं कर सकते (यदि आपके पास डिफ़ॉल्ट VPC नहीं है तो यह काम नहीं करता है), इसलिए पहले सुरक्षा समूह को चुनें। मैंने पाया है कि यह सबसे विश्वसनीय है कि आप किस तरह के प्रमाणीकरण का उपयोग करते हैं या आपके पास किस प्रकार का वीपीसी है।
aws ec2 describe-security-groups --query 'SecurityGroups[0].OwnerId' --output text
मेरा पसंदीदा तरीका यह है कि aws iam get-user [--profile <profile>]आप इसे काम करने के लिए केवल IAM स्वयं सेवा की भूमिका का उपयोग करें।