कमांड लाइन से एकाधिक AWS खातों का उपयोग कैसे करें?


114

अमेजन EC2 पर मुझे दो अलग-अलग ऐप मिले हैं, जिनकी मैं मेजबानी कर रहा हूं (दूसरा भी ऊपर जाने वाला है)।

मैं कमांड लाइन (मैक ओएस एक्स) पर दोनों खातों के साथ कैसे काम कर सकता हूं लेकिन EC2 कुंजी और प्रमाणपत्र अलग रख सकता हूं? क्या मुझे प्रत्येक ec2- * कमांड से पहले अपने पर्यावरण चर को बदलने की आवश्यकता है?

एक उपनाम का उपयोग करना होगा और पर्यावरण के इन-लाइन काम की सेटिंग में होगा? कुछ इस तरह:

उपनाम 2-वर्णन-उदाहरण 1 = निर्यात EC2_PRIVATE_KEY = / पथ; EC2-वर्णन-उदाहरणों

जवाबों:


17

आपको निम्न EC2_PRIVATE_KEY( -और भी EC2_CERT) पर्यावरण चर के बदले में निम्नलिखित कमांड-विकल्पों का उपयोग करने में सक्षम होना चाहिए :

  • -K <private key>
  • -C <certificate>

आप इन्हें उपनाम के अंदर रख सकते हैं, जैसे

alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem

309

आप आर्म्स कमांड लाइन पर दो प्रोफाइल बनाकर दो खातों के साथ काम कर सकते हैं । यह आपकी AWS एक्सेस कुंजी ID, AWS गुप्त एक्सेस कुंजी और इच्छित क्षेत्र के लिए संकेत देगा , इसलिए उन्हें तैयार करें।

उदाहरण:

$ aws configure --profile account1
$ aws configure --profile account2

फिर आप कमांड पर प्रोफाइल को पास करके खातों के बीच स्विच कर सकते हैं।

$ aws dynamodb list-tables --profile account1
$ aws s3 ls --profile account2

ध्यान दें:

यदि आप प्रोफ़ाइल को नाम देते हैं तो defaultयह डिफ़ॉल्ट प्रोफ़ाइल बन जाएगी अर्थात जब --profileकमांड में कोई पैराम नहीं होगा ।


डिफ़ॉल्ट प्रोफ़ाइल पर अधिक

यदि आप खाता 1 का उपयोग करके अधिक समय बिताते हैं , तो आप AWS_DEFAULT_PROFILE पर्यावरण चर सेट करके इसे डिफ़ॉल्ट बना सकते हैं। जब डिफ़ॉल्ट पर्यावरण चर सेट किया जाता है, तो आपको प्रत्येक कमांड पर प्रोफ़ाइल को निर्दिष्ट करने की आवश्यकता नहीं है।

लिनक्स, ओएस एक्स उदाहरण:

$ export AWS_DEFAULT_PROFILE=account1
$ aws dynamodb list-tables

विंडोज उदाहरण:

$ set AWS_DEFAULT_PROFILE=account1
$ aws s3 ls

क्षेत्र को कॉन्फ़िगर करने के लिए - यहां "कोड" की सूची दी गई है - docs.aws.amazon.com/general/latest/gr/rande.html
arcseldon

66

शायद यह अभी भी किसी की मदद करे। आप इसे मैन्युअल रूप से सेट कर सकते हैं।

1) फ़ाइल में सेट करें

~/.aws/credentials

यह

[default]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}

[{{profile_name}}]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}

2) फ़ाइल में सेट करें

~/.aws/config

यह

[default]
region={{region}}
output={{output:"json||text"}}

[profile {{profile_name}}]
region={{region}}
output={{output:"json||text"}}

3) AWS कमांड लाइन और कमांड और आउटपुट के साथ इसका परीक्षण करें JSON

aws ec2 describe-instances --profile {{profile_name}}

संदर्भ

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles


2
@iBrianCox - यह जानकारी अधिमानतः सबसे अधिक उत्तोलित उत्तर ( stackoverflow.com/a/34246053/1199564 ) में विलय की जानी चाहिए क्योंकि यह एक उपयोगकर्ता को समझने की अनुमति देता है कि सेटिंग्स को एक प्रोफ़ाइल से दूसरे में कैसे स्थानांतरित किया जाए यदि, उदाहरण के लिए, आपने शुरू किया केवल डिफ़ॉल्ट प्रोफ़ाइल के साथ और समर्पित, अलग प्रोफ़ाइल के साथ जारी रखना चाहते हैं।
एमजीडी

@ एसएलएम कृपया मेरी टिप्पणी ऊपर पढ़ें (प्रति टिप्पणी केवल एक उल्लेख करने में सक्षम थी)
एमजीडी

@mgd सुझाव के लिए धन्यवाद, लेकिन नहीं - क्योंकि पहले तो वह जवाब मेरा नहीं है - और दूसरा यह एक अलग तरीका है कि इसे कैसे सेट किया जाए
BG BRUNO

@mgd Q क्या आप अधिक वर्णन कर सकते हैं जिसका अर्थ है "प्रति टिप्पणी एक उल्लेख"?
BG BRUNO

क्या मैं का मतलब है कि मेरी पहली टिप्पणी में मैं उल्लेख करने का इरादा था दोनों iBrianCox और SLM (लेखक और अन्य जवाब क्रमशः के संपादक) लेकिन आप केवल इसलिए मैं दोनों का उल्लेख में एक और टिप्पणी जोड़ने के लिए किया था टिप्पणी प्रति एक उल्लेख करने के लिए अनुमति दी जाती है । आप सही हैं कि आपका उत्तर एक अलग दृष्टिकोण है, लेकिन यह जानना बहुत उपयोगी है कि जानकारी कहाँ संग्रहीत है, विशेष रूप से यदि आप प्रोफाइल के बीच सेटिंग्स कॉपी करने का इरादा रखते हैं।
एमजीडी

6

नए aws उपकरण अब कई प्रोफाइल का समर्थन करते हैं।

यदि आप उपकरण के साथ पहुँच को कॉन्फ़िगर करते हैं, तो यह स्वचालित रूप से ~ / .aws / config में एक डिफ़ॉल्ट बनाता है।

फिर आप अतिरिक्त प्रोफ़ाइल जोड़ सकते हैं - इस पर अधिक विवरण:

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles


0

आप उपयोगकर्ता इनपुट के आधार पर प्रत्येक खाते के लिए पर्यावरण चर के संबंधित मान सेट करने के लिए शेल स्क्रिप्ट लिख सकते हैं। ऐसा करने पर, आपको कोई भी उपनाम बनाने की आवश्यकता नहीं है और इसके अलावा, ELB टूल, ऑटो स्केलिंग कमांड लाइन टूल्स जैसे उपकरण कई खातों के तहत भी काम करेंगे।


0

मैंने AWS खातों के बीच स्विच करने के लिए एक सरल टूल, एएवी बनाया ।

यह AWS_DEFAULT_PROFILEआपके शेल में सेट करके काम करता है । बस सुनिश्चित करें कि आपकी ~/.aws/credentialsफ़ाइल में कुछ प्रविष्टियाँ हैं और यह आसानी से कई खातों के बीच बदल जाएगा।

/tmp
$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
/tmp
$ aaws luk3

[luk3] 🔐 /tmp
$ aws s3 ls
2013-11-05 21:40:04 luk3thomas.com
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.