Amazon EC2: Memerlukan MFA (GetSessionToken) untuk operasi EC2 tertentu - 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.

Amazon EC2: Memerlukan MFA (GetSessionToken) untuk operasi EC2 tertentu

Contoh ini menunjukkan cara membuat kebijakan berbasis identitas yang memungkinkan akses penuh ke semua operasi AWS API di Amazon EC2. Namun, itu secara tegas menolak akses ke StopInstances dan TerminateInstances Operasi API jika pengguna tidak diautentikasi menggunakan Multi-Factor Authentication (MFA). Untuk melakukan ini secara terprogram, pengguna harus menyertakan nilai opsional SerialNumber dan TokenCode saat memanggil operasi GetSessionToken. Operasi ini mengembalikan kredensial sementara yang diautentikasi menggunakan MFA. Untuk mempelajari lebih lanjut tentang GetSessionToken, lihatMeminta kredensi untuk pengguna di lingkungan yang tidak tepercaya.

Apa yang dikerjakan oleh kebijakan ini?

  • Pernyataan AllowAllActionsForEC2 mengizinkan semua tindakan Amazon EC2

  • Pernyataan DenyStopAndTerminateWhenMFAIsNotPresent menolak tindakan StopInstances dan TerminateInstances saat konteks MFA hilang. Ini berarti tindakan tersebut ditolak saat konteks multi-factor authentication hilang (artinya MFA tidak digunakan). Penolakan mennimpa izin.

catatan

Pemeriksaaan ketentuan untuk MultiFactorAuthPresent dalam pernyataan Deny tidak boleh berupa {"Bool":{"aws:MultiFactorAuthPresent":false}} karena kunci tersebut tidak ada dan tidak dapat dievaluasi saat MFA tidak digunakan. Sebagai gantinya, gunakan periksa BoolIfExists untuk melihat apakah kuncinya ada sebelum memeriksa nilai. Untuk informasi selengkapnya, lihat ... IfExists operator kondisi.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllActionsForEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": false} } } ] }