Aws-cli: Dukungan U2F

Dibuat pada 26 Sep 2018  ·  45Komentar  ·  Sumber: aws/aws-cli

Per blog AWS, U2F sekarang didukung untuk login Konsol:
https://aws.amazon.com/blogs/security/use-yubikey-security-key-sign-into-aws-management-console/

Sangat penting ada jalur untuk mendukung ini di aws-cli sehingga kami dapat mengetuk untuk melakukan perintah alih-alih memiliki token yang berumur panjang di disk/memori.

feature-request v2

Komentar yang paling membantu

Sejauh yang saya mengerti masalah ini STS/IAM harus mendapatkan dukungan API untuk kunci keamanan sebagai token MFA sebelum melanjutkan dengan ini?

Adakah yang bisa menjelaskan ini? Tentunya jika itu belum didukung maka itu hanya sekitar sudut ...?

EDIT:

Tolong jangan biarkan ini berubah menjadi salah satu kasus mengerikan di mana perusahaan menganggap tidak ada pelanggan mereka yang peduli dengan fitur, karena mereka menerapkan versi yang tidak terlalu berguna dan kemudian tidak ada yang menggunakannya.

Saya tidak pernah menggunakan UI web untuk masuk ke konsol Amazon. Semuanya digerakkan oleh CLI untuk saya, karena saya memiliki beberapa akun yang harus saya tangani (dll.). Dan bahkan jika saya _melakukan_ menggunakan UI web untuk masuk, maka sebagaimana adanya saya harus mengotak-atik _duplikat akun_ dari semua akun saya yang ada untuk digunakan dengan U2F, karena saya masih perlu menggunakan Google/LastPass lama saya /apapun autentikator untuk semua barang aws-cli .

Jadi... Dukungan U2F AWS memiliki _potensi_ untuk menjadi sesuatu yang akan _sangat_ saya sukai, tetapi tanpa dukungan CLI hal ini belum layak untuk disentuh. Saya membayangkan banyak orang berada di kapal yang sama.

Semua 45 komentar

AFAIK, U2F umumnya hanya berfungsi di browser web. Bagaimana Anda mengharapkannya digunakan dari CLI? Jalankan browser?

@JensRantil Tidak, aplikasi apa pun dapat berinteraksi dengan token U2F.

Sumber: Saya memelihara libu2f-* dan pam-u2f di Debian ;)

Sepertinya U2F belum didukung untuk akses API:

Anda tidak dapat menggunakan akses API yang dilindungi MFA dengan kunci keamanan U2F.

Yang mengatakan, saya pasti telah menyampaikan umpan balik ini kepada tim layanan. Pengalaman saya sendiri adalah bahwa U2F 100000x lebih dapat digunakan daripada faktor kedua lainnya, jadi saya ingin melihatnya bahkan untuk penggunaan saya sendiri.

Satu peringatan adalah bahwa ini perlu menjadi fitur V2 karena saya cukup yakin kita harus menarik dependensi c untuk berinteraksi dengan token u2f.

@JordonPhillips FYI, ada perpustakaan host Python U2F dari Yubico; itu sendiri 100% Python, tetapi tergantung pada hidapi , yang IIRC gunakan libusb dan libudev .
OTOH, itu sudah tersedia di semua distro besar, jadi itu bukan masalah besar?

Ini juga akan membutuhkan (seperti penggunaan U2F) bahwa pengguna dapat berinteraksi dengan perangkat U2F; Yubico mempertahankan aturan udev upstreams di libu2f-host , yang saya kirimkan di Debian sebagai libu2f-udev (sehingga mereka dapat diinstal tanpa menarik pustaka C), yang merupakan ketergantungan task-desktop (dimulai di Debian 10 "buster"), jadi sebagian besar pengguna akan menginstalnya di luar kotak; in stretch (stabil Debian saat ini), kami mengirimkan aturan udev untuk U2F dalam paket udev , jadi itu juga tersedia di sana.
TL;DR: Debian harus memiliki izin yang tepat untuk perangkat U2F di jessie dan seterusnya (dirilis lebih dari setahun yang lalu), dan begitu juga semua turunan Debian (kecuali jika mereka berusaha keras untuk memecahkan U2F...)

Ini akan sangat membantu saya. Mengeluarkan ponsel saya 10-20 kali sehari untuk menyalin TOTP tidak menyenangkan. Jika saya bisa mengetuk Yubikey saya saja, pengalaman aws-cli saya akan _so_ jauh lebih menyenangkan.

@nbraud sepertinya antarmuka python yang mereka gunakan tidak menyediakan roda linux, jadi menginstalnya mengharuskan pengguna menginstal kompiler. Saat ini bukan persyaratan untuk menginstal cli, jadi menambahkan perpustakaan itu akan menjadi perubahan besar bagi banyak pengguna.

@JordonPhillips Mengenai memperkenalkan perubahan yang melanggar... Saya dapat membayangkan beberapa pendekatan yang akan membuat pengguna yang antusias mendapat manfaat dari ini lebih awal tanpa merusak hal-hal untuk pengguna yang kurang berani:

  1. Jadikan ketergantungan opsional di v1, dan kemudian orang yang benar-benar peduli tentangnya dapat mengkompilasi dengan tanda khusus untuk mengaktifkannya. Dengan cara ini mereka memilih untuk "mempratinjau" apa yang pada akhirnya akan menjadi bagian dari klien v2 secara default.

  2. Pisahkan potongan U2F menjadi biner terpisah, dan deteksi keberadaannya saat runtime. Kemudian pengguna yang mencoba menggunakan AWS CLI dengan U2F akan diberi tahu "instal alat lain ini" untuk membuatnya berfungsi. Jadi, di Mac, misalnya, saya akan jauh dari kebahagiaan brew install aws-cli-u2f . 😃

Ya, saya akan dengan senang hati memasang modul kompilasi-dari-sumber opsional untuk mendapatkan fungsi ini. Itu hanya akan diperlukan pada mesin pengembang — yang hampir selalu memiliki kompiler — dan bukan pada server.

Alternatif untuk python-u2f-Host adalah python-fido2 yang membuat Anda keluar dari kebutuhan pustaka C untuk USB HID dan berarti Anda hanya memerlukan pustaka Kriptografi yang mengirimkan roda ...

Saya akan menahan napas untuk ini 👍

Sejauh yang saya mengerti masalah ini STS/IAM harus mendapatkan dukungan API untuk kunci keamanan sebagai token MFA sebelum melanjutkan dengan ini?

Sejauh yang saya mengerti masalah ini STS/IAM harus mendapatkan dukungan API untuk kunci keamanan sebagai token MFA sebelum melanjutkan dengan ini?

Adakah yang bisa menjelaskan ini? Tentunya jika itu belum didukung maka itu hanya sekitar sudut ...?

EDIT:

Tolong jangan biarkan ini berubah menjadi salah satu kasus mengerikan di mana perusahaan menganggap tidak ada pelanggan mereka yang peduli dengan fitur, karena mereka menerapkan versi yang tidak terlalu berguna dan kemudian tidak ada yang menggunakannya.

Saya tidak pernah menggunakan UI web untuk masuk ke konsol Amazon. Semuanya digerakkan oleh CLI untuk saya, karena saya memiliki beberapa akun yang harus saya tangani (dll.). Dan bahkan jika saya _melakukan_ menggunakan UI web untuk masuk, maka sebagaimana adanya saya harus mengotak-atik _duplikat akun_ dari semua akun saya yang ada untuk digunakan dengan U2F, karena saya masih perlu menggunakan Google/LastPass lama saya /apapun autentikator untuk semua barang aws-cli .

Jadi... Dukungan U2F AWS memiliki _potensi_ untuk menjadi sesuatu yang akan _sangat_ saya sukai, tetapi tanpa dukungan CLI hal ini belum layak untuk disentuh. Saya membayangkan banyak orang berada di kapal yang sama.

@jeffparsons sangat setuju U2F MFA untuk CLI/SDK sangat dibutuhkan. Saya yakin mereka akan menolak melakukan pendekatan libusb/python-fido karena tidak memetakan dengan baik untuk melakukannya di Ruby/Java dll SDK. U2F dengan respons tantangan satu sentuhan akan cukup universal.

btw Anda dapat beralih akun di konsol web dengan sangat mudah dengan mengambil peran di akun lain
Suka:
https://signin.aws.amazon.com/switchrole?roleName=SomeAdminRole&account=YourAccountNumberOrAlias
Lihat:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

Anda kemudian dapat melihat pengalih peran di tarik-turun pengguna/akun Anda di kanan atas halaman

juga orang ini mungkin melakukan sesuatu... https://Gist.github.com/woowa-hsw0/caa3340e2a7b390dbde81894f73e379d

Ini juga solusi yang sangat bagus https://github.com/kreuzwerker/awsu

Bekerja dengan beberapa pengaturan akun mutli semuanya dengan idp terpisah menggunakan U2F yang sama dengan semuanya akan menjadi pengurangan besar dari kerja keras bagi saya.
Saya juga tidak akan memiliki masalah untuk menginstal/mengkompilasi ketergantungan tambahan untuk mendapatkan ini di v1 sebagai pratinjau.

Setiap gerakan pada isu-isu di sisi aws hal?

Untuk apa nilainya, aws-vault tampaknya cukup dekat untuk bergabung dalam dukungan U2F: https://github.com/99designs/aws-vault/pull/316

Karena itu, saya sangat mendukung penambahan dukungan U2F asli ke alat AWS CLI resmi.

Untuk apa nilainya, aws-vault tampaknya cukup dekat untuk bergabung dalam dukungan U2F: 99designs/aws-vault#316

Tidak, itu hanya membuat token TOTP menggunakan Yubikey. Ini adalah solusi yang memungkinkan Anda untuk menggunakan Yubikey tetapi bukan U2F.

(Sepertinya ini sama dengan yang dilakukan awsu .)

Seluruh MFA di awscli diatur dan kurangnya dukungan yubikey tidak membantu.
MFA pada tahun 2019 seharusnya menjadi fitur yang tidak harus canggih.

Ada kemajuan dalam hal ini?

baru saja mengalami ini. Harap hapus dukungan untuk Yubikey dari konsol web jika Anda tidak berencana untuk mendukungnya di cli. Sangat membuang waktu jika harus mencari barang ini di Google dan mengetahui AWS tidak mendukung apa yang diiklankan

Cukup konyol bahwa masalah ini telah terbuka selama 440 hari dan belum terselesaikan.

Dukungan CLI seperti yang dinyatakan sebelumnya akan sangat dihargai

Hai, kami ingin menerapkan MFA untuk semua pengguna manusia dengan https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html (karena kurangnya solusi yang lebih baik) tetapi sekarang ternyata kita harus:

a) menyerah pada gagasan itu sama sekali, atau
b) memaksa semua orang untuk menurunkan versi dari menggunakan U2F ke TOTP.

Fakta bahwa IAM tidak mendukung banyak perangkat MFA juga merupakan lelucon yang buruk...

Hampir tahun 2020. Nyaman dan aman (baca: U2F) Solusi MFA adalah suatu keharusan, bukan kemewahan menurut saya. Terutama di area di mana pelaku kejahatan dapat menimbulkan kerugian finansial yang serius.

AWS, tolong, tolong, tolong, kumpulkan tindakan Anda dan bekerja untuk meningkatkan dukungan MFA Anda di seluruh ekosistem Anda (CLI, aplikasi seluler, AWS SSO - yang juga tidak mendukung U2F!)

Fakta bahwa IAM tidak mendukung banyak perangkat MFA juga merupakan lelucon yang buruk...

Ini benar-benar memalukan. Mendaftarkan hanya satu perangkat adalah praktik yang sangat buruk, jadi ayo Amazon, perbaiki ini secepatnya!

Cukup konyol bahwa masalah ini telah terbuka selama 440 hari dan belum terselesaikan.

Ini lebih buruk dari itu. Pada tahun 2013 seseorang dari Amazon menulis:

Sayangnya saat ini hanya dimungkinkan untuk memiliki satu MFA per akun.
Namun saya telah mengangkat ini dengan tim pengembangan kami untuk dipertimbangkan sebagai fitur untuk pengembangan masa depan.
https://forums.aws.amazon.com/thread.jspa?threadID=137055

Saya akan mengerti bahwa tim mungkin sibuk atau sebaliknya, tetapi fakta bahwa tidak ada yang mau repot-repot membalas masalah ini adalah yang membuat saya khawatir. Ini bukan proyek sumber terbuka yang kekurangan staf dan dibayar rendah di mana hal ini dapat dimaafkan tetapi AWS itu sendiri.

491 hari, ayo buka sampanye di 500! :sampanye: :confetti_ball:

Saya berasumsi Amazon benar-benar fokus pada proyek GOV di mana $ berada. Utas ini adalah salah satu contoh mengapa saya biasanya tidak merekomendasikan kepada siapa pun untuk menggunakan AWS.
Tentu, ada saat mereka canggih, tetapi saat ini .. hanya kekurangan fitur dasar. Saya tahu ini keluar dari topik tetapi contoh lain adalah Route 53 masih tidak mendukung DNSSEC, jadi ini dia. Oh ya, dan MFA harus disebut SFA karena tidak ada "Multi" dalam implementasi AWS.

Maaf untuk kata-kata kasar, tetapi kemungkinan besar tidak ada yang menonton utas ini kecuali orang-orang keamanan yang benar-benar menginginkan fitur tersebut.
Hanya beberapa hari sampai kita mencapai 500 :) !

Saya sangat ingin ini ditambahkan. Saya menemukan ponsel sangat mengganggu dan lebih suka tidak perlu mengeluarkan ponsel saya beberapa kali per jam ketika saya berinteraksi dengan layanan AWS.

Ini diperbarui beberapa hari yang lalu - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Apakah itu membantu siapa pun?

Apakah itu membantu siapa pun?

Sayangnya tidak. IMHO itu masalah lain bahwa AWS memerlukan beberapa skrip kompleks untuk menggunakan bahkan kode token. Saya menggunakan modul PyPi skrip python aws-mfa pihak ke-3 untuk menyiasatinya.
Tapi terima kasih atas pemikirannya @chris-bateman !

Ini diperbarui beberapa hari yang lalu - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Ada tombol "Ada yang bisa kami perbaiki? Beri tahu kami" di bagian bawah artikel yang pasti akan saya tekan.

Saya melakukan bagian saya dan meninggalkan komentar di bagian "beri tahu kami". Saya juga akan sangat senang jika fitur ini diterapkan.

sama terima kasih telah memposting @steinybot

Menambahkan komentar sedih bahwa itu belum diterapkan
why

Peringatan dua tahun datang dalam waktu kurang dari 2 bulan. Pasti sudah dekat sekarang, kan? Benar?

Kabar baik: jika Anda tidak menggunakan aws-vault, Anda harus melakukannya. Mereka baru saja memperkenalkan dukungan Yubikey. Jika Anda memiliki yubikey yang mendukung TOTP maka Anda dapat menambahkan kode MFA di dalamnya. Sementara yang ideal adalah mengharapkannya dari Amazon, kita semua bisa setuju bahwa mereka tidak peduli saat Jeff semakin kaya.
Ini memiliki dukungan besar untuk peran dan semacamnya, sebagian dari saya sedih karena ini adalah alat pihak ke-3, tetapi itulah yang saya sukai dari open source: Anda memiliki opsi.
tautan: https://github.com/99designs/aws-vault/blob/master/USAGE.md#using -a-yubikey

Meskipun aws-vault bagus, ini mendukung TOTP, bukan U2F.

setelah lama menunggu ini, saya sekarang menggunakan https://github.com/kreuzwerker/awsu

@nbraud sepertinya antarmuka python yang mereka gunakan tidak menyediakan roda linux, jadi menginstalnya mengharuskan pengguna menginstal kompiler. Saat ini bukan persyaratan untuk menginstal cli, jadi menambahkan perpustakaan itu akan menjadi perubahan besar bagi banyak pengguna.

Sementara @jeffparsons menunjukkan beberapa solusi potensial yang masuk akal jika Anda menggunakan salah satu perpustakaan lain yang lebih besar dengan lebih banyak dependensi, saya juga akan menunjukkan bahwa ada perpustakaan Python yang lebih kecil yang harus dipertimbangkan: pyu2f . Itu juga bergantung pada pustaka USB HID asli untuk berkomunikasi dengan kunci U2F, tetapi hanya memiliki satu ketergantungan Python: six . Ini mengemas binding berbasis ctypes ke panggilan OS HID yang kompatibel dengan MacOS, Linux, dan Windows dan kemungkinan akan mencakup kasus penggunaan "cukup".

Apakah kita sudah ada yang mengerjakan ini? Apakah tim aws-cli menerima tambalan untuk prototipe apa pun dari fungsi ini?

EDIT: Setelah membaca lebih lanjut dari panduan pengguna IAM , sepertinya U2F tidak didukung di tingkat API, jadi meskipun aws-cli mendukung otentikasi token U2F interaktif, itu tidak terlihat seperti GetSessionToken dan AssumeRole mendukung ini pada saat ini (seperti dikutip di bawah):

Penting untuk memahami aspek perlindungan MFA berikut untuk operasi API:

  • Perlindungan MFA hanya tersedia dengan kredensial keamanan sementara, yang harus diperoleh dengan AssumeRole atau GetSessionToken.
  • Anda tidak dapat menggunakan akses API yang dilindungi MFA dengan kunci keamanan U2F.

Juga, mengenai komentar sosial dari @kiwimato :

Sementara yang ideal adalah mengharapkannya dari Amazon, kita semua bisa setuju bahwa mereka tidak peduli saat Jeff semakin kaya.

Harap disadari ini adalah utas pengembangan perangkat lunak, bukan forum debat kapitalisme. Tim AWS terdiri dari manusia asli yang menurut pengalaman saya cukup responsif untuk memperbaiki berbagai hal di botocore . Jika ada sesuatu yang mengganggu Anda, sadari sifat open source dari banyak hal ini berarti Anda dapat membantu berkontribusi memperbaiki atau setidaknya membantu brainstorming beberapa opsi.

Namun, sementara AWS API yang mendasari itu sendiri tampaknya tidak mendukung apa pun di luar TOTP untuk MFA, sepertinya masalah ini mungkin merupakan masalah yang lebih besar daripada aws-cli tidak mendukung fungsionalitas klien. Semoga AWS dapat meningkatkan tiket ini setelah API mendukung U2F sehingga kami bisa mendapatkan dukungan klien bergulir.

Setidaknya solusi seperti ini akan membantu peralihan konteks antara mesin dan ponsel Anda
https://authy.com/

Apakah ada ETA tentang ini? Sangat memprihatinkan bahwa tampaknya tidak ada seorang pun di dunia yang menggunakan praktik MFA yang baik untuk penggunaan cli AWS mereka.

Sangat memprihatinkan bahwa tampaknya tidak ada seorang pun di dunia yang menggunakan praktik MFA yang baik untuk penggunaan cli AWS mereka.

@james-callahan itu tidak benar. Kami membatasi akses ke peran hanya untuk peran yang telah diautentikasi dengan MFA. Misalnya:

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

Kemudian kami menggunakan alat yang disebut aws-mfa untuk mengelola perolehan

Tiket ini berfokus pada penambahan dukungan khusus untuk U2F.

@james-callahan itu tidak benar. Kami membatasi akses ke peran hanya untuk peran yang telah diautentikasi dengan MFA.

Ini hanya bekerja dengan TOTP; yang tidak boleh dianggap sebagai faktor kedua berkualitas tinggi karena kemudahan kredensial TOTP phishing, dll.
Ini diperburuk oleh fakta bahwa AWS tidak mengizinkan Anda untuk mendaftarkan perangkat U2F dan TOTP ke satu pengguna IAM, jadi jika Anda ingin menggunakan U2F untuk akses UI, Anda tidak dapat menggunakan MFA apa pun dari cli.

Bagi pengguna yang membutuhkannya, kami membuat dua akun:

  1. pengguna untuk konsol, di mana mereka mengaktifkan U2F atau tidak dapat mengakses apa pun.
  2. pengguna untuk akses cli, di mana mereka menambahkan kunci akses dan mengaktifkan MFA atau tidak dapat mengakses apa pun.

Cukup sulit untuk melakukan phishing TOTP dari akun yang hanya mengakses cli.

@craighurley
Ini terlihat agak berlebihan untuk solusi IMO. Anda harus memelihara 2 akun untuk manajemen keamanan organisasi AWS hanya untuk memiliki U2F di konsol.
Saya tidak melihatnya sebagai solusi yang masuk akal untuk perusahaan mana pun yang ingin menggunakan U2F.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat