Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kunci konteks bernilai tunggal vs. multivaluasi
Perbedaan antara kunci konteks bernilai tunggal dan multivalued terletak pada jumlah nilai dalam konteks permintaan, bukan jumlah nilai dalam kondisi kebijakan.
-
Kunci konteks kondisi bernilai tunggal memiliki paling banyak satu nilai dalam konteks permintaan. Misalnya, saat Anda menandai sumber daya AWS, setiap tag sumber daya disimpan sebagai pasangan nilai kunci. Karena kunci tag sumber daya hanya dapat memiliki satu nilai tag, aws:ResourceTag/tag-kunci adalah kunci konteks bernilai tunggal. Jangan gunakan operator set kondisi dengan kunci konteks bernilai tunggal.
-
Kunci konteks kondisi multivalued dapat memiliki beberapa nilai dalam konteks permintaan. Misalnya, saat Anda menandai sumber daya AWS, Anda dapat menyertakan beberapa pasangan nilai kunci tag dalam satu permintaan. Oleh karena itu, aws: TagKeys adalah kunci konteks multivalued. Kunci konteks multivaluasi memerlukan operator set kondisi.
penting
Kunci konteks multivaluasi memerlukan operator set kondisi. Jangan gunakan operator set kondisi ForAllValues
atau ForAnyValue
dengan kunci konteks bernilai tunggal. Untuk mempelajari selengkapnya tentang operator set kondisi, lihatKunci konteks multivaluasi.
Klasifikasi Single-valued dan Multivalued disertakan dalam deskripsi setiap kunci konteks kondisi sebagai tipe Nilai dalam topik. AWS kunci konteks kondisi global Referensi Otorisasi Layanan menggunakan klasifikasi tipe nilai yang berbeda untuk kunci konteks multivalued, menggunakan ArrayOf
awalan yang diikuti oleh tipe kategori operator kondisi, seperti atau. ArrayOfString
ArrayOfARN
Misalnya, permintaan dapat berasal dari paling banyak satu VPC titik akhir, begitu juga kunci aws: SourceVpce konteks bernilai tunggal. Karena layanan dapat memiliki lebih dari satu nama utama layanan yang dimiliki oleh layanan, aws: PrincipalServiceNamesList adalah kunci konteks multivalued.
Anda dapat menggunakan kunci konteks bernilai tunggal yang tersedia sebagai variabel kebijakan, tetapi Anda tidak dapat menggunakan kunci konteks multivaluasi sebagai variabel kebijakan. Untuk informasi lebih lanjut tentang variabel-variable kebijakan, lihat Elemen kebijakan IAM: Variabel dan tanda.
Saat menggunakan kunci konteks yang menyertakan pasangan kunci-nilai, penting untuk dicatat bahwa meskipun mungkin ada beberapa nilai tag-key, masing-masing hanya
dapat memiliki satu nilai. Oleh karena itu, tag-key
aws:RequestTag
dan aws:ResourceTag
keduanya merupakan kunci konteks bernilai tunggal. Menggunakan operator set kondisi dengan kunci konteks bernilai tunggal dapat menyebabkan kebijakan yang terlalu permisif.
Kunci konteks multivaluasi
Untuk membandingkan kunci konteks kondisi Anda dengan kunci konteks permintaan dengan beberapa nilai, Anda harus menggunakan ForAllValues
atau ForAnyValue
mengatur operator. Operator set ini digunakan untuk membandingkan dua set nilai, seperti kumpulan tag dalam permintaan dan kumpulan tag dalam kondisi kebijakan.
Qualifier ForAllValues
dan ForAnyValue
qualifier menambahkan fungsionalitas set-operation ke operator kondisi, sehingga Anda dapat menguji kunci konteks permintaan dengan beberapa nilai terhadap beberapa nilai kunci konteks dalam kondisi kebijakan. Selain itu, jika Anda menyertakan kunci konteks string multivalued dalam kebijakan Anda dengan wildcard atau variabel, Anda juga harus menggunakan operator kondisi. StringLike Beberapa nilai kunci kondisi harus diapit dalam tanda kurung seperti array, misalnya,. "Key2":["Value2A", "Value2B"]
-
ForAllValues
— Qualifier ini menguji apakah nilai setiap anggota dari set permintaan adalah subset dari set kunci konteks kondisi. Kondisi akan ditampilkantrue
jika setiap nilai kunci konteks dalam permintaan cocok dengan setidaknya satu nilai kunci konteks dalam kebijakan. Ini juga mengembalikantrue
jika tidak ada kunci konteks dalam permintaan atau jika nilai kunci konteks menyelesaikan dataset null, seperti string kosong. Untuk mencegah kunci konteks atau kunci konteks yang hilang dengan nilai kosong dievaluasitrue
, Anda dapat menyertakan operator Nullkondisi dalam kebijakan Anda denganfalse
nilai untuk memeriksa apakah kunci konteks ada dan nilainya bukan null.penting
Berhati-hatilah jika Anda menggunakan
ForAllValues
denganAllow
efek, karena bisa terlalu permisif jika keberadaan kunci konteks yang hilang atau kunci konteks dengan nilai kosong dalam konteks permintaan tidak terduga. Anda dapat menyertakan operatorNull
kondisi dalam kebijakan Anda denganfalse
nilai untuk memeriksa apakah kunci konteks ada dan nilainya bukan null. Sebagai contoh, lihat Mengontrol akses berdasarkan kunci tanda. -
ForAnyValue
— Kualifikasi ini menguji apakah setidaknya satu anggota dari kumpulan nilai kunci konteks permintaan cocok dengan setidaknya satu anggota kumpulan nilai kunci konteks dalam kondisi kebijakan Anda. Kunci konteks akan kembalitrue
jika salah satu nilai kunci konteks dalam permintaan cocok dengan salah satu nilai kunci konteks dalam kebijakan. Untuk tidak ada kunci konteks yang cocok atau dataset nol, kondisi kembali.false
catatan
Perbedaan antara kunci konteks bernilai tunggal dan multivalued tergantung pada jumlah nilai dalam konteks permintaan, bukan jumlah nilai dalam kondisi kebijakan.