Mengatasi kesalahan dalam permintaan yang tidak diizinkan oleh kebijakan

Saat menyebarkan templat Azure Resource Manager (templat ARM) atau file Bicep, Anda mendapatkan RequestDisallowedByPolicy kesalahan saat salah satu sumber daya untuk disebarkan tidak mematuhi Azure Policy yang ada.

Gejala

Selama penyebaran, Anda mungkin menerima kesalahan RequestDisallowedByPolicy yang mencegah Anda membuat sumber daya. Azure CLI, Azure PowerShell, dan log aktivitas portal Microsoft Azure menunjukkan informasi mirip tentang kesalahan. Elemen kuncinya adalah kode galat, penugasan kebijakan, dan definisi kebijakan.

"statusMessage": "{"error":{"code":"RequestDisallowedByPolicy", "target":"examplenic1207",
  "message":"Resource `examplenic1207` was disallowed by policy. Policy identifiers:

"policyAssignment":{"name":"Network interfaces should not have public IPs",
  "id":"/subscriptions/{guid}/providers/Microsoft.Authorization/policyAssignments/1111aa2222bb3333cc4444dd"}

"policyDefinition":{"name":"Network interfaces should not have public IPs",
  "id":"/subscriptions/{guid}/providers/Microsoft.Authorization/policyDefinitions/83a86a26-fd1f-447c-b59d-e51f44264114"}

Dalam string id, tempat penampung {guid} menunjukkan ID langganan Azure. Nama policyAssignment atau policyDefinition adalah segmen terakhir dari string id.

Penyebab

Organisasi Anda menetapkan kebijakan untuk menegakkan standar organisasi dan menilai kepatuhan dalam skala besar. Jika Anda mencoba menyebarkan sumber daya yang melanggar kebijakan, penyebaran akan diblokir.

Misalnya, langganan Anda dapat memiliki kebijakan yang mencegah IP publik pada antarmuka jaringan. Jika Anda mencoba membuat antarmuka jaringan dengan alamat IP publik, kebijakan akan memblokir Anda untuk membuat antarmuka jaringan.

Solusi

Untuk mengatasi RequestDisallowedByPolicy kesalahan saat menyebarkan templat ARM atau file Bicep, Anda perlu menemukan kebijakan mana yang memblokir penyebaran. Dalam kebijakan tersebut, Anda perlu meninjau aturan sehingga Anda dapat memperbarui penyebaran untuk mematuhi kebijakan.

Pesan kesalahan mencakup nama definisi kebijakan dan penetapan kebijakan yang menyebabkan kesalahan. Anda memerlukan nama-nama ini untuk mendapatkan informasi lebih lanjut tentang kebijakan tersebut.

Untuk mendapatkan informasi selengkapnya tentang definisi kebijakan, gunakan az policy definition show.

az policy definition show --name {policy-name}

Untuk mendapatkan informasi selengkapnya tentang penugasan kebijakan, gunakan az policy assignment show.

az policy assignment show --name {assignment-name} --resource-group {resource-group-name}

Dalam definisi kebijakan, Anda akan melihat deskripsi kebijakan dan aturan yang diterapkan. Tinjau aturan dan perbarui templat ARM atau file Bicep Anda untuk mematuhi aturan. Misalnya, jika aturan menyatakan akses jaringan publik dinonaktifkan, Anda perlu memperbarui properti sumber daya yang sesuai.

Untuk informasi lebih lanjut, baca artikel berikut: