Kunci konteks bernilai tunggal vs. multivaluasi - 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.

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 tag-key dapat memiliki satu nilai. Oleh karena itu, 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 ditampilkan true jika setiap nilai kunci konteks dalam permintaan cocok dengan setidaknya satu nilai kunci konteks dalam kebijakan. Ini juga mengembalikan true 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 dengan false nilai untuk memeriksa apakah kunci konteks ada dan nilainya bukan null.

    penting

    Berhati-hatilah jika Anda menggunakan ForAllValues dengan Allow 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 operator Null kondisi dalam kebijakan Anda dengan false 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 kembali true 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.