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 kredensialnya sendiri di halaman kredensi Keamanan
Contoh ini menunjukkan bagaimana Anda dapat membuat kebijakan berbasis identitas yang memungkinkan pengguna IAM yang diautentikasi menggunakan otentikasi multi-faktor (MFA) untuk mengelola kredensialnya sendiri di halaman Kredensi Keamanan. Halaman AWS Management Console ini menampilkan informasi akun seperti ID akun dan ID pengguna kanonik. Pengguna juga dapat melihat dan mengubah kata sandi, access key, perangkat MFA, sertifikat X.509, dan kunci SSH serta kredensial Git milik mereka. Contoh kebijakan ini mencakup izin yang diperlukan untuk melihat dan mengubah semua informasi di halaman tersebut. Ini juga mengharuskan pengguna untuk mengatur dan mengautentikasi menggunakan MFA sebelum melakukan operasi lain di. AWS Untuk mengizinkan pengguna mengelola kredensial milik mereka tanpa menggunakan MFA, lihat AWS: Memungkinkan pengguna IAM untuk mengelola kredensialnya sendiri di halaman kredensial Keamanan.
Untuk mempelajari cara pengguna dapat mengakses halaman Kredensial keamanan, lihat. Cara pengguna IAM mengubah kata sandi mereka sendiri (konsol)
catatan
-
Kebijakan contoh ini tidak mengizinkan pengguna untuk mengatur ulang kata sandi saat masuk AWS Management Console untuk pertama kalinya. Kami menyarankan Anda untuk tidak memberikan izin kepada pengguna baru sampai setelah mereka masuk. Untuk informasi selengkapnya, lihat Bagaimana cara membuat pengguna IAM dengan aman?. Ini juga mencegah pengguna dengan kata sandi yang kedaluwarsa mengatur ulang kata sandi mereka saat masuk. Anda dapat mengizinkan ini dengan menambahkan
iam:ChangePassword
daniam:GetAccountPasswordPolicy
ke pernyataanDenyAllExceptListedIfNoMFA
. Namun, kami tidak merekomendasikan ini karena mengizinkan pengguna untuk mengubah kata sandi mereka tanpa MFA dapat menjadi risiko keamanan. -
Jika Anda bermaksud menggunakan kebijakan ini untuk akses terprogram, Anda harus menelepon
GetSessionToken
untuk mengautentikasi dengan MFA. Untuk informasi selengkapnya, lihat APIAkses aman dengan MFA.
Apa yang dilakukan kebijakan ini?
-
Pernyataan
AllowViewAccountInfo
mengizinkan pengguna untuk melihat informasi tingkat akun. Izin ini harus ada di dalam pernyataan milik mereka karena hal itu tidak mendukung atau tidak perlu untuk menentukan ARN sumber daya tertentu. Alih-alih, izin ini menentukan"Resource" : "*"
. Pernyataan ini mencakup tindakan berikut yang mengizinkan pengguna melihat informasi spesifik:-
GetAccountPasswordPolicy
– Melihat persyaratan kata sandi akun saat mengubah kata sandi pengguna IAM milik mereka. -
ListVirtualMFADevices
– Melihat detail tentang perangkat MFA virtual yang diaktifkan untuk pengguna.
-
-
Pernyataan
AllowManageOwnPasswords
mengizinkan pengguna untuk mengubah kata sandi milik mereka. Pernyataan ini juga mencakupGetUser
tindakan, yang diperlukan untuk melihat sebagian besar informasi di halaman Kredensi Keamanan Saya. -
Pernyataan
AllowManageOwnAccessKeys
mengizinkan pengguna untuk membuat, memperbarui, dan menghapus access key milik mereka. Pengguna juga dapat mengambil informasi tentang kapan kunci akses yang ditentukan terakhir digunakan. -
Pernyataan
AllowManageOwnSigningCertificates
mengizinkan pengguna untuk mengunggah, memperbarui, dan menghapus sertifikat tanda tangan milik mereka. -
AllowManageOwnSSHPublicKeys
Pernyataan ini memungkinkan pengguna untuk mengunggah, memperbarui, dan menghapus kunci publik SSH mereka sendiri. CodeCommit -
AllowManageOwnGitCredentials
Pernyataan ini memungkinkan pengguna untuk membuat, memperbarui, dan menghapus kredensi Git mereka sendiri untuk. CodeCommit -
AllowManageOwnVirtualMFADevice
Pernyataan 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 melihat atau mengelola perangkat MFA virtual, U2F, atau perangkat keras untuk pengguna 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. -
DenyAllExceptListedIfNoMFA
Pernyataan 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 pengujianCondition
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 dengan MFA yang dapat mereka lakukan hanya tindakan yang tercantum. Sebagai tambahan, mereka dapat melakukan tindakan yang tercantum hanya jika pernyataan atau kebijakan lain mengizinkan akses ke tindakan tersebut. Ini tidak mengizinkan pengguna untuk membuat kata sandi saat masuk, karena tindakan
iam:ChangePassword
seharusnya tidak boleh diizinkan tanpa otorisasi MFA.Versi
...IfExists
dari operatorBool
memastikan bahwa jika kunciaws: MultiFactorAuthPresent
hilang, ketentuan menghasilkan sah. Ini berarti bahwa pengguna yang mengakses kredensial jangka panjang sebuah API, seperti kunci akses, tidak diberi akses 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
. Ini juga tidak mengizinkan pengguna untuk mengubah kata sandi mereka di halaman pengguna milik mereka. Untuk memungkinkan ini, tambahkan iam:GetLoginProfile
dan iam:UpdateLoginProfile
tindakan ke AllowManageOwnPasswords
pernyataan. Untuk juga mengizinkan pengguna mengubah kata sandi mereka dari halaman pengguna milik mereka tanpa masuk menggunakan MFA, tambahkan tindakan iam:UpdateLoginProfile
ke pernyataan DenyAllExceptListedIfNoMFA
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowViewAccountInfo", "Effect": "Allow", "Action": [ "iam:GetAccountPasswordPolicy", "iam:ListVirtualMFADevices" ], "Resource": "*" }, { "Sid": "AllowManageOwnPasswords", "Effect": "Allow", "Action": [ "iam:ChangePassword", "iam:GetUser" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnAccessKeys", "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:DeleteAccessKey", "iam:ListAccessKeys", "iam:UpdateAccessKey", "iam:GetAccessKeyLastUsed" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnSigningCertificates", "Effect": "Allow", "Action": [ "iam:DeleteSigningCertificate", "iam:ListSigningCertificates", "iam:UpdateSigningCertificate", "iam:UploadSigningCertificate" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnSSHPublicKeys", "Effect": "Allow", "Action": [ "iam:DeleteSSHPublicKey", "iam:GetSSHPublicKey", "iam:ListSSHPublicKeys", "iam:UpdateSSHPublicKey", "iam:UploadSSHPublicKey" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnGitCredentials", "Effect": "Allow", "Action": [ "iam:CreateServiceSpecificCredential", "iam:DeleteServiceSpecificCredential", "iam:ListServiceSpecificCredentials", "iam:ResetServiceSpecificCredential", "iam:UpdateServiceSpecificCredential" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "AllowManageOwnVirtualMFADevice", "Effect": "Allow", "Action": [ "iam:CreateVirtualMFADevice" ], "Resource": "arn:aws:iam::*:mfa/*" }, { "Sid": "AllowManageOwnUserMFA", "Effect": "Allow", "Action": [ "iam:DeactivateMFADevice", "iam:EnableMFADevice", "iam:ListMFADevices", "iam:ResyncMFADevice" ], "Resource": "arn:aws:iam::*:user/${aws:username}" }, { "Sid": "DenyAllExceptListedIfNoMFA", "Effect": "Deny", "NotAction": [ "iam:CreateVirtualMFADevice", "iam:EnableMFADevice", "iam:GetUser", "iam:GetMFADevice", "iam:ListMFADevices", "iam:ListVirtualMFADevices", "iam:ResyncMFADevice", "sts:GetSessionToken" ], "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }