Efek auditIfNotExists definisi Azure Policy

Efek ini auditIfNotExists memungkinkan audit sumber daya yang terkait dengan sumber daya yang cocok dengan if kondisi, tetapi tidak memiliki properti yang ditentukan dalam detailsthen kondisi.

Evaluasi AuditIfNotExists

auditIfNotExists berjalan setelah Penyedia Sumber Daya memproses permintaan buat atau perbarui sumber daya dan mengembalikan kode status keberhasilan. Audit terjadi jika tidak ada sumber daya terkait atau jika sumber daya yang ditentukan oleh ExistenceCondition tidak dievaluasi ke true. Untuk sumber daya baru dan yang diperbarui, Azure Policy menambahkan operasi Microsoft.Authorization/policies/audit/action ke log aktivitas dan menandai sumber daya sebagai tidak patuh. Saat dipicu, sumber daya yang memenuhi if kondisi adalah sumber daya yang ditandai sebagai tidak patuh.

Properti AuditIfNotExists

Properti details efek AuditIfNotExists memiliki semua subproperti yang menentukan sumber daya terkait yang cocok.

  • type (diperlukan)
    • Menentukan jenis sumber daya terkait yang cocok.
    • Jika type adalah jenis sumber daya di bawah if sumber daya kondisi, kebijakan meminta sumber daya ini type dalam cakupan sumber daya yang dievaluasi. Jika tidak, kueri kebijakan dalam grup sumber daya atau langganan yang sama dengan sumber daya yang dievaluasi tergantung pada existenceScope.
  • name (opsional)
    • Menentukan nama persis sumber daya yang cocok dan menyebabkan kebijakan mengambil satu sumber daya tertentu, bukan semua sumber daya dari jenis yang ditentukan.
    • Ketika nilai kondisi untuk if.field.type dan then.details.type cocok, maka name menjadi diperlukan dan harus [field('name')], atau [field('fullName')] untuk sumber daya anak. Namun, efek audit harus dipertimbangkan.

Catatan

type dan name segmen dapat digabungkan untuk mengambil sumber daya berlapis secara generis.

Untuk mengambil sumber daya tertentu, Anda dapat menggunakan "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" dan "name": "parentResourceName/nestedResourceName".

Untuk mengambil kumpulan sumber daya berlapis, karakter ? kartubebas dapat disediakan sebagai pengganti segmen nama belakang. Misalnya, "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" dan "name": "parentResourceName/?". Ini dapat dikombinasikan dengan fungsi bidang untuk mengakses sumber daya yang terkait dengan sumber daya yang dievaluasi, seperti "name": "[concat(field('name'), '/?')]"."

  • resourceGroupName (opsional)
    • Memungkinkan pencocokan sumber daya terkait berasal dari grup sumber daya yang berbeda.
    • Tidak berlaku jika type adalah sumber daya yang berada di bawah if sumber daya kondisi.
    • Defaultnya adalah if grup sumber daya sumber daya kondisi.
  • existenceScope (opsional)
    • Nilai yang diperbolehkan adalah Langganan dan ResourceGroup.
    • Mengatur lingkup tempat mengambil sumber daya terkait untuk dicocokkan.
    • Tidak berlaku jika type adalah sumber daya yang berada di bawah if sumber daya kondisi.
    • Untuk ResourceGroup, akan membatasi grup sumber daya jika resourceGroupName ditentukan. Jika resourceGroupName tidak ditentukan, akan membatasi if grup sumber daya sumber daya kondisi, yang merupakan perilaku default.
    • Untuk Langganan, kueri seluruh langganan untuk sumber daya terkait. Lingkup penetapan harus ditetapkan pada langganan atau yang lebih tinggi untuk evaluasi yang tepat.
    • Defaultnya adalah ResourceGroup.
  • evaluationDelay (opsional)
    • Menentukan kapan keberadaan sumber daya terkait harus dievaluasi. Penundaan hanya digunakan untuk evaluasi yang merupakan hasil dari permintaan pembuatan atau pembaruan sumber daya.
    • Nilai yang diizinkan adalah AfterProvisioning, AfterProvisioningSuccess, AfterProvisioningFailure, atau durasi ISO 8601 antara 0 dan 360 menit.
    • Nilai AfterProvisioning memeriksa hasil provisi sumber daya yang dievaluasi dalam kondisi aturan if kebijakan. AfterProvisioning berjalan setelah provisi selesai, terlepas apapun hasilnya. Provisi yang memakan waktu lebih dari enam jam, diperlakukan sebagai kegagalan saat menentukan penundaan evaluasi AfterProvisioning .
    • Defaultnya adalah PT10M (10 menit).
    • Menentukan penundaan evaluasi panjang dapat menyebabkan status kepatuhan sumber daya yang direkam tidak diperbarui hingga pemicu evaluasi berikutnya.
  • existenceCondition (opsional)
    • Jika tidak ditentukan, sumber daya type terkait memenuhi efek dan tidak memicu audit.
    • Menggunakan bahasa yang sama dengan aturan kebijakan untuk kondisi tersebut if , tetapi dievaluasi terhadap setiap sumber daya terkait satu per satu.
    • Jika ada sumber daya terkait yang cocok yang dievaluasi ke true, efeknya puas dan tidak memicu audit.
    • Dapat menggunakan [field()] untuk memeriksa kesetaraan dengan nilai dalam if kondisi.
    • Misalnya, dapat digunakan untuk memvalidasi bahwa sumber daya induk (dalam if kondisi) berada di lokasi sumber daya yang sama dengan sumber daya terkait yang cocok.

Contoh AuditIfNotExists

Contoh: Mengevaluasi Microsoft Azure Virtual Machines untuk menentukan apakah ekstensi Antimalware ada kemudian mengaudit saat hilang.

{
  "if": {
    "field": "type",
    "equals": "Microsoft.Compute/virtualMachines"
  },
  "then": {
    "effect": "auditIfNotExists",
    "details": {
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "existenceCondition": {
        "allOf": [
          {
            "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
            "equals": "Microsoft.Azure.Security"
          },
          {
            "field": "Microsoft.Compute/virtualMachines/extensions/type",
            "equals": "IaaSAntimalware"
          }
        ]
      }
    }
  }
}

Langkah berikutnya