Efek tolak definisi Azure Policy

Efeknya denyAction digunakan untuk memblokir permintaan berdasarkan tindakan yang dimaksudkan ke sumber daya dalam skala besar. Satu-satunya tindakan yang didukung hari ini adalah DELETE. Efek dan nama tindakan ini membantu mencegah penghapusan sumber daya penting yang tidak disengaja.

Evaluasi DenyAction

Saat panggilan permintaan dengan nama tindakan yang berlaku dan cakupan yang ditargetkan dikirimkan, denyAction mencegah permintaan berhasil. Permintaan dikembalikan sebagai 403 (Forbidden). Di portal, Forbidden dapat dilihat sebagai status penyebaran yang dicegah oleh penetapan kebijakan.

Microsoft.Authorization/policyAssignments, , Microsoft.Authorization/denyAssignmentsMicrosoft.Blueprint/blueprintAssignments, Microsoft.Resources/deploymentStacks, Microsoft.Resources/subscriptions, dan Microsoft.Authorization/locks semuanya dikecualikan dari denyAction penegakan untuk mencegah skenario penguncian.

Penghapusan langganan

Kebijakan tidak memblokir penghapusan sumber daya yang terjadi selama penghapusan langganan.

Penghapusan grup sumber daya

Kebijakan mengevaluasi sumber daya yang mendukung lokasi dan tag terhadap denyAction kebijakan selama penghapusan grup sumber daya. Hanya kebijakan yang diatur cascadeBehaviors ke deny dalam aturan kebijakan yang memblokir penghapusan grup sumber daya. Kebijakan tidak memblokir penghapusan sumber daya yang tidak mendukung lokasi dan tag atau kebijakan apa pun dengan mode:all.

Penghapusan kaskade

Penghapusan kaskade terjadi saat menghapus sumber daya induk secara implisit menghapus semua sumber daya anak dan ekstensinya. Kebijakan tidak memblokir penghapusan sumber daya anak dan ekstensi saat tindakan penghapusan menargetkan sumber daya induk. Misalnya, Microsoft.Insights/diagnosticSettings adalah sumber daya ekstensi dari Microsoft.Storage/storageaccounts. denyAction Jika kebijakan menargetkan Microsoft.Insights/diagnosticSettings, panggilan penghapusan ke pengaturan diagnostik (turunan) gagal, tetapi penghapusan ke akun penyimpanan (induk) secara implisit menghapus pengaturan diagnostik (ekstensi).

Tabel ini menjelaskan apakah sumber daya dilindungi dari penghapusan mengingat sumber daya yang berlaku untuk kebijakan yang denyAction ditetapkan dan cakupan panggilan yang DELETE ditargetkan. Dalam konteks tabel ini, sumber daya terindeks adalah sumber daya yang mendukung tag dan lokasi dan sumber daya yang tidak diindeks adalah sumber daya yang tidak mendukung tag atau lokasi. Untuk informasi selengkapnya tentang sumber daya terindeks dan tidak terindeks, buka mode definisi. Sumber daya anak adalah sumber daya yang hanya ada dalam konteks sumber daya lain. Misalnya, sumber daya ekstensi komputer virtual adalah anak dari komputer virtual, yang merupakan sumber daya induk.

Entitas sedang dihapus Entitas yang berlaku untuk kondisi kebijakan Tindakan yang diambil
Sumber daya Sumber daya Protected
Langganan Sumber daya Dihapus
Grup sumber daya Sumber daya terindeks Tergantung pada cascadeBehaviors
Grup sumber daya Sumber daya yang tidak diindeks Dihapus
Sumber daya anak Sumber daya induk Induk dilindungi; anak dihapus
Sumber daya induk Sumber daya anak Dihapus

Properti DenyAction

Properti details efek denyAction memiliki semua subproperti yang menentukan tindakan dan perilaku.

  • actionNames (diperlukan)
    • Array yang menentukan tindakan apa yang harus dicegah untuk dijalankan.
    • Nama tindakan yang didukung adalah: delete.
  • cascadeBehaviors (opsional)
    • Objek yang menentukan perilaku mana yang diikuti saat sumber daya dihapus secara implisit saat grup sumber daya dihapus.
    • Hanya didukung dalam definisi kebijakan dengan mode yang diatur ke indexed.
    • Nilai yang diizinkan adalah: allow atau deny.
    • Nilai default deny.

Contoh DenyAction

Contoh: Tolak setiap panggilan penghapusan yang menargetkan akun database yang memiliki lingkungan tag yang sama dengan prod. Karena perilaku kaskade diatur ke tolak, blokir panggilan apa pun DELETE yang menargetkan grup sumber daya dengan akun database yang berlaku.

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDb/accounts"
      },
      {
        "field": "tags.environment",
        "equals": "prod"
      }
    ]
  },
  "then": {
    "effect": "denyAction",
    "details": {
      "actionNames": [
        "delete"
      ],
      "cascadeBehaviors": {
        "resourceGroup": "deny"
      }
    }
  }
}

Langkah berikutnya