Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kebijakan adalah entitas di AWS bahwa, ketika dilampirkan ke identitas atau sumber daya, mendefinisikan izin mereka. AWS mengevaluasi kebijakan ini ketika prinsipal, seperti pengguna, membuat permintaan. Izin dalam kebijakan menentukan apakah permintaan diizinkan atau ditolak. Kebijakan disimpan di AWS sebagai JSON dokumen yang dilampirkan pada prinsipal sebagai kebijakan berbasis identitas atau sumber daya sebagai kebijakan berbasis sumber daya. Anda dapat melampirkan kebijakan berbasis identitas ke prinsipal (atau identitas), seperti IAM grup, pengguna, atau peran. Kebijakan berbasis identitas meliputi AWS kebijakan terkelola, kebijakan yang dikelola pelanggan, dan kebijakan inline. Anda dapat membuat dan mengedit kebijakan yang dikelola pelanggan di AWS Management Console menggunakan opsi Visual dan JSONeditor. Saat Anda melihat kebijakan di AWS Management Console, Anda dapat melihat ringkasan izin yang diberikan oleh kebijakan tersebut. Anda dapat menggunakan editor visual dan ringkasan kebijakan untuk membantu Anda mendiagnosis dan memperbaiki kesalahan umum yang dihadapi saat mengelola IAM kebijakan.
Perlu diingat bahwa semua IAM kebijakan disimpan menggunakan sintaks yang dimulai dengan aturan JavaScript Object Notation
Topik Kebijakan Pemecahan Masalah IAM
Atasi masalah menggunakan editor visual
Saat membuat atau mengedit kebijakan yang dikelola pelanggan, Anda dapat menggunakan informasi di editor Visual untuk membantu memecahkan masalah kesalahan dalam kebijakan Anda. Untuk melihat contoh penggunaan editor visual untuk membuat kebijakan, lihat Mengontrol akses ke identitas.
Restrukturisasi kebijakan
Saat Anda membuat kebijakan, AWS memvalidasi, memproses, dan mengubah kebijakan sebelum menyimpannya. Ketika kebijakan diambil, AWS mengubahnya kembali ke format yang dapat dibaca manusia tanpa mengubah izin. Hal ini dapat menyebabkan perbedaan dalam apa yang Anda lihat di editor visual kebijakan atau JSONtab.
-
Blok izin editor visual dapat ditambahkan, dihapus, atau disusun ulang, dan konten di dalam blok dapat dioptimalkan.
-
Di JSONtab, ruang putih yang tidak signifikan dapat dihapus, dan elemen dalam JSON peta dapat disusun ulang. Selain itu, Akun AWS IDsdalam elemen utama dapat diganti dengan Amazon Resource Name (ARN) dari Pengguna root akun AWS.
Karena kemungkinan perubahan ini, Anda tidak boleh membandingkan dokumen JSON kebijakan sebagai string.
Saat Anda membuat kebijakan terkelola pelanggan di AWS Management Console, Anda dapat memilih untuk bekerja sepenuhnya di JSONeditor. Jika Anda tidak pernah mengubah kebijakan di editor Visual dan memilih Berikutnya dari JSONeditor, kebijakan tersebut cenderung tidak direstrukturisasi. Bila Anda menggunakan editor Visual, IAM mungkin akan merestrukturisasi kebijakan untuk mengoptimalkan tampilannya. Restrukturisasi ini hanya ada pada sesi pengeditan Anda dan tidak disimpan secara otomatis.
Jika kebijakan Anda direstrukturisasi dalam sesi pengeditan, IAM tentukan apakah akan menyimpan restrukturisasi berdasarkan situasi berikut:
Menggunakan opsi editor ini | Jika Anda mengedit kebijakan | Dan kemudian pilih Berikutnya dari tab ini | Saat Anda memilih Simpan perubahan |
---|---|---|---|
Visual | Diedit | Visual | Kebijakan distruktur ulang |
Visual | Diedit | JSON | Kebijakan distruktur ulang |
Visual | Tidak diedit | Visual | Kebijakan distruktur ulang |
JSON | Diedit | Visual | Kebijakan distruktur ulang |
JSON | Diedit | JSON | Struktur kebijakan tidak diubah |
JSON | Tidak diedit | JSON | Struktur kebijakan tidak diubah |
IAMmungkin merestrukturisasi kebijakan atau kebijakan kompleks yang memiliki blok izin atau pernyataan yang memungkinkan beberapa layanan, jenis sumber daya, atau kunci kondisi.
Memilih sumber daya ARN di editor visual
Saat Anda membuat atau mengedit kebijakan menggunakan editor visual, Anda harus memilih layanan terlebih dahulu, kemudian memilih tindakan dari layanan tersebut. Jika layanan dan tindakan yang Anda pilih mendukung pemilihan sumber daya tertentu, editor visual mencantumkan tipe sumber daya yang didukung. Anda kemudian dapat memilih Tambah ARN untuk memberikan detail tentang sumber daya Anda. Anda dapat memilih dari opsi berikut untuk menambahkan ARN untuk jenis sumber daya.
-
Gunakan ARN pembangun — Anda mungkin melihat bidang yang berbeda untuk membangun ARN berdasarkan jenis sumber daya. Anda juga dapat memilih Apa pun untuk memberikan izin bagi nilai apa pun untuk pengaturan yang ditentukan. Misalnya, jika Anda memilih grup tingkat akses Amazon EC2 Baca, tindakan dalam kebijakan Anda mendukung jenis
instance
sumber daya. Berikan Wilayah, Akun, dan InstanceIdnilai untuk sumber daya Anda. Kebijakan ini memberikan izin ke instans apa pun di akun Anda jika Anda memberikan ID akun dan memilih Any for the Region dan ID instans. -
Ketik atau tempel ARN - Anda dapat menentukan sumber daya berdasarkan Nama Sumber Daya Amazon mereka (ARN). Anda dapat menyertakan karakter wildcard (
*
) di bidang apa pun dari ARN (antara setiap pasangan titik dua). Untuk informasi selengkapnya, lihat IAMJSONelemen kebijakan: Resource.
Menolak izin di editor visual
Secara default, kebijakan yang Anda buat menggunakan editor visual memungkinkan tindakan yang Anda pilih. Untuk menolak tindakan yang dipilih, pilih Beralih ke menolak izin. Karena permintaan ditolak secara default, sebaiknya Anda mengizinkan izin hanya untuk tindakan dan sumber daya yang dibutuhkan pengguna. Anda harus membuat pernyataan penolakan hanya jika Anda ingin mengganti izin secara terpisah yang diizinkan oleh pernyataan atau kebijakan lain. Kami sarankan Anda membatasi jumlah izin penolakan seminim mungkin karena dapat meningkatkan kesulitan izin pemecahan masalah. Untuk informasi selengkapnya tentang cara IAM mengevaluasi logika kebijakan, lihatLogika evaluasi kebijakan.
catatan
Secara default, hanya Pengguna root akun AWS memiliki akses ke semua sumber daya di akun itu. Jadi, jika Anda belum masuk sebagai pengguna utama, Anda harus memiliki izin yang diberikan oleh kebijakan.
Menentukan beberapa layanan di editor visual
Saat Anda menggunakan editor visual untuk membuat kebijakan, Anda hanya dapat memilih satu layanan pada satu waktu. Ini adalah praktik terbaik karena editor visual kemudian mengizinkankan Anda memilih dari tindakan untuk satu layanan tersebut. Kemudian Anda memilih dari sumber daya yang didukung oleh layanan tersebut dan tindakan yang dipilih. Ini mempermudah pembuatan dan pemecahan masalah kebijakan Anda.
Anda juga dapat menggunakan karakter wildcard (*) untuk menentukan beberapa layanan secara manual. Sebagai contoh, ketik Code*
untuk memberikan izin untuk semua layanan yang dimulai dengan Code
, seperti CodeBuild
dan CodeCommit
. Namun, Anda kemudian harus mengetik tindakan dan sumber daya ARNs untuk menyelesaikan kebijakan Anda. Sebagai tambahan, saat Anda menyimpan kebijakan Anda, kebijakan itu mungkin distruktur ulang untuk menyertakan setiap layanan di blok izin terpisah.
Atau, untuk menggunakan JSON sintaks (seperti wildcard) untuk layanan, buat, edit, dan simpan kebijakan Anda menggunakan opsi JSONeditor.
Mengurangi ukuran kebijakan Anda di editor visual
Saat Anda menggunakan editor visual untuk membuat kebijakan, IAM buat JSON dokumen untuk menyimpan kebijakan Anda. Anda dapat melihat dokumen ini dengan beralih ke opsi JSONeditor. Jika JSON dokumen ini melebihi batas ukuran kebijakan, editor visual akan menampilkan pesan kesalahan. Anda tidak akan dapat meninjau dan menyimpan kebijakan. Untuk melihat IAM batasan ukuran kebijakan terkelola, lihatIAMdan batas STS karakter.
Untuk mengurangi ukuran kebijakan Anda di editor visual, edit kebijakan Anda atau pindahkan blok izin ke kebijakan lain. Pesan galat menyertakan jumlah karakter yang berisi dokumen kebijakan Anda. Anda dapat menggunakan informasi ini untuk membantu Anda mengurangi ukuran kebijakan Anda.
Perbaikan layanan, tindakan, atau tipe sumber daya yang tidak dikenal di editor visual
Anda mungkin melihat peringatan di editor visual bahwa kebijakan Anda menyertakan jenis layanan, tindakan, atau sumber daya yang tidak dikenal.
catatan
IAMmeninjau nama layanan, tindakan, dan jenis sumber daya untuk layanan yang mendukung ringkasan kebijakan. Akan tetapi, ringkasan kebijakan Anda mungkin mencakup nilai sumber daya atau kondisi yang tidak ada. Selalu uji kebijakan Anda dengan simulator kebijakan.
Jika kebijakan Anda mencakup layanan, tindakan, atau jenis sumber daya yang tidak dikenal, salah satu kesalahan berikut telah terjadi:
-
Layanan pratinjau – Layanan yang ada di pratinjau tidak mendukung editor visual. Jika Anda berpartisipasi dalam pratinjau, Anda harus mengetik tindakan dan sumber daya secara manual ARNs untuk menyelesaikan kebijakan Anda. Anda dapat mengabaikan peringatan apa pun dan melanjutkan. Atau, Anda dapat memilih opsi JSONeditor untuk mengetik atau menempelkan dokumen JSON kebijakan.
-
Layanan khusus – Layanan khusus tidak mendukung editor visual. Jika Anda menggunakan layanan kustom, Anda harus mengetik tindakan dan sumber daya secara manual ARNs untuk menyelesaikan kebijakan Anda. Anda dapat mengabaikan peringatan apa pun dan melanjutkan. Atau, Anda dapat memilih opsi JSONeditor untuk mengetik atau menempelkan dokumen JSON kebijakan.
-
Layanan tidak mendukung editor visual — Jika kebijakan Anda menyertakan layanan yang tersedia secara umum (GA) yang tidak mendukung editor visual, Anda harus mengetik tindakan dan sumber daya secara manual ARNs untuk menyelesaikan kebijakan Anda. Anda dapat mengabaikan peringatan apa pun dan melanjutkan. Atau, Anda dapat memilih opsi JSONeditor untuk mengetik atau menempelkan dokumen JSON kebijakan.
Layanan yang tersedia secara umum adalah layanan yang dirilis secara publik dan bukan pratinjau atau layanan khusus. Jika layanan yang tidak dikenal tersedia secara umum dan nama dieja dengan benar, maka layanan tersebut tidak mendukung editor visual. Untuk mempelajari cara meminta dukungan editor visual atau ringkasan kebijakan untuk layanan GA, lihat Layanan tidak mendukung ringkasan IAM kebijakan.
-
Tindakan tidak mendukung editor visual — Jika kebijakan Anda menyertakan layanan yang didukung dengan tindakan yang tidak didukung, Anda harus mengetik tindakan dan sumber daya secara manual ARNs untuk menyelesaikan kebijakan Anda. Anda dapat mengabaikan peringatan apa pun dan melanjutkan. Atau, Anda dapat memilih opsi JSONeditor untuk mengetik atau menempelkan dokumen JSON kebijakan.
Jika kebijakan Anda menyertakan layanan yang didukung dengan tindakan yang tidak didukung, maka layanan tersebut tidak sepenuhnya mendukung editor visual. Untuk mempelajari cara meminta dukungan editor visual atau ringkasan kebijakan untuk layanan GA, lihat Layanan tidak mendukung ringkasan IAM kebijakan.
-
Jenis sumber daya tidak mendukung editor visual – Jika kebijakan Anda mencakup tindakan yang didukung dengan jenis sumber daya yang tidak didukung, Anda dapat mengabaikan peringatan dan melanjutkan. Namun, IAM tidak dapat mengonfirmasi bahwa Anda telah menyertakan sumber daya untuk semua tindakan yang dipilih, dan Anda mungkin melihat peringatan tambahan.
-
Salah ketik – Saat Anda mengetikkan layanan, tindakan, atau sumber daya secara manual dalam editor visual, Anda dapat membuat kebijakan yang mencakup kesalahan ketik. Kami menyarankan Anda menggunakan editor visual dengan memilih dari daftar layanan dan tindakan. Kemudian, lengkapi bagian sumber daya sesuai dengan petunjuknya. Jika layanan tidak sepenuhnya mendukung editor visual, Anda mungkin harus mengetik bagian kebijakan secara manual.
Jika Anda yakin bahwa kebijakan Anda tidak berisi satu pun kesalahan di atas, maka kebijakan Anda mungkin mengandung kesalahan ketik. Periksa masalah berikut:
-
Nama layanan, tindakan, dan jenis sumber daya yang salah eja, seperti
s2
alih-alihs3
atauListMyBuckets
bukanListAllMyBuckets
-
Teks yang tidak perluARNs, seperti
arn:aws:s3: : :*
-
Hilang titik dua dalam tindakan, seperti
iam.CreateUser
Anda dapat mengevaluasi kebijakan yang mungkin menyertakan kesalahan ketik dengan memilih Berikutnya untuk meninjau ringkasan kebijakan. Kemudian, konfirmasikan apakah kebijakan tersebut memberikan izin yang Anda inginkan.
-
Memecahkan masalah dengan ringkasan kebijakan
Anda dapat mendiagnosis dan menyelesaikan masalah terkait rangkuman kebijakan.
Ringkasan kebijakan hilang
IAMKonsol menyertakan tabel ringkasan kebijakan yang menjelaskan tingkat akses, sumber daya, dan kondisi yang diizinkan atau ditolak untuk setiap layanan dalam kebijakan. Kebijakan dirangkum dalam tiga tabel: ringkasan kebijakan, ringkasan layanan, dan ringkasan tindakan. Tabel ringkasan kebijakan mencakup daftar layanan dan ringkasan izin yang ditentukan oleh kebijakan yang dipilih. Anda dapat melihat ringkasan kebijakan untuk setiap kebijakan yang dilampirkan ke entitas di halaman Detail Kebijakan untuk kebijakan tersebut. Anda dapat melihat ringkasan kebijakan untuk kebijakan yang dikelola pada halaman Kebijakan. Jika AWS tidak dapat merender ringkasan untuk kebijakan, Anda akan melihat dokumen JSON kebijakan dan kesalahan berikut:
Ringkasan untuk kebijakan ini tidak dapat dibuat. Anda masih dapat melihat atau mengedit dokumen JSON kebijakan.
Jika kebijakan Anda tidak mencakup ringkasan, salah satu kesalahan berikut telah terjadi:
-
Elemen kebijakan yang tidak didukung - IAM tidak mendukung pembuatan ringkasan kebijakan untuk kebijakan yang mencakup salah satu elemen kebijakan berikut:
-
Principal
-
NotPrincipal
-
NotResource
-
-
Tidak ada izin kebijakan – Jika kebijakan tidak menyediakan izin yang efektif, maka ringkasan kebijakan tidak dapat dibuat. Misalnya, jika kebijakan mencakup satu pernyataan dengan elemen
"NotAction": "*"
, maka akses ke semua tindakan akan diberikan kecuali “semua tindakan” (*). Ini berarti tidak ada aksesDeny
atauAllow
yang diberikan.catatan
Hati-hati saat menggunakan elemen kebijakan ini seperti
NotPrincipal
,NotAction
, danNotResource
. Untuk informasi selengkapnya tentang elemen-elemen kebijakan, lihat Referensi elemen kebijakan IAM JSON.Jika Anda menyediakan layanan dan sumber daya yang tidak cocok, Anda dapat membuat kebijakan yang tidak memberikan izin yang efektif. Ini dapat terjadi ketika Anda menentukan tindakan dalam satu layanan dan sumber daya dari layanan lain. Dalam hal ini, ringkasan kebijakan muncul. Satu-satunya indikasi bahwa terdapat masalah adalah kolom sumber daya di ringkasan dapat mencakup sumber daya dari layanan yang berbeda. Jika kolom ini memuat sumber daya yang tidak sesuai, maka Anda harus meninjau kebijakan Anda untuk kesalahan. Uji kebijakan Anda dengan simulator kebijakan untuk lebih memahami kebijakan.
Ringkasan kebijakan mencakup layanan, tindakan, atau tipe sumber daya yang tidak dikenal
Di IAM konsol, jika ringkasan kebijakan menyertakan simbol peringatan (
), kebijakan tersebut mungkin menyertakan jenis layanan, tindakan, atau sumber daya yang tidak dikenal. Untuk mempelajari tentang peringatan di dalam ringkasan kebijakan, lihat Ringkasan kebijakan (daftar layanan).
catatan
IAMmeninjau nama layanan, tindakan, dan jenis sumber daya untuk layanan yang mendukung ringkasan kebijakan. Akan tetapi, ringkasan kebijakan Anda mungkin mencakup nilai sumber daya atau kondisi yang tidak ada. Selalu uji kebijakan Anda dengan simulator kebijakan.
Jika kebijakan Anda mencakup layanan, tindakan, atau jenis sumber daya yang tidak dikenal, salah satu kesalahan berikut telah terjadi:
-
Layanan pratinjau – Layanan yang ada di pratinjau tidak mendukung rangkuman kebijakan.
-
Layanan khusus – Layanan khusus tidak mendukung rangkuman kebijakan.
-
Layanan tidak mendukung rangkuman – Jika kebijakan Anda mencakup layanan yang tersedia secara umum (GA) yang tidak mendukung rangkuman kebijakan, maka layanan tersebut termasuk dalam bagian Layanan yang tidak dikenal di tabel ringkasan kebijakan. Layanan yang tersedia secara umum adalah layanan yang dirilis secara publik dan bukan pratinjau atau layanan khusus. Jika layanan yang tidak dikenal umumnya tersedia dan nama dieja dengan benar, maka layanan tidak mendukung ringkasan IAM kebijakan. Untuk mempelajari cara meminta dukungan ringkasan kebijakan untuk layanan GA, lihat Layanan tidak mendukung ringkasan IAM kebijakan.
-
Tindakan tidak mendukung rangkuman – Jika kebijakan Anda mencakup layanan yang didukung dengan tindakan yang tidak didukung, maka tindakan tersebut termasuk dalam bagian Tindakan yang tidak dikenal pada tabel ringkasan layanan. Untuk mempelajari tentang peringatan dalam rangkuman layanan, lihat Ringkasan layanan (daftar tindakan).
-
Jenis sumber daya tidak mendukung rangkuman – Jika kebijakan Anda mencakup tindakan yang didukung dengan jenis sumber daya yang tidak didukung, maka sumber daya tersebut disertakan dalam bagian Jenis sumber daya yang tidak dikenal pada tabel ringkasan layanan. Untuk mempelajari tentang peringatan di dalam rangkuman layanan, lihat Ringkasan layanan (daftar tindakan).
catatan
Sebagai praktik terbaik, kami menyarankan Anda menggunakan IAM Access Analyzer untuk memvalidasi IAM kebijakan Anda guna memastikan izin yang aman dan fungsional. Kami menyarankan Anda membuka kebijakan yang ada dan meninjau serta menyelesaikan rekomendasi validasi kebijakan apa pun.
Layanan tidak mendukung ringkasan IAM kebijakan
Dimungkinkan untuk ringkasan IAM kebijakan atau editor visual untuk tidak mendukung layanan atau tindakan yang tersedia secara umum (GA). Layanan yang tersedia secara umum adalah layanan yang dirilis secara publik dan bukan layanan yang dipratinjau atau khusus. Jika layanan yang tidak dikenal tersedia secara umum dan nama dieja dengan benar, maka layanan tidak mendukung fitur-fitur ini. Jika kebijakan Anda menyertakan layanan yang didukung dengan tindakan yang tidak didukung, maka layanan tidak sepenuhnya mendukung ringkasan IAM kebijakan.
Untuk meminta layanan menambahkan ringkasan IAM kebijakan atau dukungan editor visual
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Temukan kebijakan yang mencakup layanan yang tidak didukung:
-
Jika kebijakan tersebut adalah kebijakan terkelola, pilih Kebijakan di panel navigasi. Dalam daftar kebijakan, pilih nama kebijakan yang ingin Anda lihat.
-
Jika kebijakan tersebut adalah kebijakan inline yang terlampir pada pengguna, pilih Pengguna di panel navigasi. Dalam daftar pengguna, pilih nama pengguna yang kebijakannya ingin Anda lihat. Dalam tabel kebijakan untuk pengguna, perluas kop untuk ringkasan kebijakan yang ingin Anda lihat.
-
-
Di sisi kiri di AWS Management Console footer, pilih Umpan Balik. Di IAM kotak Umpan Balik untuk, ketik
I request that the <ServiceName> service add support for IAM policy summaries and the visual editor
. Jika Anda menginginkan lebih dari satu layanan untuk mendukung ringkasan, ketikI request that the <ServiceName1>, <ServiceName2>, and <ServiceName3> services add support for IAM policy summaries and the visual editor
.
Untuk meminta layanan menambahkan dukungan ringkasan IAM kebijakan untuk tindakan yang hilang
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Temukan kebijakan yang mencakup layanan yang tidak didukung:
-
Jika kebijakan tersebut adalah kebijakan terkelola, pilih Kebijakan di panel navigasi. Dalam daftar kebijakan, pilih nama kebijakan yang ingin Anda lihat.
-
Jika kebijakan tersebut adalah kebijakan inline yang terlampir pada pengguna, pilih Pengguna di panel navigasi. Dalam daftar pengguna, pilih nama pengguna yang kebijakannya ingin Anda lihat. Dalam tabel kebijakan untuk pengguna, pilih nama kebijakan yang ingin Anda lihat untuk memperluas ringkasan kebijakan.
-
-
Dalam ringkasan kebijakan, pilih nama layanan yang menyertakan tindakan yang tidak didukung.
-
Di sisi kiri di AWS Management Console footer, pilih Umpan Balik. Di IAM kotak Umpan Balik untuk, ketik
I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName> action
. Jika Anda ingin melaporkan lebih dari satu tindakan yang tidak didukung, ketikI request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName1>, <ActionName2>, and <ActionName3> actions
.
Untuk meminta agar layanan lain mencakup tindakan yang hilang, ulangi tiga langkah terakhir.
Kebijakan saya tidak memberikan izin yang diharapkan
Untuk menetapkan izin bagi pengguna, grup, peran, atau sumber daya, Anda membuat kebijakan, yaitu dokumen yang mendefinisikan izin. Dokumen kebijakan mencakup elemen-elemen berikut ini:
-
Efek – apakah kebijakan mengizinkan atau menolak akses
-
Tindakan – daftar tindakan yang diperbolehkan atau ditolak oleh kebijakan tersebut
-
Sumber Daya – daftar sumber daya yang memungkinkan terjadinya tindakan
-
Kondisi (Opsional) – situasi yang mengatur pemberian izin oleh kebijakan
Untuk mempelajari tentang elemen kebijakan ini dan elemen kebijakan lainnya, lihat Referensi elemen kebijakan IAM JSON.
Untuk memberikan akses, kebijakan Anda harus menentukan tindakan dengan sumber daya yang didukung. Jika kebijakan Anda juga mencakup suatu kondisi, kondisi tersebut harus mencakup kunci kondisi global atau harus berlaku untuk tindakan tersebut. Untuk mempelajari sumber daya mana yang didukung oleh suatu tindakan, lihat AWS dokumentasi untuk layanan Anda. Untuk mempelajari kondisi mana yang didukung oleh tindakan, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan.
Periksa apakah kebijakan Anda menentukan tindakan, sumber daya, atau kondisi yang tidak memberikan izin. Lihat ringkasan kebijakan untuk kebijakan Anda menggunakan IAM konsol di https://console.aws.amazon.com/iam/
Ada beberapa alasan mengapa elemen mungkin tidak memberikan izin meskipun telah ditentukan dalam IAM kebijakan:
Untuk melihat contoh ringkasan kebijakan yang mencakup peringatan, lihat Ringkasan kebijakan (daftar layanan).
Tindakan didefinisikan tanpa sumber daya yang sesuai
Kebijakan di bawah ini menjelaskan semua tindakan ec2:Describe*
dan menentukan sumber daya spesifik. Tidak satu pun tindakan ec2:Describe
diberikan karena semuanya tidak mendukung izin tingkat sumber daya. Izin tingkat sumber daya berarti bahwa tindakan tersebut mendukung sumber daya yang digunakan ARNsdalam elemen kebijakan. Resource Jika tindakan tidak mendukung izin tingkat sumber daya, maka pernyataan dalam kebijakan tersebut harus menggunakan wildcard (*
) di elemen Resource
. Untuk mempelajari layanan mana yang mendukung izin tingkat sumber daya, lihat AWS layanan yang bekerja dengan IAM.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "arn:aws:ec2:us-east-2:ACCOUNT-ID:instance/*
"
}]
}
Kebijakan ini tidak memberikan izin apa pun, dan ringkasan kebijakan mencakup kesalahan berikut ini:
This policy does not grant any permissions. To grant access, policies must have
an action that has an applicable resource or condition.
Untuk memperbaiki kebijakan ini, Anda harus menggunakan *
di elemen Resource
.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}]
}
Sumber daya ditetapkan tanpa tindakan yang sesuai
Kebijakan di bawah ini mendefinisikan sumber daya bucket Amazon S3 tetapi tidak mencakup tindakan S3 yang dapat dilakukan pada sumber daya tersebut. Kebijakan ini juga memberikan akses penuh ke semua CloudFront tindakan Amazon.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "cloudfront:*",
"Resource": [
"arn:aws:cloudfront:*",
"arn:aws:s3:::amzn-s3-demo-bucket
"
]
}]
}
Kebijakan ini memberikan izin untuk semua CloudFront tindakan. Tetapi karena kebijakan mendefinisikan sumber daya amzn-s3-demo-bucket
S3 tanpa mendefinisikan tindakan S3 apa pun, ringkasan kebijakan mencakup peringatan berikut:
This policy defines some actions, resources, or conditions that do not provide
permissions. To grant access, policies must have an action that has an applicable
resource or condition.
Untuk memperbaiki kebijakan ini guna memberikan izin bucket S3, Anda harus menetapkan tindakan S3 yang dapat dilakukan pada sumber daya bucket.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"cloudfront:*",
"s3:CreateBucket",
"s3:ListBucket*",
"s3:PutBucket*",
"s3:GetBucket*"
],
"Resource": [
"arn:aws:cloudfront:*",
"arn:aws:s3:::amzn-s3-demo-bucket"
]
}]
}
Sebagai alternatif, untuk memperbaiki kebijakan ini agar hanya memberikan CloudFront izin, hapus sumber daya S3.
Kondisi didefinisikan tanpa tindakan yang berlaku
Kebijakan di bawah ini mendefinisikan dua tindakan Amazon S3 untuk semua sumber daya S3, jika awalan S3 sama dan ID versi custom
sama. 1234
Namun, kunci kondisi s3:VersionId
digunakan untuk penandaan versi objek dan tidak didukung oleh tindakan bucket didefinisikan. Untuk mempelajari kondisi mana yang didukung oleh tindakan, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan dan pilih layanan untuk melihat dokumentasi layanan untuk kunci kondisi.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucket"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": [
"custom"
],
"s3:VersionId": [
"1234"
]
}
}
}
]
}
Kebijakan ini memberikan izin untuk tindakan s3:ListBucketVersions
dan tindakan s3:ListBucket
jika nama bucket mencakup prefiks custom
. Tetapi karena kondisi s3:VersionId
tidak didukung oleh salah satu tindakan yang ditetapkan, ringkasan kebijakan mencakup kesalahan berikut:
This policy does not grant any permissions. To grant access, policies must have
an action that has an applicable resource or condition.
Untuk memperbaiki kebijakan ini untuk menggunakan penandaan versi objek S3, Anda harus menentukan tindakan S3 yang mendukung kunci kondisi s3:VersionId
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucket",
"s3:GetObjectVersion"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": [
"custom"
],
"s3:VersionId": [
"1234"
]
}
}
}
]
}
Kebijakan ini memberikan izin untuk setiap tindakan dan kondisi dalam kebijakan tersebut. Namun, kebijakan ini masih tidak memberikan izin apa pun karena tidak ada kasus ketika tindakan tunggal sesuai dengan kedua kondisi. Sebaliknya, Anda harus membuat dua pernyataan terpisah yang masing-masing hanya menyertakan tindakan kondisi yang sesuai dengannya.
Untuk memperbaiki kebijakan ini, buat dua pernyataan. Pernyataan pertama mencakup tindakan yang mendukung kondisi s3:prefix
, dan pernyataan kedua mencakup tindakan yang mendukung kondisi s3:VersionId
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucket"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": "custom"
}
}
},
{
"Effect": "Allow",
"Action": "s3:GetObjectVersion",
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:VersionId": "1234"
}
}
}
]
}
Pemecahan masalah manajemen kebijakan
Anda dapat mendiagnosis dan menyelesaikan masalah terkait manajemen kebijakan.
Melampirkan atau melepaskan kebijakan di akun IAM
Beberapa AWS kebijakan terkelola ditautkan ke layanan. Kebijakan ini hanya digunakan dengan peran yang berkaitan dengan layanan untuk layanan itu. Di IAM konsol, saat Anda melihat halaman Detail kebijakan, halaman tersebut menyertakan spanduk untuk menunjukkan bahwa kebijakan tersebut ditautkan ke layanan. Anda tidak dapat melampirkan kebijakan ini ke pengguna, grup, atau peran di dalamnyaIAM. Saat Anda membuat peran terkait layanan, kebijakan ini secara otomatis dilampirkan ke peran baru Anda. Karena kebijakan tersebut diperlukan, Anda tidak dapat memisahkan kebijakan dari peran yang terkait dengan layanan.
Mengubah kebijakan IAM identitas Anda berdasarkan aktivitasnya
Anda dapat memperbarui kebijakan untuk IAM identitas Anda (pengguna, grup, dan peran) berdasarkan aktivitas mereka. Untuk melakukan ini, lihat peristiwa akun Anda di Riwayat CloudTrail acara. CloudTrail log peristiwa mencakup informasi peristiwa terperinci yang dapat Anda gunakan untuk mengubah izin kebijakan.
- Seorang pengguna atau peran sedang mencoba untuk melakukan suatu tindakan di AWS dan permintaan itu ditolak.
-
Pertimbangkan apakah pengguna atau peran harus memiliki izin untuk melakukan tindakan. Jika demikian, Anda dapat menambahkan tindakan dan bahkan sumber daya yang mereka coba akses ke kebijakan mereka. ARN
- Pengguna atau peran memiliki izin yang tidak mereka gunakan.
-
Pertimbangkan untuk menghapus izin tersebut dari kebijakan mereka. Pastikan bahwa kebijakan Anda memberikan hak istimewa terkecil yang diperlukan untuk hanya melakukan tindakan yang diperlukan.
Untuk informasi selengkapnya tentang penggunaan CloudTrail, lihat Melihat CloudTrail Acara di CloudTrail Konsol di AWS CloudTrail Panduan Pengguna.
Memecahkan masalah dokumen kebijakan JSON
Anda dapat mendiagnosis dan menyelesaikan masalah yang berkaitan dengan dokumen JSON kebijakan.
Memvalidasi kebijakan Anda
Saat Anda membuat atau mengedit JSON kebijakan, IAM dapat melakukan validasi kebijakan untuk membantu Anda membuat kebijakan yang efektif. IAMmengidentifikasi kesalahan JSON sintaks, sementara IAM Access Analyzer menyediakan pemeriksaan kebijakan tambahan dengan rekomendasi untuk membantu Anda menyempurnakan kebijakan lebih lanjut. Untuk mempelajari selengkapnya tentang validasi kebijakan, lihat Validasi kebijakan IAM. Untuk mempelajari selengkapnya tentang pemeriksaan kebijakan IAM Access Analyzer dan rekomendasi yang dapat ditindaklanjuti, lihat Validasi kebijakan IAMAccess Analyzer.
Saya tidak memiliki izin untuk validasi kebijakan di editor JSON
Dalam AWS Management Console, Anda mungkin menerima kesalahan berikut jika Anda tidak memiliki izin untuk melihat hasil validasi kebijakan IAM Access Analyzer:
You need permissions. You do not have the permissions required to perform this
operation. Ask your administrator to add permissions.
Untuk memperbaiki kesalahan ini, minta administrator Anda untuk menambahkan izin access-analyzer:ValidatePolicy
untuk Anda.
Lebih dari satu objek JSON kebijakan
IAMKebijakan harus terdiri dari hanya satu JSON objek. Anda menunjukkan sebuah objek dengan menempatkan rungkup { } di sekitarnya. Anda dapat membuat sarang objek lain di dalam JSON objek dengan menyematkan tanda kurung {} tambahan di dalam pasangan luar. Kebijakan harus berisi hanya satu pasang kurung kurung {} terluar. Contoh berikut ini salah karena berisi dua objek di tingkat atas (disebut dalam red
):
{
"Version": "2012-10-17",
"Statement":
{
"Effect":"Allow",
"Action":"ec2:Describe*",
"Resource":"*"
}
}
{
"Statement": {
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
}
Namun, Anda dapat memenuhi maksud dari contoh sebelumnya dengan menggunakan tata bahasa kebijakan yang benar. Alih-alih memasukkan dua objek kebijakan lengkap, masing-masing dengan elemen Statement
, Anda dapat menggabungkan kedua blok menjadi satu elemen Statement
. Elemen Statement
memiliki susunan dua objek sebagai nilainya, seperti ditunjukkan dalam contoh berikut (disebut dalam huruf tebal):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource":" *"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
]
}
Lebih dari satu elemen JSON pernyataan
Kesalahan ini pada awalnya mungkin tampak seperti variasi pada bagian sebelumnya. Namun, secara sintaksis ini adalah tipe kesalahan yang berbeda. Contoh berikut hanya memiliki satu objek kebijakan yang ditandai dengan sepasang rungkup { } di tingkat atas. Namun, objek tersebut berisi dua elemen Statement
di dalamnya.
IAMKebijakan harus berisi hanya satu Statement
elemen, yang terdiri dari name (Statement
) yang muncul di sebelah kiri titik dua, diikuti oleh nilainya di sebelah kanan. Nilai dari elemen Statement
harus berupa objek, yang ditandai dengan rungkup { }, yang berisi satu elemen Effect
, satu elemen Action
, dan satu elemen Resource
. Contoh berikut ini salah karena berisi dua elemen Statement
dalam objek kebijakan (disebut dalam red
):
{
"Version": "2012-10-17",
"Statement
": {
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
"Statement
": {
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
}
Objek nilai dapat berupa himpunan berbagai objek nilai. Untuk memecahkan masalah ini, gabungkan kedua elemen Statement
ke dalam satu elemen dengan himpunan objek, seperti ditunjukkan dalam contoh berikut (disebut dalam huruf tebal):
{
"Version": "2012-10-17",
"Statement": [ {
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource":"*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
]
}
Nilai dari elemen Statement
merupakan himpunan objek. Rangkaian dalam contoh ini terdiri dari dua objek, yang masing-masing adalah nilai yang benar untuk elemen Statement
. Setiap objek di himpunan dipisahkan dengan koma.
Lebih dari satu efek, tindakan, atau elemen sumber daya dalam elemen JSON pernyataan
Di sisi nilai pasangan nama/nilai Statement
, objek harus terdiri dari hanya satu elemen Effect
, satu elemen Action
, dan satu elemen Resource
. Kebijakan berikut tidak benar karena memiliki dua Effect
elemen dalamStatement
:
{
"Version": "2012-10-17",
"Statement": {
"Effect
": "Deny",
"Effect
": "Allow",
"Action": "ec2:* ",
"Resource": "*"
}
}
catatan
Mesin kebijakan tidak mengizinkan kesalahan tersebut di kebijakan baru atau yang telah diedit. Namun demikian, mesin kebijakan terus mengizinkan kebijakan yang disimpan sebelum mesin diperbarui. Perilaku kebijakan yang ada dengan kesalahan tersebut adalah sebagai berikut:
-
Beberapa elemen
Effect
: hanya elemenEffect
terakhir yang diamati. Yang lainnya diabaikan. -
Beberapa
Action
elemen: semuaAction
elemen digabungkan secara internal dan diperlakukan seolah-olah mereka adalah daftar tunggal. -
Beberapa
Resource
elemen: semuaResource
elemen digabungkan secara internal dan diperlakukan seolah-olah mereka adalah daftar tunggal.
Mesin kebijakan tidak memungkinkan Anda untuk menyimpan kebijakan dengan kesalahan sintaksis. Perbaiki kesalahan dalam kebijakan sebelum menyimpan. Tinjau dan perbaiki rekomendasi validasi kebijakan apa pun untuk kebijakan Anda.
Dalam setiap kasus, solusinya adalah menghapus elemen ekstra yang salah. Untuk Effect
elemen, ini mudah: jika Anda ingin contoh sebelumnya menolak izin ke EC2 instans Amazon, maka Anda harus menghapus baris "Effect": "Allow",
dari kebijakan, sebagai berikut:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "ec2:* ",
"Resource": "*"
}
}
Namun, jika elemen duplikat adalah Action
atau Resource
, maka resolusinya dapat lebih rumit. Anda mungkin memiliki beberapa tindakan yang ingin Anda izinkan (atau tolak) izinnya, atau Anda mungkin ingin mengontrol akses ke beberapa sumber daya. Misalnya, contoh berikut salah karena memiliki beberapa elemen Resource
(yang disebut dalam red
):
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:*",
"Resource
": "arn:aws:s3:::amzn-s3-demo-bucket",
"Resource
": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
}
Masing-masing elemen wajib di objek nilai elemen Statement
hanya bisa muncul sekali. Solusinya adalah menempatkan setiap nilai dalam himpunan. Contoh berikut menggambarkan hal ini dengan membuat dua elemen sumber daya terpisah menjadi satu elemen Resource
dengan susunan sebagai objek nilai (disebut dalam huruf tebal):
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*"
]
}
}
Elemen JSON versi yang hilang
Elemen kebijakan Version
berbeda dari versi kebijakan. Elemen kebijakan Version
digunakan dalam kebijakan dan menentukan versi bahasa kebijakan. Sebagai perbandingan, versi kebijakan dibuat saat Anda mengubah kebijakan yang dikelola pelangganIAM. Perubahan kebijakan tidak mengesampingkan kebijakan yang ada. Sebagai gantinya, IAM buat versi baru dari kebijakan terkelola. Untuk mempelajari selengkapnya tentang elemen kebijakan Version
, lihat IAMJSONelemen kebijakan: Version. Untuk mempelajari selengkapnya tentang versi kebijakan, lihat Kebijakan IAM versioning.
Sebagai AWS fitur berkembang, kemampuan baru ditambahkan ke IAM kebijakan untuk mendukung fitur tersebut. Terkadang, pembaruan sintaksis kebijakan mencakup nomor versi baru. Jika Anda menggunakan fitur tata bahasa kebijakan yang lebih baru dalam kebijakan Anda, maka Anda harus memberi tahu mesin pembatas kebijakan versi mana yang Anda gunakan. Versi kebijakan default adalah “17-10-2008.” Jika Anda ingin menggunakan fitur kebijakan yang diperkenalkan setelahnya, Anda harus menentukan nomor versi yang mendukung fitur yang Anda inginkan. Sebaiknya Anda selalu menyertakan nomor versi sintaksis kebijakan terbaru, yang saat ini adalah "Version": "2012-10-17"
. Misalnya, kebijakan berikut tidak benar karena menggunakan variabel kebijakan ${...}
di ARN sumber daya. Tetapi kebijakan ini gagal menentukan versi sintaksis kebijakan yang mendukung variabel kebijakan (disebut dalam red
):
{
"Statement":
{
"Action": "iam:*AccessKey*",
"Effect": "Allow",
"Resource": "arn:aws:iam::123456789012:user/${aws:username}
"
}
}
Menambahkan Version
elemen di bagian atas kebijakan dengan nilai2012-10-17
, IAM API versi pertama yang mendukung variabel kebijakan, memecahkan masalah ini (dipanggil dalam huruf tebal):
{
"Version": "2012-10-17",
"Statement":
{
"Action": "iam:*AccessKey*",
"Effect": "Allow",
"Resource": "arn:aws:iam::123456789012:user/${aws:username}"
}
}