AWS CLI সরঞ্জামগুলি থেকে AWS অ্যাকাউন্ট নম্বর পাওয়ার দ্রুত উপায়?


102

আমার অ্যাকাউন্ট নম্বরটি টানানোর জন্য দ্রুত উপায় খুঁজছেন, আমি প্রথমে ব্যবহারের কথা ভেবেছিলাম aws iam get-account-authorization-details --max-items 1কিন্তু এইভাবে এটি করার সাথে বেশ কয়েকটি সমস্যা রয়েছে। এটি করার কোনও উপায় আছে যা অ্যাকাউন্টের উত্সকে অতিক্রম করতে পারে না?

উত্তর:


223

আপনি নিম্নলিখিতটি ব্যবহার করে সিকিউর টোকেন পরিষেবা সাবকম্যান্ড থেকে অ্যাকাউন্ট নম্বর পেতে পারেন get-caller-identity:

aws sts get-caller-identity --query Account --output text

4
এটি সুরক্ষা গোষ্ঠীর চেয়ে অনেক বেশি নির্ভরযোগ্য হওয়া উচিত কারণ আপনি ডিফল্ট সুরক্ষা গোষ্ঠীটি মুছতে পারেন।
জাস্টিন

4
সংক্ষিপ্ত কমান্ড যদি জকিউ ফিড হয়aws sts get-caller-identity|jq -r ".Account"
BMW

একটি ভেরিয়েবলে সঞ্চয় করার প্রয়োজন ছিল তবে একটি অতিরিক্ত লাইন পাচ্ছিল, এটি তার জন্য আরও ভাল হবেaws sts get-caller-identity --output json | jq '.Account' | sed 's/\"//g'
Asim

আমার জন্য, যখন আমি --query 'Account'অংশটি সরিয়ে ফেলি তখন এটি কাজ করে ।
কলিভিরা

@ বিএমডব্লিউ আপনি দুর্ভাগ্যক্রমে jqকোনও সিস্টেমে জড়িত বা ইনস্টল থাকা সম্পর্কে সর্বদা নির্ভর করতে পারবেন না । কিছু সার্ভার সুরক্ষার কারণে বহিরাগত প্যাকেজ ইনস্টল নিষিদ্ধ করে। আপনি aws sts get-caller-identity --output json |grep Account |awk -F ': "' '{print$2}' |sed 's/\".*//'এটির মতো কিছু করতে পারেন তবে এটি একটি সামান্য বিরক্তিকর এবং আপনি --query 'Account' --output textসেই মুহুর্তে এটিও করতে পারেন ।
এহিম

33

এডাব্লুএস পাওয়ারশেল সিএলআই-এর জন্য আমার সম্পর্কিত উত্তর থেকে , আপনার অ্যাকাউন্ট আইডিটি আপনি যে সংস্থানগুলি তৈরি করেছেন ... এবং যেগুলি স্বয়ংক্রিয়ভাবে আপনার জন্য তৈরি হয়েছিল সেগুলির একটি অংশ। কিছু সংস্থান আপনাকে ওনারআইডি হিসাবে তালিকাভুক্ত করবে।

ডিফল্ট সুরক্ষা গোষ্ঠীটি প্রতিটি অঞ্চলের ডিফল্ট ভিপিসিতে আপনার জন্য সংরক্ষিত সুরক্ষা গোষ্ঠী হিসাবে স্বয়ংক্রিয়ভাবে তৈরি হয়। ডকুমেন্টেশন থেকে :

আপনি কোনও ডিফল্ট সুরক্ষা গোষ্ঠী মুছতে পারবেন না। আপনি যদি ইসি 2-ক্লাসিক ডিফল্ট সুরক্ষা গোষ্ঠী মোছার চেষ্টা করেন, আপনি নিম্নলিখিত ত্রুটিটি পাবেন: ক্লায়েন্ট.আইনওয়েডগ্রুপ। সংরক্ষিত: সুরক্ষা গোষ্ঠীটি 'ডিফল্ট' সংরক্ষিত। আপনি যদি কোনও ভিপিসি ডিফল্ট সুরক্ষা গোষ্ঠী মোছার চেষ্টা করেন, আপনি নিম্নলিখিত ত্রুটিটি পাবেন: ক্লায়েন্ট.ক্যানটডিলিট: নির্দিষ্ট গ্রুপ: "এসএজি -5530134" নাম: "ডিফল্ট" কোনও ব্যবহারকারী মুছে ফেলতে পারবেন না।

এটি আপনার অ্যাকাউন্ট আইডি পুনরুদ্ধারের জন্য একটি নির্ভরযোগ্য প্রার্থী করে তোলে, যতক্ষণ না আপনি ইসি 2 ক্লাসিক হন বা আপনার ডিফল্ট ভিপিসি থাকে (* যদি আপনি না করেন তবে প্রান্তের কেসগুলি দেখুন)।

উদাহরণ:

aws ec2 describe-security-groups \
    --group-names 'Default' \
    --query 'SecurityGroups[0].OwnerId' \
    --output text

এটি --queryএই অনুরোধ থেকে প্রথম ফলাফলের জন্য আউটপুটটিকে "মালিকের আইডি" তে ফিল্টার করতে ব্যবহার করে এবং তারপরে --outputআপনার অ্যাকাউন্ট আইডিটিকে সরল পাঠ হিসাবে আউটপুট ব্যবহার করে:

123456781234

এজ মামলাগুলি:

(ধন্যবাদ @ টেনচেউ) নোট করুন যে আপনি যদি কোনও প্রদত্ত অঞ্চলে আপনার ডিফল্ট ভিপিসি মুছে ফেলে থাকেন তবে এই সুরক্ষা গোষ্ঠীটি আর বিদ্যমান নেই এবং আপনার এই বিকল্প সমাধানগুলির মধ্যে একটি ব্যবহার করা উচিত:

আরও পড়া:


10

আপনি যদি এমন কোনও সার্ভারে চলমান যা ধরে নেওয়া ভূমিকা নিয়ে চলছে তবে আপনি কল করতে পারবেন না aws sts get-caller-identity। এছাড়াও, describe-security-groupsআপনি সর্বদা --group-namesফিল্টারটি ব্যবহার করতে পারবেন না (যদি আপনার ডিফল্ট ভিপিসি না থাকে তবে এটি কাজ করে না), তবে প্রথম সুরক্ষা গোষ্ঠীটি বেছে নিন। আপনি কোন ধরণের প্রমাণীকরণ ব্যবহার করবেন বা আপনার কী ধরণের ভিপিসি রয়েছে তা নির্বিশেষে আমি এটি সবচেয়ে নির্ভরযোগ্য হিসাবে খুঁজে পেয়েছি।

aws ec2 describe-security-groups --query 'SecurityGroups[0].OwnerId' --output text

এর সাথে একমত গ্রাহক-পরিচয় পরিচয় সর্বদা ব্যবহারকারী অ্যাকাউন্টটি ফিরিয়ে আনবে বলে মনে হয় না, তারা যতটা ভূমিকা নিয়েছিল তা নির্বিশেষে। আপনি যদি
অনুমানিত

2

আমার প্রিয় পদ্ধতিটি ব্যবহার করা হ'ল এটি কাজ করার জন্য aws iam get-user [--profile <profile>]আপনার কেবল আইএএম স্ব-পরিষেবা ভূমিকা প্রয়োজন।


4
মনে রাখবেন, আপনি AssusedRole
সানুব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.