Apakah ada perintah / sub-perintah yang dapat diteruskan ke aws
utilitas yang dapat 1) memverifikasi bahwa kredensial dalam ~/.aws/credentials
file tersebut valid, dan 2) memberikan beberapa indikasi pengguna pengguna kredensial yang mana? Saya mencari sesuatu yang umum yang tidak membuat asumsi tentang pengguna yang memiliki izin untuk IAM atau layanan tertentu.
Kasus penggunaan untuk ini adalah pemeriksaan kewarasan waktu penyebaran untuk memastikan bahwa kredensial baik. Idealnya akan ada beberapa cara untuk memeriksa nilai kembali dan membatalkan penyebaran jika ada kredensial yang tidak valid.
amazon-web-services
aws-cli
smitelli
sumber
sumber
Jawaban:
Gunakan GetCallerIdentity :
aws sts get-caller-identity
Tidak seperti panggilan API / CLI lainnya, panggilan akan selalu berfungsi, terlepas dari izin IAM Anda.
Anda akan mendapatkan output dalam format berikut:
Format ARN yang tepat akan tergantung pada jenis kredensial, tetapi sering kali menyertakan nama pengguna (manusia).
Ini menggunakan kode kesalahan AWS CLI standar yang memberikan 0 pada keberhasilan dan 255 jika Anda tidak memiliki kredensial.
sumber
aws iam get-user --profile test-mfa
, saya mendapatkan:An error occurred (AccessDenied) when calling the GetUser operation
. Namun,aws sts get-caller-identity --profile test-mfa
keluaran (sama, tanpa token sesi MFA aktif)test-mfa
Akun, ARN, dan UserId.Ada cara yang lurus -
aws iam get-user
akan memberi tahu detail tentang siapa Anda (Pengguna IAM saat ini) - asalkan pengguna memilikiiam
hak istimewa.Ada beberapa panggilan CLI yang mendukung
--dry-run
flag sepertiaws ec2 run-instances
yang Anda beri tahu apakah Anda memiliki konfigurasi / kredit yang diperlukan untuk melakukan operasi.Ada juga
--auth-dry-run
yang memeriksa apakah Anda memiliki izin yang diperlukan untuk perintah tersebut, tanpa benar-benar menjalankan perintah. Jika Anda memiliki izin yang diperlukan, perintah mengembalikan DryRunOperation; jika tidak, ia mengembalikan Operasi Tidak Sah. [Dari Dokumentasi AWS - Opsi Umum ]Anda dapat mendaftar Kunci Akses IAM dari Konsol Manajemen yang dapat Anda periksa silang untuk melihat siapa yang telah ditetapkan kunci mana.
Cara terbaik untuk memahami pengguna / peran mana yang memiliki hak istimewa adalah dengan menggunakan Simulator Kebijakan IAM .
sumber
AccessDenied
kesalahan - yang termasukarn:aws:iam::123...890:user/somebody
string penuh sebagai bagian dari output kesalahan.