Aws-cli: دعم U2F

تم إنشاؤها على ٢٦ سبتمبر ٢٠١٨  ·  45تعليقات  ·  مصدر: aws/aws-cli

وفقًا لمدونة AWS ، يتم دعم U2F الآن لتسجيل الدخول إلى وحدة التحكم:
https://aws.amazon.com/blogs/security/use-yubikey-security-key-sign-into-aws-management-console/

من المهم بشكل خاص أن يكون هناك مسار لدعم هذا على aws-cli حتى نتمكن من النقر لتنفيذ الأوامر بدلاً من وجود رموز طويلة العمر على القرص / الذاكرة.

feature-request v2

التعليق الأكثر فائدة

بقدر ما أفهم هذه المشكلة ، سيتعين على STS / IAM الحصول على دعم واجهة برمجة التطبيقات لمفاتيح الأمان كرموز MFA قبل المضي قدمًا في هذا؟

هل يمكن لأي شخص أن يسلط الضوء على هذا؟ بالتأكيد إذا لم يكن مدعومًا بالفعل ، فهو قاب قوسين أو أدنى ...؟

تعديل:

من فضلك لا تدع هذا يتحول إلى أن يكون أحد تلك الحالات المحزنة حيث تفترض الشركة أنه لا أحد من عملائها يهتم بميزة ما ، لأنهم قاموا بتطبيق الإصدار غير المفيد ثم لم يستخدمه أحد.

لا أستخدم واجهة مستخدم الويب مطلقًا لتسجيل الدخول إلى وحدة تحكم Amazon. كل هذا يحركه CLI بالنسبة لي ، لأن لدي العديد من الحسابات التي أحتاج للتعامل معها (إلخ). وحتى إذا قمت باستخدام واجهة مستخدم الويب لتسجيل الدخول ، فحينئذٍ ، كما هو الحال ، سأحتاج إلى التعامل مع _الحسابات المكررة_ لجميع حساباتي الحالية للاستخدام مع U2F ، لأنني ما زلت بحاجة إلى استخدام Google / LastPass القديم الخاص بي / أي أداة مصادقة لجميع الأشياء aws-cli .

لذلك ... يتمتع دعم U2F من AWS بالقدرة على أن يصبح شيئًا سأكون متحمسًا له حقًا ، ولكن بدون دعم CLI ، فإنه لا يستحق أن نتطرق إليه بعد. أتخيل أن الكثير من الناس في نفس القارب.

ال 45 كومينتر

يعمل AFAIK و U2F بشكل عام فقط في متصفح الويب. كيف تتوقع أن يتم استخدامه من CLI؟ إطلاق متصفح؟

JensRantil كلا ، يمكن لأي نوع من التطبيقات التفاعل مع رمز U2F.

المصدر: أحافظ على libu2f-* و pam-u2f في دبيان ؛)

يبدو أن U2F غير مدعوم للوصول إلى واجهة برمجة التطبيقات حتى الآن:

لا يمكنك استخدام الوصول المحمي بواجهة برمجة التطبيقات مع MFA مع مفاتيح أمان U2F.

ومع ذلك ، فقد قمت بالتأكيد بإرسال هذه التعليقات إلى فريق الخدمة. كانت تجربتي الخاصة هي أن U2F أكثر قابلية للاستخدام بمقدار 100000 مرة أكثر من أي عامل ثانٍ آخر ، لذلك أحب أن أراه حتى لاستخدامي الشخصي.

التحذير الوحيد هو أن هذا يجب أن يكون ميزة V2 لأنني متأكد تمامًا من أنه يتعين علينا سحب تبعيات c للتفاعل مع الرمز المميز u2f.

JordonPhillips FYI ، توجد مكتبة مضيفة Python U2F من Yubico ؛ إنها بحد ذاتها لغة Python بنسبة 100٪ ، ولكنها تعتمد على hidapi ، والتي تستخدم IIRC libusb و libudev .
OTOH ، إنه متوفر بالفعل في جميع التوزيعات الرئيسية ، لذا لا ينبغي أن يكون هذا مشكلة كبيرة؟

سيتطلب أيضًا (مثل أي استخدام لـ U2F) أن يتمكن المستخدم من التفاعل مع جهاز U2F ؛ تحافظ Yubico على قواعد udev في libu2f-host ، والتي قمت بشحنها في Debian كـ libu2f-udev (بحيث يمكن تثبيتها دون سحبها في مكتبة C) ، وهي تبعية task-desktop (بدءًا من Debian 10 "buster") ، لذلك فإن معظم المستخدمين سيثبتونه خارج الصندوق ؛ في امتداد (مستقر دبيان الحالي) ، قمنا بشحن قواعد udev لـ U2F في الحزمة udev ، لذا فهي متوفرة هناك أيضًا.
TL؛ DR: يجب أن يكون لدى دبيان الأذونات الصحيحة لأجهزة U2F في إصدار jessie وما بعده (تم إصداره منذ أكثر من عام) ، وكذلك يجب على جميع مشتقات دبيان (إلا إذا خرجت عن طريقها لكسر U2F ...)

سيكون هذا مفيدًا للغاية بالنسبة لي. إن إخراج هاتفي من 10 إلى 20 مرة يوميًا لنسخ TOTPs ليس أمرًا ممتعًا. 😅 إذا كان بإمكاني النقر على Yubikey بدلاً من ذلك ، فستكون تجربتي في aws-cli أكثر متعة.

nbraud يبدو أن واجهة python التي يستخدمونها لا توفر عجلات لينكس ، لذا فإن التثبيت يتطلب أن يكون لدى المستخدم مترجم مثبت. هذا ليس شرطًا حاليًا لتثبيت cli ، لذا فإن إضافة هذه المكتبة ستكون تغييرًا جذريًا للعديد من المستخدمين.

JordonPhillips فيما يتعلق بإدخال تغيير جذري ... يمكنني أن أتخيل

  1. اجعلها تبعية اختيارية في الإصدار 1 ، ومن ثم يمكن للأشخاص الذين يهتمون بها حقًا تجميعها باستخدام علامة خاصة لتمكينها. وبهذه الطريقة يختارون "معاينة" ما سيكون في النهاية جزءًا من عميل v2 افتراضيًا.

  2. قسّم قطعة U2F إلى ثنائي منفصل ، واكتشف وجودها في وقت التشغيل. ثم يتم إخبار المستخدمين الذين يحاولون استخدام AWS CLI مع U2F "بتثبيت هذه الأداة الأخرى" لجعلها تعمل. لذلك ، على نظام Mac ، على سبيل المثال ، سأكون بعيدًا عن النعيم بمقدار brew install aws-cli-u2f . 😃

نعم ، سأكون أكثر من سعيد بتثبيت وحدة تجميع اختيارية من المصدر للحصول على هذه الوظيفة. سيكون مطلوبًا فقط على أجهزة المطورين - والتي سيكون لها دائمًا مترجم بالفعل - وليس على الخوادم على أي حال.

سيكون python-fido2 بديلاً عن مضيف python-u2f والذي

سأحبس أنفاسي من أجل هذا 👍

بقدر ما أفهم هذه المشكلة ، سيتعين على STS / IAM الحصول على دعم واجهة برمجة التطبيقات لمفاتيح الأمان كرموز MFA قبل المضي قدمًا في هذا؟

بقدر ما أفهم هذه المشكلة ، سيتعين على STS / IAM الحصول على دعم واجهة برمجة التطبيقات لمفاتيح الأمان كرموز MFA قبل المضي قدمًا في هذا؟

هل يمكن لأي شخص أن يسلط الضوء على هذا؟ بالتأكيد إذا لم يكن مدعومًا بالفعل ، فهو قاب قوسين أو أدنى ...؟

تعديل:

من فضلك لا تدع هذا يتحول إلى أن يكون أحد تلك الحالات المحزنة حيث تفترض الشركة أنه لا أحد من عملائها يهتم بميزة ما ، لأنهم قاموا بتطبيق الإصدار غير المفيد ثم لم يستخدمه أحد.

لا أستخدم واجهة مستخدم الويب مطلقًا لتسجيل الدخول إلى وحدة تحكم Amazon. كل هذا يحركه CLI بالنسبة لي ، لأن لدي العديد من الحسابات التي أحتاج للتعامل معها (إلخ). وحتى إذا قمت باستخدام واجهة مستخدم الويب لتسجيل الدخول ، فحينئذٍ ، كما هو الحال ، سأحتاج إلى التعامل مع _الحسابات المكررة_ لجميع حساباتي الحالية للاستخدام مع U2F ، لأنني ما زلت بحاجة إلى استخدام Google / LastPass القديم الخاص بي / أي أداة مصادقة لجميع الأشياء aws-cli .

لذلك ... يتمتع دعم U2F من AWS بالقدرة على أن يصبح شيئًا سأكون متحمسًا له حقًا ، ولكن بدون دعم CLI ، فإنه لا يستحق أن نتطرق إليه بعد. أتخيل أن الكثير من الناس في نفس القارب.

jeffparsons يوافق تمامًا على

راجع للشغل يمكنك تبديل الحسابات في وحدة تحكم الويب بسهولة بالغة من خلال تولي دور في الحساب الآخر
مثل:
https://signin.aws.amazon.com/switchrole؟roleName=SomeAdminRole&account=YourAccountNumberOrAlias
ارى:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

يمكنك بعد ذلك رؤية مبدل الأدوار في القائمة المنسدلة للمستخدم / الحساب في الجزء العلوي الأيمن من الصفحة

قد يكون هذا الرجل على شيء ما ... https://gist.github.com/woowa-hsw0/caa3340e2a7b390dbde81894f73e379d

هنا أيضًا حل جيد جدًا https://github.com/kreuzwerker/awsu

سيكون العمل مع إعدادات متعددة للحسابات متعددة مع معرف هوية منفصل باستخدام نفس U2F مع كل منهم تخفيفًا كبيرًا للكدح بالنسبة لي.
لن أواجه أي مشكلة في تثبيت / تجميع تبعية إضافية للحصول على هذا في الإصدار 1 كمعاينة.

أي تحرك في القضايا من جانب AWS من الأشياء؟

لما يستحق ، يبدو أن aws-vault قريب جدًا من الدمج في دعم U2F: https://github.com/99designs/aws-vault/pull/316

ومع ذلك ، فأنا أؤيد تمامًا إضافة دعم U2F الأصلي إلى أداة AWS CLI الرسمية.

لما يستحق ، يبدو أن aws-vault قريب جدًا من الدمج في دعم U2F: 99designs / aws-vault # 316

لا ، هذا مجرد إنشاء رموز TOTP باستخدام Yubikey. إنه حل يسمح لك باستخدام Yubikey الخاص بك ولكنه ليس U2F.

(يبدو أن هذا هو نفس ما يفعله awsu .)

يعد MFA بالكامل في awscli متعبًا للإعداد وعدم وجود دعم yubikey لا يساعد.
يجب ألا يكون أسلوب العائالت المتعددة MFA في عام 2019 ميزة متطورة.

أي تقدم في هذا؟

ركضت للتو في هذا. يرجى إزالة دعم Yubikey من وحدة تحكم الويب إذا كنت لا تخطط لدعمه في cli. إنه وقت مضيعة للغاية أن تضطر إلى البحث في Google عن هذه الأشياء واكتشاف أن AWS لا تدعم ما تعلن عنه

مثير للسخرية أن هذه المشكلة كانت مفتوحة منذ 440 يومًا ولم يتم حلها بعد.

دعم CLI سيكون محل تقدير كبير كما ذُكر سابقًا

مرحبًا ، نود فرض أسلوب العائالت المتعددة MFA على جميع المستخدمين البشريين باستخدام https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html (لعدم وجود حل أفضل) ولكن اتضح الآن أنه يتعين علينا إما:

أ) التخلي عن الفكرة تمامًا ، أو
ب) إجبار الجميع على الرجوع إلى إصدار أقدم من استخدام U2F إلى TOTP.

حقيقة أن IAM لا تدعم العديد من أجهزة MFA هي مزحة سيئة أيضًا ...

إنه عام 2020 تقريبًا. حل MFA المريح والآمن (اقرأ: U2F) أمر لا بد منه ، وليس ترفًا في رأيي. خاصة في المناطق التي يمكن أن تلحق فيها الجهات الخبيثة أضرارًا مالية جسيمة.

AWS ، من فضلك ، من فضلك ، استعد للعمل معًا واعمل على تعزيز دعم MFA الخاص بك في جميع أنحاء نظامك البيئي (CLI ، وتطبيقات الأجهزة المحمولة ، و AWS SSO - الذي لا يدعم U2F أيضًا!)

حقيقة أن IAM لا تدعم العديد من أجهزة MFA هي مزحة سيئة أيضًا ...

هذا محرج حقا. يعد تسجيل جهاز واحد فقط ممارسة سيئة حقًا ، لذا تعال إلى أمازون ، وأصلح هذا في أسرع وقت ممكن!

مثير للسخرية أن هذه المشكلة كانت مفتوحة منذ 440 يومًا ولم يتم حلها بعد.

إنه أسوأ من ذلك. في عام 2013 ، كتب شخص من أمازون:

لسوء الحظ في هذا الوقت ، من الممكن فقط الحصول على MFA واحد لكل حساب.
ومع ذلك ، فقد أثرت هذا الأمر مع فريق التطوير لدينا ليتم اعتباره ميزة للتطوير المستقبلي.
https://forums.aws.amazon.com/thread.jspa؟threadID=137055

سأفهم أن الفريق قد يكون مشغولاً أو غير ذلك ، لكن حقيقة أن لا أحد يكلف نفسه عناء الرد على هذه المسألة هو ما يقلقني. هذا ليس مشروعًا مفتوح المصدر ينقصه عدد الموظفين ويتقاضى أجورًا منخفضة حيث يمكن تبرير ذلك ولكن AWS نفسها.

491 يومًا ، لنفتح شمبانيا على 500! : الشمبانيا:: confetti_ball:

أفترض أن الأمازون تركز حقًا على مشاريع الحكومة حيث يوجد الدولار. هذا الخيط هو أحد الأمثلة على سبب عدم ترشيحي لأي شخص باستخدام AWS.
بالتأكيد ، كان هناك وقت كانوا متقدمين فيه ، لكن في الوقت الحاضر .. إنه يفتقر فقط إلى الميزات الأساسية. أعلم أنه خارج الموضوع ولكن هناك مثال آخر وهو أن الطريق 53 لا يزال لا يدعم DNSSEC ، لذا ها أنت ذا. أوه نعم ، يجب تسمية MFA باسم SFA لأنه لا يوجد "متعدد" في تنفيذ AWS.

آسف للتشدق ولكن على الأرجح لا أحد يشاهد هذا الموضوع باستثناء أفراد الأمن الذين يريدون هذه الميزة بالفعل.
يومين فقط حتى نصل إلى 500 :)!

أود حقا أن يضاف هذا. أجد أن الهواتف المحمولة تشتت انتباهي بشكل كبير وأفضّل ألا أضطر إلى سحب هاتفي عدة مرات في الساعة عندما أتفاعل مع خدمات AWS.

تم تحديث هذا قبل بضعة أيام - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

هل هذا يساعد أحدا؟

هل هذا يساعد أحدا؟

للأسف لا. IMHO هي مشكلة أخرى تحتاج AWS إلى بعض البرامج النصية المعقدة لاستخدام حتى رمز الرمز المميز. أستخدم وحدة PyPi لبرامج نصية بيثون aws-mfa للجهة الخارجية للتغلب على ذلك.
ولكن شكرا لك على الفكر @ كريس باتمان!

تم تحديث هذا قبل بضعة أيام - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

يوجد زر "أي شيء يمكننا تحسينه؟ أخبرنا" في الجزء السفلي من هذه المقالة والذي سأكون متأكدًا من الضغط عليه.

قمت بدوري وتركت تعليقاً في قسم "دعنا نعرف". سأكون متحمسًا جدًا أيضًا إذا تم تنفيذ هذه الميزة.

نفس الشكر لنشر steinybot

مضيفا تعليق حزين أنه لم يتم تنفيذه بعد
why

الذكرى السنوية الثانية تأتي في أقل من شهرين. يجب أن يقترب الآن ، أليس كذلك؟ حق؟

خبر سار: إذا كنت لا تستخدم aws-vault ، فيجب عليك ذلك. لقد قدموا للتو دعم Yubikey. إذا كان لديك yubikey يدعم TOTP ، فيمكنك إضافة رمز MFA بالداخل. في حين أن الخيار المثالي هو توقع ذلك من أمازون ، يمكننا أن نتفق جميعًا على أنهم لا يهتمون بينما يزداد جيف ثراءً.
إنه يحظى بدعم كبير للأدوار وهذا ، جزء مني حزين لأن هذه أداة تابعة لجهة خارجية ، ولكن هذا ما أحبه في المصدر المفتوح: لديك خيارات.
الرابط: https://github.com/99designs/aws-vault/blob/master/USAGE.md#using -a-yubikey

في حين أن aws-vault رائع ، إلا أنه يدعم TOTP وليس U2F.

بعد الأعمار في انتظار ذلك ، أستخدم الآن https://github.com/kreuzwerker/awsu

nbraud يبدو أن واجهة python التي يستخدمونها لا توفر عجلات لينكس ، لذا فإن التثبيت يتطلب أن يكون لدى المستخدم مترجم مثبت. هذا ليس شرطًا حاليًا لتثبيت cli ، لذا فإن إضافة هذه المكتبة ستكون تغييرًا جذريًا للعديد من المستخدمين.

بينما أشار jeffparsons إلى بعض الحلول الممكنة المعقولة إذا كنت تستخدم إحدى المكتبات الأكبر الأخرى مع المزيد من التبعيات ، سأشير أيضًا إلى وجود مكتبة Python أصغر يجب أخذها في الاعتبار: six . يقوم بتجميع ارتباطاته الخاصة المستندة إلى ctypes لمكالمات OS HID المتوافقة مع MacOS و Linux و Windows ومن المحتمل أن تغطي حالات الاستخدام "الكافية".

هل لدينا أي شخص يعمل على هذا حتى الآن؟ هل سيقبل فريق aws-cli تصحيحًا لأي نماذج أولية لهذه الوظيفة؟

تحرير: بعد قراءة المزيد من دليل مستخدم IAM ، يبدو أن U2F غير مدعوم على مستوى واجهة برمجة التطبيقات ، لذلك حتى إذا كان aws-cli يدعم مصادقة رمز U2F التفاعلية ، فإنه لا يبدو مثل GetSessionToken و AssumeRole دعم هذا في هذه المرحلة (كما هو مقتبس أدناه):

من المهم فهم الجوانب التالية لحماية MFA لعمليات API:

  • تتوفر حماية MFA فقط مع بيانات اعتماد الأمان المؤقتة ، والتي يجب الحصول عليها باستخدام AssumeRole أو GetSessionToken.
  • لا يمكنك استخدام الوصول المحمي بواجهة برمجة التطبيقات مع MFA مع مفاتيح أمان U2F.

أيضًا ، بخصوص التعليق الاجتماعي من kiwimato :

في حين أن الخيار المثالي هو توقع ذلك من أمازون ، يمكننا أن نتفق جميعًا على أنهم لا يهتمون بينما يزداد جيف ثراءً.

يرجى إدراك أن هذا موضوع تطوير برمجيات ، وليس منتدى نقاش حول الرأسمالية. تتكون فرق AWS من بشر حقيقيين كانوا من خلال تجربتي مستجيبين تمامًا لإصلاح الأشياء في botocore . إذا كان هناك شيء يزعجك ، فعليك أن تدرك أن طبيعة المصدر المفتوح للكثير من هذا يعني أنه يمكنك المساهمة في الإصلاح أو على الأقل المساعدة في طرح بعض الخيارات.

ومع ذلك ، في حين أن AWS API الأساسي نفسه لا يبدو أنه يدعم أي شيء يتجاوز TOTP لـ MFA ، يبدو أن هذه المشكلة قد تكون مشكلة أكبر من aws-cli ببساطة لا تدعم وظائف العميل. نأمل أن تتمكن AWS من رفع هذه البطاقة بمجرد أن تدعم واجهة برمجة التطبيقات U2F حتى نتمكن من الحصول على دعم العميل.

سيساعد حل مثل هذا على الأقل في تبديل السياق بين جهازك وهاتفك
https://authy.com/

هل هناك أي ETA على هذا؟ من المقلق جدًا أنه على ما يبدو لا أحد في العالم يستخدم ممارسات MFA جيدة لاستخدام AWS cli.

من المقلق جدًا أنه على ما يبدو لا أحد في العالم يستخدم ممارسات MFA جيدة لاستخدام AWS cli.

@ james-callahan هذا ليس صحيحا. نقصر الوصول إلى الأدوار على أولئك الذين لديهم مصادقة مع MFA. على سبيل المثال:

AssumeRolePolicyDocument:
  Version: '2012-10-17'
  Statement:
    - Effect: Allow
      Principal:
        AWS: !Sub
          - arn:aws:iam::${Account}:root
      Action:
        - sts:AssumeRole
      Condition:
        Bool:
          aws:MultiFactorAuthPresent: 'true'

ثم نستخدم أداة تسمى aws-mfa لإدارة الحصول على اعتمادات مؤقتة من STS وتحديث ملفات اعتماد AWS الخاصة بنا. هناك طرق أخرى لإدارة التفاعل مع STS لنفس الهدف.

تركز هذه التذكرة على إضافة دعم خاص لـ U2F.

@ james-callahan هذا ليس صحيحا. نقصر الوصول إلى الأدوار على أولئك الذين لديهم مصادقة مع MFA.

هذا يعمل فقط مع TOTP ؛ والتي لا ينبغي اعتبارها عاملاً ثانيًا عالي الجودة نظرًا لسهولة تصيد بيانات اعتماد TOTP وما إلى ذلك.
ويزداد الأمر سوءًا بسبب حقيقة أن AWS لا تسمح لك بتسجيل كل من U2F وجهاز TOTP لمستخدم IAM واحد ، لذلك إذا كنت تريد استخدام U2F للوصول إلى واجهة المستخدم ، فلا يمكنك استخدام أي MFA من cli.

بالنسبة للمستخدمين الذين يحتاجون إليها ، نقوم بإنشاء حسابين:

  1. مستخدم لوحدة التحكم ، حيث يقومون بتمكين U2F أو لا يمكنهم الوصول إلى أي شيء.
  2. مستخدم للوصول إلى cli ، حيث يضيفون مفاتيح الوصول ويمكّنون MFA أو لا يمكنهم الوصول إلى أي شيء.

من الصعب جدًا تصيد TOTP من حساب وصول cli فقط.

تضمين التغريدة
هذا يبدو مبالغة بعض الشيء بالنسبة لحل IMO. يجب عليك الاحتفاظ بحسابين لإدارة الأمان لمؤسسة AWS فقط حتى يكون لديك U2F على وحدة التحكم.
لا أرى أنه حل معقول لأي شركة تريد استخدام U2F.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات