কীভাবে AWS কমান্ড লাইন সরঞ্জামগুলির শংসাপত্রগুলি পরীক্ষা করতে হয় to


149

এমন কোনও কমান্ড / সাবকম্যান্ড রয়েছে যা awsইউটিলিটিতে পাস করা যেতে পারে যা 1) ~/.aws/credentialsফাইলের শংসাপত্রগুলি বৈধ কিনা তা যাচাই করতে পারে, এবং 2) কোন শংসাপত্রের সাথে সম্পর্কিত কোন ইঙ্গিত দেয়? আমি জেনেরিক এমন কিছু সন্ধান করছি যা ব্যবহারকারীর আইএএম বা কোনও নির্দিষ্ট পরিষেবার অনুমতি পাওয়ার বিষয়ে কোনও অনুমান করে না।

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


3
আমি কি পরামর্শ দেব যে এটি সার্ভারফল্ট.কম এ আরও ভাল জিজ্ঞাসা করা হবে ? স্ট্যাক ওভারফ্লো বিশেষত প্রোগ্রামিং প্রশ্নের জন্য।
ট্রিপ কাইনেটিকস

4
@ ট্রিপকিনেটিক্স হ্যাঁ, আমি কোথায় জিজ্ঞাসা করব সে সম্পর্কে বেড়াতে ছিলাম। আমার মনে, প্রশ্নের মাংস প্রোগ্রামের ভিত্তিতে সার্ভিস প্রতি সেভার পরিচালনার পরিবর্তে একটি API কে জিজ্ঞাসাবাদ করা সম্পর্কে আরও ছিল।
স্মিটেলি

উত্তর:


219

গেটকলার আইডেন্টিটি ব্যবহার করুন :
aws sts get-caller-identity

অন্যান্য আইপিএল / সিএলআই কলগুলির বিপরীতে এটি আপনার আইএএম অনুমতি নির্বিশেষে সর্বদা কাজ করবে।

আপনি নিম্নলিখিত বিন্যাসে আউটপুট পাবেন:

{
    "Account": "123456789012", 
    "UserId": "AR#####:#####", 
    "Arn": "arn:aws:sts::123456789012:assumed-role/role-name/role-session-name"
}

সঠিক ARN বিন্যাস পরিচয়পত্র ধরনের উপর নির্ভর করবে, কিন্তু প্রায়ই (মানুষ) ব্যবহারকারীর নাম অন্তর্ভুক্ত করা হয়েছে।

এটি সাফল্যের জন্য 0 এবং 255 দিতে আপনার কাছে কোনও শংসাপত্র না থাকলে মানসম্পন্ন AWS CLI ত্রুটি কোডগুলি ব্যবহার করে ।


5
এটি দুর্দান্ত উত্তর, তবে আপনি যদি এমএফএ ব্যবহার করছেন তবে দেখুন - এটি আরও জটিল। এমএফএর সাথে, আপনাকে বিভিন্ন কার্যকরী অস্থায়ী শংসাপত্রগুলি পাওয়ার জন্য এমএফএ টোকেনের সাথে মিলিত ওয়ার্কিং শংসাপত্রগুলি ব্যবহার করতে হবে (ii) এবং এই সমাধানের সাহায্যে আপনি শংসাপত্রগুলির জন্য একই ফলাফল পাবেন (i) বা (ii)।
মার্ক চ্যাকেরিয়ান

3
@ মার্কচ্যাকারিয়ান এটি সর্বদা ক্ষেত্রে হয় না। আমি এমন একটি ব্যবহারকারী তৈরি করেছি যার এমএফএ ট্রেক 10 এর নীতি ব্যবহার করে প্রয়োগ করা হচ্ছে । এমএফএ অধিবেশন সক্রিয় নয় নিদর্শন নিয়ে, আমি যদি চালানো aws iam get-user --profile test-mfa, আমি পাবেন: An error occurred (AccessDenied) when calling the GetUser operation। তবে aws sts get-caller-identity --profile test-mfaআউটপুটগুলি (একইভাবে, কোনও এমএফএ সেশন টোকেন সক্রিয় না করে) test-mfaএর অ্যাকাউন্ট, এআরএন এবং ইউজারআইডি।
ভিল

54

একটি সরল উপায় আছে - aws iam get-userআপনি কে (বর্তমান আইএএম ব্যবহারকারী) সম্পর্কে বিশদটি বলবেন - যদি ব্যবহারকারীটির iamসুযোগ সুবিধা থাকে।

বেশ কয়েকটি সি এল এল কল রয়েছে যা এই --dry-runপতাকাটিকে সমর্থন করে aws ec2 run-instancesযা অপারেশনটি সম্পাদন করার জন্য আপনার কাছে প্রয়োজনীয় কনফিগারেশন / ক্রেডিট আছে কিনা তা আপনাকে জানান।

এছাড়াও রয়েছে --auth-dry-runযা চেক আপনি কমান্ড জন্য প্রয়োজন বোধ করা অনুমতি দেওয়া হবে কিনা তা আসলে কমান্ড চলমান ছাড়া। আপনার যদি প্রয়োজনীয় অনুমতি থাকে, কমান্ডটি ড্রায়আরঅনপরেশন ফিরিয়ে দেয়; অন্যথায়, এটি অননুমোদিত অপারেশন প্রদান করে। [ এডাব্লুএস ডকুমেন্টেশন থেকে - সাধারণ বিকল্পগুলি ]

আপনি ম্যানেজমেন্ট কনসোল থেকে আইএএম অ্যাক্সেস কীগুলি তালিকাভুক্ত করতে সক্ষম হবেন যা আপনি কী কী বরাদ্দ করেছেন তা পরীক্ষা করে দেখতে পারেন।

আইএএম পলিসি সিমুলেটরটি ব্যবহার করে কোন ব্যবহারকারী / ভূমিকার কী সুবিধা রয়েছে তা বোঝার সর্বোত্তম উপায় ।


16
হাস্যকরভাবে, আমি যে ব্যবহারকারীকে পরীক্ষা দিয়েছিলাম তেমনি একটি AccessDeniedত্রুটি পেয়েছিল - এতে arn:aws:iam::123...890:user/somebodyত্রুটি আউটপুটটির অংশ হিসাবে সম্পূর্ণ স্ট্রিং অন্তর্ভুক্ত ছিল ।
স্মাইলি

7
পুরোপুরি সম্ভব ব্যবহারকারীর নিজেরাই 'গেট-ইউজার' করার অনুমতি নেই। : - /
জেসন

হ্যাঁ, আমার এই অবস্থা আছে। ইউজার আরএন-এর পাশের অ্যাডাব্লুএস কনসোলে এটি এন / এ দেখায় এবং উপরের হোভারটি ব্যাখ্যা করে যে "ব্যবহারকারী আর্ন: আওস: আইএএম: ...: ইউজার / স্টিভ আইএম সম্পাদনের জন্য অনুমোদিত নয়: রিসোর্সে গেট ইউজার: ব্যবহারকারী স্টিভ"
স্টিভ বেনিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.