Efek modifikasi definisi Azure Policy

Efek ini modify digunakan untuk menambahkan, memperbarui, atau menghapus properti atau tag pada langganan atau sumber daya selama pembuatan atau pembaruan. Contoh umumnya adalah memperbarui tag pada sumber daya seperti costCenter. Sumber daya yang tidak sesuai dapat diremediasi dengan tugas remediasi. Satu aturan Mengubah dapat memiliki sejumlah operasi. Penetapan kebijakan dengan efek yang ditetapkan sebagai Modifikasi memerlukan identitas terkelola untuk melakukan remediasi.

Efek mendukung modify operasi berikut:

  • Menambahkan, mengganti, atau menghapus tag sumber daya. Untuk tag, kebijakan Modifikasi harus memiliki mode yang diatur ke indexed kecuali sumber daya target adalah grup sumber daya.
  • Menambahkan atau mengganti nilai jenis identitas terkelola (identity.type) komputer virtual dan Virtual Machine Scale Sets. Anda hanya dapat memodifikasi identity.type untuk komputer virtual atau Virtual Machine Scale Sets.
  • Menambahkan atau mengganti nilai alias tertentu.
    • Gunakan Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' } di Azure PowerShell 4.6.0 atau yang lebih tinggi untuk mendapatkan daftar alias yang dapat digunakan dengan modify.

Penting

Jika Anda mengelola tag, sebaiknya gunakan Ubah alih-alih Tambahkan karena Modifikasi menyediakan lebih banyak jenis operasi dan kemampuan untuk memulihkan sumber daya yang ada. Namun, Tambah disarankan jika Anda tidak dapat membuat identitas terkelola atau Mengubahi belum mendukung alias untuk properti sumber daya.

Evaluasi mengubah

Mengubah mengevaluasi sebelum permintaan diproses oleh Resource Provider selama pembuatan atau pembaruan sumber daya. modify Operasi diterapkan ke konten permintaan saat if kondisi aturan kebijakan terpenuhi. Setiap modify operasi dapat menentukan kondisi yang menentukan kapan diterapkan. Operasi dengan evaluasi kondisi palsu dilewati.

Ketika alias ditentukan, semakin banyak pemeriksaan dilakukan untuk memastikan bahwa modify operasi tidak mengubah konten permintaan dengan cara yang menyebabkan penyedia sumber daya menolaknya:

  • Properti tempat peta alias ditandai sebagai Dapat Dimodifikasi dalam versi API permintaan.
  • Jenis token dalam modify operasi cocok dengan jenis token yang diharapkan untuk properti dalam versi API permintaan.

Jika salah satu pemeriksaan ini gagal, evaluasi kebijakan kembali ke yang ditentukan conflictEffect.

Penting

Definisi Modifikasi yang menyertakan alias disarankan untuk menggunakan efek konflikaudit guna menghindari permintaan yang gagal menggunakan versi API ketika properti yang dipetakan tidak 'Dapat Diubah’. Jika alias yang sama berperilaku berbeda antara versi API, operasi modifikasi bersyarat dapat digunakan untuk menentukan operasi yang modify digunakan untuk setiap versi API.

Ketika definisi kebijakan yang menggunakan modify efek dijalankan sebagai bagian dari siklus evaluasi, itu tidak membuat perubahan pada sumber daya yang sudah ada. Sebaliknya, ini menandai sumber daya apa pun yang memenuhi if kondisi sebagai tidak patuh.

Properti mengubah

Properti details efek modify memiliki semua subproperti yang menentukan izin yang diperlukan untuk remediasi dan yang operations digunakan untuk menambahkan, memperbarui, atau menghapus nilai tag.

  • roleDefinitionIds (diperlukan)
    • Properti ini harus menyertakan serangkaian untai (karakter) yang cocok dengan ID peran kontrol akses berbasis peran yang dapat diakses oleh langganan. Untuk informasi selengkapnya, lihat remediasi - mengonfigurasi definisi kebijakan.
    • Peran yang ditentukan harus mencakup semua operasi yang diberikan kepada peran Kontributor.
  • conflictEffect (opsional)
    • Menentukan definisi kebijakan mana yang "menang" jika lebih dari satu definisi kebijakan memodifikasi properti yang sama atau ketika modify operasi tidak berfungsi pada alias yang ditentukan.
      • Untuk sumber daya baru atau yang diperbarui, definisi kebijakan dengan tolak diutamakan. Definisi kebijakan dengan audit melewati semua operations. Jika lebih dari satu definisi kebijakan memiliki efek tolak, permintaan ditolak sebagai konflik. Jika semua definisi kebijakan memiliki audit, maka tidak ada operations definisi kebijakan yang bertentangan yang diproses.
      • Untuk sumber daya yang ada, jika lebih dari satu definisi kebijakan memiliki efek tolak, status kepatuhannya adalah Konflik. Jika satu atau lebih sedikit definisi kebijakan memiliki tolak efek, setiap penugasan mengembalikan status kepatuhan yang Tidak patuh.
    • Nilai yang tersedia: audit,, tolak. dinonaktifkan.
    • Nilai defaultnya adalah tolak.
  • operations (diperlukan)
    • Array semua operasi tag yang akan diselesaikan pada sumber daya yang cocok.
    • Properti:
      • operation (diperlukan)
        • Menentukan tindakan apa yang harus diambil pada sumber daya yang cocok. Opsinya adalah: addOrReplace, Tambahkan, Hapus. Tambahkan perilaku yang mirip dengan efek penambahan.
      • field (diperlukan)
        • Tag untuk menambahkan, mengganti, atau menghapus. Nama tag harus mematuhi konvensi penamaan yang sama untuk bidang lain.
      • value (opsional)
        • Nilai untuk mengatur tag ke.
        • Properti ini diperlukan jika operation addOrReplace atau Add.
      • condition (opsional)
        • Untai (karakter) yang berisi ekspresi bahasa Azure Policy dengan Fungsi kebijakan yang dievaluasi ke true atau false.
        • Tidak mendukung fungsi Azure Policy berikut: field(), resourceGroup(), subscription().

Operasi mengubah

Array operations properti memungkinkan untuk mengubah beberapa tag dengan cara yang berbeda dari satu definisi kebijakan. Setiap operasi terdiri dari operationproperti , field, dan value . operation menentukan apa yang dilakukan tugas remediasi pada tag, field menentukan tag mana yang diubah, dan value menentukan pengaturan baru untuk tag tersebut. Contoh berikut membuat perubahan tag berikut:

  • environment Mengatur tag ke "Uji" meskipun sudah ada dengan nilai yang berbeda.
  • Menghapus tag TempResource.
  • Menyetel Dept tag ke parameter kebijakan DeptName yang dikonfigurasi pada penugasan kebijakan.
"details": {
  ...
  "operations": [
    {
      "operation": "addOrReplace",
      "field": "tags['environment']",
      "value": "Test"
    },
    {
      "operation": "Remove",
      "field": "tags['TempResource']",
    },
    {
      "operation": "addOrReplace",
      "field": "tags['Dept']",
      "value": "[parameters('DeptName')]"
    }
  ]
}

Properti operation memiliki opsi berikut:

Operasi Deskripsi
addOrReplace Menambahkan properti atau tag dan nilai yang ditentukan ke sumber daya, meskipun properti atau tag sudah ada dengan nilai yang berbeda.
add Menambahkan properti atau tag dan nilai yang ditentukan ke sumber daya.
remove Menghapus properti atau tag yang ditentukan dari sumber daya.

Contoh mengubah

Contoh 1: Tambahkan environment tag dan ganti environment tag yang ada dengan "Uji":

"then": {
  "effect": "modify",
  "details": {
    "roleDefinitionIds": [
      "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
    ],
    "operations": [
      {
        "operation": "addOrReplace",
        "field": "tags['environment']",
        "value": "Test"
      }
    ]
  }
}

Contoh 2: Hapus env tag dan tambahkan environment tag atau ganti environment tag yang ada dengan nilai parameter:

"then": {
  "effect": "modify",
  "details": {
    "roleDefinitionIds": [
      "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
    ],
    "conflictEffect": "deny",
    "operations": [
      {
        "operation": "Remove",
        "field": "tags['env']"
      },
      {
        "operation": "addOrReplace",
        "field": "tags['environment']",
        "value": "[parameters('tagValue')]"
      }
    ]
  }
}

Contoh 3: Pastikan bahwa akun penyimpanan tidak mengizinkan akses publik blob, modify operasi hanya diterapkan saat mengevaluasi permintaan dengan versi API yang lebih besar atau sama dengan 2019-04-01:

"then": {
  "effect": "modify",
  "details": {
    "roleDefinitionIds": [
      "/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
    ],
    "conflictEffect": "audit",
    "operations": [
      {
        "condition": "[greaterOrEquals(requestContext().apiVersion, '2019-04-01')]",
        "operation": "addOrReplace",
        "field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
        "value": false
      }
    ]
  }
}

Langkah berikutnya