Memecahkan masalah kondisi penetapan peran Azure

Masalah umum

Gejala - Kondisi tidak diberlakukan

Penyebab 1

Perwakilan keamanan memiliki satu atau lebih penetapan peran pada cakupan yang sama atau lebih tinggi.

Solusi 1

Pastikan bahwa perwakilan keamanan tidak memiliki beberapa penetapan peran (dengan atau tanpa kondisi) yang memberikan akses ke tindakan data yang sama yang mengarah ke non-penegakan kondisi. Untuk informasi tentang logika evaluasi, lihat Bagaimana Azure RBAC menentukan apakah pengguna memiliki akses ke sumber daya.

Penyebab 2

Penetapan peran Anda memiliki beberapa tindakan yang memberikan izin dan kondisi Anda tidak menargetkan semua tindakan. Misalnya, Anda dapat membuat blob jika Anda memiliki salah satu /blobs/write atau /blobs/add/action tindakan data. Jika penetapan peran Anda memiliki tindakan data dan Anda hanya menargetkan salah satunya dalam satu kondisi, penetapan peran akan memberikan izin untuk membuat blob dan melewati ketentuan.

Solusi 2

Jika penetapan peran Anda memiliki beberapa tindakan yang memberikan izin, pastikan Anda menargetkan semua tindakan yang relevan.

Penyebab 3

Saat Anda menambahkan ketentuan ke penetapan peran, perlu waktu hingga 5 menit agar ketentuan dapat diberlakukan. Saat Anda menambahkan kondisi, penyedia sumber daya (seperti Microsoft Storage) akan diberi tahu tentang pembaruan tersebut. Penyedia sumber daya segera melakukan pembaruan pada cache lokal mereka untuk memastikan bahwa mereka memiliki penetapan peran terbaru. Proses ini selesai dalam 1 atau 2 menit, tetapi bisa memakan waktu hingga 5 menit.

Solusi 3

Tunggu selama 5 menit dan uji kondisinya lagi.

Gejala - Kondisi bukan kesalahan yang valid saat menambahkan kondisi

Saat mencoba menambahkan penetapan peran dengan kondisi, Anda akan mendapatkan kesalahan yang mirip dengan:

The given role assignment condition is invalid.

Penyebab 1

Properti conditionVersion diatur ke "1.0".

Solusi 1

Atur conditionVersion properti ke "2.0".

Penyebab 2

Kondisi Anda tidak diformat dengan benar.

Solusi 2

Perbaiki setiap format kondisi atau masalah sintaks. Atau, tambahkan kondisi menggunakan editor visual di portal Microsoft Azure.

Masalah di editor visual

Gejala - Prinsipal tidak muncul di Sumber atribut

Saat Anda mencoba menambahkan penetapan peran dengan kondisi, Prinsipal tidak muncul di daftar Sumber atribut.

Screenshot showing Principal in Attribute source list when adding a condition.

Sebagai gantinya, Anda akan melihat pesan:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

Penyebab

Anda tidak memenuhi prasyarat. Untuk menggunakan atribut utama, Anda harus memiliki yang berikut:

  • Izin Microsoft Entra untuk pengguna yang masuk untuk membaca setidaknya satu set atribut
  • Atribut keamanan kustom yang ditentukan dalam ID Microsoft Entra

Solusi

  1. Buka atribut keamanan Kustom Microsoft Entra ID>.

    Jika Anda melihat halaman Memulai , Anda tidak memiliki izin untuk membaca setidaknya satu set atribut atau atribut keamanan kustom belum ditentukan.

    Screenshot that shows Custom security attributes Get started page.

  2. Jika atribut keamanan kustom telah ditentukan, tetapkan salah satu peran berikut di cakupan penyewa atau cakupan set atribut. Untuk informasi selengkapnya, lihat Mengelola akses ke atribut keamanan kustom di ID Microsoft Entra.

    Penting

    Secara default, Administrator Global dan peran administrator lainnya tidak memiliki izin untuk membaca, menentukan, atau menetapkan atribut keamanan kustom.

  3. Jika atribut keamanan kustom belum ditentukan, tetapkan peran Administrator Definisi Atribut di cakupan penyewa dan tambahkan atribut keamanan kustom. Untuk informasi selengkapnya, lihat Menambahkan atau menonaktifkan atribut keamanan kustom di ID Microsoft Entra.

    Setelah selesai, Anda harus dapat membaca setidaknya satu set atribut.

    Screenshot that shows the attribute sets the user can read.

    Prinsipal sekarang akan muncul di daftar Sumber atribut saat Anda menambahkan penetapan peran dengan kondisi.

Gejala - Prinsipal tidak muncul di Sumber atribut saat menggunakan PIM

Saat Anda mencoba menambahkan penetapan peran dengan kondisi menggunakan Microsoft Entra Privileged Identity Management (PIM), Prinsipal tidak muncul di daftar Sumber atribut.

Screenshot showing Principal in Attribute source list when adding a condition using Privileged Identity Management.

Penyebab

PIM saat ini tidak mendukung penggunaan atribut utama dalam kondisi penetapan peran.

Pesan kesalahan di editor visual

Gejala - Kondisi tidak dikenali

Setelah menggunakan editor kode, Anda beralih ke editor visual dan mendapatkan pesan yang mirip dengan yang berikut ini:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Penyebab

Pembaruan dibuat dengan syarat bahwa editor visual tidak dapat mengurai.

Solusi

Perbaiki setiap format kondisi atau masalah sintaks. Atau, Anda dapat menghapus kondisi dan mencoba lagi.

Gejala - Atribut tidak menerapkan kesalahan untuk kondisi yang disimpan sebelumnya

Saat Anda membuka kondisi yang disimpan sebelumnya di editor visual, Anda mendapatkan pesan berikut:

Attribute does not apply for the selected actions. Select a different set of actions.

Penyebab

Pada Bulan Mei 2022, tindakan Baca blob diubah dari format berikut:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Untuk mengecualikan Blob.List suboperasi:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Jika Anda membuat kondisi dengan tindakan Baca blob sebelum Mei 2022, Anda mungkin melihat pesan kesalahan ini di editor visual.

Solusi

Buka panel Pilih tindakan dan pilih kembali tindakan Baca blob .

Gejala - Atribut tidak menerapkan kesalahan

Saat Anda memilih satu atau beberapa tindakan di editor visual dengan ekspresi yang sudah ada, Anda mendapatkan pesan berikut dan atribut yang dipilih sebelumnya akan dihapus:

Attribute does not apply for the selected actions. Select a different set of actions.

Penyebab

Atribut yang dipilih sebelumnya tidak lagi berlaku untuk tindakan yang saat ini dipilih.

Solusi 1

Di bagian Tambahkan tindakan , pilih tindakan yang berlaku untuk atribut yang dipilih. Untuk daftar tindakan penyimpanan yang didukung setiap atribut penyimpanan, lihat Tindakan dan atribut untuk kondisi penetapan peran Azure untuk Azure Blob Storage dan Tindakan dan atribut untuk kondisi penetapan peran Azure untuk antrean Azure.

Solusi 2

Di bagian Ekspresi build , pilih atribut yang berlaku untuk tindakan yang saat ini dipilih. Untuk daftar atribut penyimpanan yang didukung setiap tindakan penyimpanan, lihat Tindakan dan atribut untuk kondisi penetapan peran Azure untuk Azure Blob Storage dan Tindakan dan atribut untuk kondisi penetapan peran Azure untuk antrean Azure.

Gejala - Atribut tidak berlaku dalam peringatan konteks ini

Saat Anda melakukan pengeditan di editor kode lalu beralih ke editor visual, Anda mendapatkan pesan berikut dan atribut yang dipilih sebelumnya dihapus:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Penyebab

Atribut yang ditentukan tidak tersedia dalam cakupan saat ini, seperti menggunakan Version ID di akun penyimpanan dengan namespace hierarki diaktifkan.

Solusi

Jika Anda ingin menggunakan atribut yang saat ini ditentukan, buat kondisi penetapan peran pada cakupan yang berbeda, seperti cakupan grup sumber daya. Atau hapus dan buat ulang ekspresi menggunakan tindakan yang saat ini dipilih.

Gejala - Atribut tidak dikenali kesalahan

Saat Anda melakukan pengeditan di editor kode lalu beralih ke editor visual, Anda mendapatkan pesan berikut dan atribut yang dipilih sebelumnya dihapus:

Attribute is not recognized. Select a valid attribute or remove the expression.

Penyebab

Atribut yang ditentukan tidak dikenali, mungkin karena kesalahan ketik.

Solusi

Di editor kode, perbaiki kesalahan ketik. Atau hapus ekspresi yang ada dan gunakan editor visual untuk memilih atribut.

Gejala - Nilai atribut adalah kesalahan yang tidak valid

Saat Anda melakukan pengeditan di editor kode lalu beralih ke editor visual, Anda mendapatkan pesan berikut dan atribut yang dipilih sebelumnya dihapus:

Attribute value is invalid. Select another attribute or value.

Penyebab

Sisi kanan ekspresi berisi atribut atau nilai yang tidak valid.

Solusi

Gunakan editor visual untuk memilih atribut atau menentukan nilai.

Gejala - Tidak ada tindakan yang dipilih kesalahan

Saat Anda menghapus semua tindakan di editor visual, Anda mendapatkan pesan berikut:

No actions selected. Select one or more actions to edit expressions.

Penyebab

Ada ekspresi yang ada, tetapi tidak ada tindakan yang dipilih sebagai target.

Solusi

Di bagian Tambahkan tindakan , tambahkan satu atau beberapa tindakan yang harus ditargetkan ekspresi.

Gejala - Tidak ada opsi kesalahan yang tersedia

Saat mencoba menambahkan ekspresi, Anda mendapatkan pesan berikut:

No options available

Penyebab

Anda memilih untuk menargetkan beberapa tindakan dan tidak ada atribut apa pun yang berlaku untuk semua tindakan yang saat ini dipilih.

Solusi

Di bagian Tambahkan tindakan , pilih lebih sedikit tindakan yang akan ditargetkan. Untuk menargetkan tindakan yang Anda hapus, tambahkan beberapa kondisi.

Gejala - ID definisi peran tidak ditemukan

Saat mencoba menambahkan ekspresi, Anda mendapatkan pesan berikut:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Penyebab

Satu atau beberapa ID definisi peran yang Anda coba tambahkan untuk atribut ID definisi Peran tidak ditemukan atau tidak memiliki format GUID yang benar: 00000000-0000-0000-0000-000000000000.

Solusi

Gunakan editor kondisi untuk memilih peran. Jika Anda baru saja menambahkan peran kustom, refresh halaman atau keluar dan masuk lagi.

Gejala - ID utama tidak ditemukan

Saat mencoba menambahkan ekspresi, Anda mendapatkan pesan berikut:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Penyebab

Satu atau beberapa ID utama yang Anda coba tambahkan untuk atribut ID Utama tidak ditemukan atau tidak memiliki format GUID yang benar: 00000000-0000-0000-0000-000000000000.

Solusi

Gunakan editor kondisi untuk memilih prinsipal. Jika Anda baru saja menambahkan perwakilan, refresh halaman atau keluar dan masuk lagi.

Pesan kesalahan di Azure PowerShell

Gejala - Atribut sumber daya bukan kesalahan yang valid

Saat mencoba menambahkan penetapan peran dengan kondisi menggunakan Microsoft Azure PowerShell, Anda akan mendapatkan kesalahan yang mirip dengan:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Penyebab

Jika kondisi Anda menyertakan tanda dolar ($), Anda harus mengawalinya dengan backtick (').

Solusi

Tambahkan backtick (') sebelum setiap tanda dolar. Kode berikut menunjukkan contoh. Untuk informasi selengkapnya mengenai aturan untuk tanda kutip di PowerShell, lihat Mengenai Aturan Penawaran.

$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"

Gejala - Kesalahan saat menyalin dan menempelkan kondisi

Penyebab

Jika Anda menggunakan PowerShell dan menyalin kondisi dari dokumen, mungkin menyertakan karakter khusus yang menyebabkan kesalahan berikut. Beberapa editor (seperti Microsoft Word) menambahkan karakter kontrol saat memformat teks yang tidak muncul.

The given role assignment condition is invalid.

Solusi

Jika Anda menyalin kondisi dari editor teks kaya dan Anda yakin kondisinya benar, hapus semua spasi dan kembali lalu tambahkan kembali spasi yang relevan. Atau, gunakan editor teks biasa atau editor kode, seperti Visual Studio Code.

Pesan kesalahan di Azure CLI

Gejala - Atribut sumber daya bukan kesalahan yang valid

Saat mencoba menambahkan penetapan peran dengan kondisi dengan menggunakan Azure CLI, Anda akan mendapatkan kesalahan yang mirip dengan:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Penyebab

Jika kondisi Anda menyertakan tanda dolar ($), Anda harus mengawalinya dengan garis miring terbalik (\).

Solusi

Tambahkan garis miring terbelakang (\) sebelum setiap tanda dolar. Kode berikut menunjukkan contoh. Untuk informasi selengkapnya tentang aturan untuk tanda kutip di Bash, lihat Kutipan Ganda.

condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"

Gejala - Kesalahan argumen yang tidak dikenal

Saat mencoba menambahkan penetapan peran dengan kondisi dengan menggunakan Azure CLI, Anda akan mendapatkan kesalahan yang mirip dengan:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Penyebab

Anda kemungkinan menggunakan versi Azure CLI yang lebih lama yang tidak mendukung parameter kondisi penetapan peran.

Solusi

Memperbarui ke versi terbaru Azure CLI (2.18 atau yang lebih baru). Untuk informasi selengkapnya, lihat Menginstal Azure CLI.

Gejala - Kesalahan saat menetapkan untai (karakter) kondisi ke variabel di Bash

Ketika Anda mencoba untuk menetapkan untai (karakter) kondisi ke variabel di Bash, Anda mendapatkan pesan bash: !: event not found.

Penyebab

Di Bash, jika ekspansi riwayat diaktifkan, Anda mungkin melihat pesan bash: !: event not found karena tanda serunya (!).

Solusi

Nonaktifkan ekspansi riwayat dengan perintah set +H. Untuk mengaktifkan kembali ekspansi riwayat, gunakan set -H.

Langkah berikutnya