AWS: Memungkinkan pengguna IAM yang diautentikasi MFA untuk mengelola perangkat MFA mereka sendiri di halaman kredensi Keamanan - AWS Identity and Access Management

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS: Memungkinkan pengguna IAM yang diautentikasi MFA untuk mengelola perangkat MFA mereka sendiri di halaman kredensi Keamanan

Contoh ini menunjukkan bagaimana Anda dapat membuat kebijakan berbasis identitas yang memungkinkan pengguna IAM yang diautentikasi melalui otentikasi multi-faktor (MFA) untuk mengelola perangkat MFA mereka sendiri di halaman kredensi Keamanan. AWS Management Console Halaman ini menampilkan informasi akun dan pengguna, tetapi pengguna hanya dapat melihat dan mengedit perangkat MFA mereka sendiri. Untuk mengizinkan pengguna mengelola semua kredensial milik mereka menggunakan MFA, lihat AWS: Memungkinkan pengguna IAM yang diautentikasi MFA untuk mengelola kredensialnya sendiri di halaman kredensi Keamanan.

catatan

Jika pengguna IAM dengan kebijakan ini tidak diautentikasi oleh MFA, kebijakan ini menolak akses ke semua AWS tindakan kecuali yang diperlukan untuk mengautentikasi menggunakan MFA. Untuk menggunakan AWS API AWS CLI dan, pengguna IAM harus terlebih dahulu mengambil token MFA mereka menggunakan AWS STS GetSessionTokenoperasi dan kemudian menggunakan token itu untuk mengautentikasi operasi yang diinginkan. Kebijakan lain, seperti kebijakan berbasis sumber daya atau kebijakan berbasis identitas lainnya dapat memungkinkan tindakan di layanan lain. Kebijakan ini akan menolak akses tersebut jika pengguna IAM tidak diautentikasi oleh MFA.

Untuk mempelajari cara pengguna dapat mengakses halaman Kredensial keamanan, lihat. Cara pengguna IAM mengubah kata sandi mereka sendiri (konsol)

Apa yang dilakukan kebijakan ini?

  • Pernyataan AllowViewAccountInfo mengizinkan pengguna untuk melihat detail tentang perangkat MFA virtual yang diaktifkan untuk pengguna. Izin ini harus berada dalam pernyataannya sendiri karena hal itu tidak mendukung ARN sumber daya tertentu. Sebagai gantinya Anda harus menentukan "Resource" : "*".

  • AllowManageOwnVirtualMFADevicePernyataan tersebut memungkinkan pengguna untuk membuat perangkat MFA virtual mereka sendiri. ARN sumber daya dalam pernyataan ini memungkinkan pengguna untuk membuat perangkat MFA dengan nama apa pun, tetapi pernyataan lain dalam kebijakan hanya mengizinkan pengguna untuk melampirkan perangkat ke pengguna yang saat ini masuk.

  • Pernyataan AllowManageOwnUserMFA mengizinkan pengguna untuk melihat atau mengelola perangkat MFA virtual, U2F, atau perangkat keras milik mereka. ARN sumber daya dalam pernyataan ini mengizinkan akses hanya ke pengguna IAM milik pengguna. Pengguna tidak dapat melihat atau mengelola perangkat MFA untuk pengguna lain.

  • DenyAllExceptListedIfNoMFAPernyataan tersebut menolak akses ke setiap tindakan di semua AWS layanan, kecuali beberapa tindakan yang terdaftar, tetapi hanya jika pengguna tidak masuk dengan MFA. Pernyataan ini menggunakan kombinasi "Deny" dan "NotAction" untuk secara tegas menolak akses ke setiap tindakan yang tidak tercantum. Item yang tercantum tidak ditolak atau diizinkan oleh pernyataan ini. Namun, tindakan tersebut diizinkan oleh pernyataan lain dalam kebijakan tersebut. Untuk informasi lebih lanjut tentang logika pernyataan ini, lihat NotAction dengan Deny. Jika pengguna masuk di dengan MFA, maka pengujian Condition gagal dan pernyataan ini tidak menolak tindakan apa pun. Dalam kasus ini, kebijakan atau pernyataan lain untuk pengguna menentukan izin pengguna.

    Pernyataan ini memastikan bahwa ketika pengguna belum masuk di dengan MFA, mereka hanya dapat melakukan tindakan yang tercantum. Sebagai tambahan, mereka dapat melakukan tindakan yang tercantum hanya jika pernyataan atau kebijakan lain mengizinkan akses ke tindakan tersebut.

    Versi ...IfExists dari operator Bool memastikan bahwa jika kunci aws:MultiFactorAuthPresent hilang, ketentuan menghasilkan sah. Ini berarti bahwa pengguna yang mengakses kredensial jangka panjang operasi API, seperti kunci akses, ditolak aksesnya ke operasi API non-IAM.

Kebijakan ini tidak mengizinkan pengguna untuk melihat halaman Pengguna di konsol IAM atau menggunakan halaman tersebut untuk mengakses informasi pengguna milik mereka. Untuk mengizinkan ini, tambahkan tindakan iam:ListUsers ke pernyataan AllowViewAccountInfo dan pernyataan DenyAllExceptListedIfNoMFA.

Awas

Jangan tambahkan izin untuk menghapus perangkat MFA tanpa autentikasi MFA. Pengguna dengan kebijakan ini mungkin mencoba untuk menetapkan sendiri perangkat MFA virtual dan menerima kesalahan bahwa mereka tidak berwenang untuk melakukan. iam:DeleteVirtualMFADevice Jika ini terjadi, jangan tambahkan izin tersebut ke pernyataan DenyAllExceptListedIfNoMFA. Pengguna yang tidak diautentikasi menggunakan MFA seharusnya tidak pernah diizinkan untuk menghapus perangkat MFA mereka. Pengguna mungkin melihat kesalahan ini jika sebelumnya mereka mulai memberikan perangkat MFA virtual ke penggunanya dan membatalkan proses tersebut. Untuk mengatasi masalah ini, Anda atau administrator lain harus menghapus perangkat MFA virtual pengguna yang ada menggunakan API AWS CLI atau AWS . Untuk informasi selengkapnya, lihat Saya tidak berwenang untuk melakukan: iam: MFADevice DeleteVirtual.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowViewAccountInfo", "Effect": "Allow", "Action": "iam:ListVirtualMFADevices", "Resource": "*" }, { "Sid": "AllowManageOwnVirtualMFADevice", "Effect": "Allow", "Action": [ "iam:CreateVirtualMFADevice" ], "Resource": "arn:aws:iam::*:mfa/*" }, { "Sid": "AllowManageOwnUserMFA", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:GetMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "DenyAllExceptListedIfNoMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:ListMFADevices", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"} } } ] }