Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Efek ini modify digunakan untuk menambahkan, memperbarui, atau menghapus properti atau tag pada langganan atau sumber daya selama pembuatan atau pembaruan. Sumber daya yang tidak sesuai yang ada juga dapat diperbaiki dengan tugas remediasi. Penetapan kebijakan dengan efek yang ditetapkan sebagai Modifikasi memerlukan identitas terkelola untuk melakukan remediasi. Contoh umum yang menggunakan modify efek adalah memperbarui tag pada sumber daya seperti 'costCenter'.
Ada beberapa nuansa dalam perilaku modifikasi untuk properti sumber daya. Pelajari selengkapnya tentang skenario saat modifikasi dilewati.
Satu modify aturan dapat memiliki sejumlah operasi. Operasi yang didukung adalah:
-
Menambahkan, mengganti, atau menghapus tag sumber daya. Hanya tag yang dapat dihapus. Untuk tag, kebijakan Modifikasi harus memiliki mode yang diatur ke
indexedkecuali 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 memodifikasiidentity.typeuntuk komputer virtual atau Kelompok Skala Mesin Virtual. -
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 denganmodify.
- Gunakan
Important
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.
Modifikasi evaluasi
Modifikasi mengevaluasi sebelum permintaan diproses oleh Penyedia Sumber Daya 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.
Ketika alias ditentukan, lebih 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
modifyoperasi 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.
Important
Disarankan agar definisi Mengubah yang menyertakan alias menggunakan efek konflikaudit guna menghindari permintaan yang gagal menggunakan versi API di mana 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.
Modifikasi terlewat
Ada beberapa kasus ketika operasi modifikasi diabaikan selama evaluasi.
-
Sumber daya yang ada: Ketika definisi kebijakan yang menggunakan
modifyefek dijalankan sebagai bagian dari siklus evaluasi, itu tidak membuat perubahan pada sumber daya yang sudah ada. Sebaliknya, ini menandai sumber daya apa pun yang memenuhiifkondisi sebagai tidak patuh, sehingga dapat diperbaiki melalui tugas remediasi. -
Tidak berlaku: Ketika kondisi operasi dalam
operationsarray dievaluasi ke false, operasi tertentu dilewati. -
Properti tidak dapat dimodifikasi: Jika alias yang ditentukan untuk operasi tidak dapat dimodifikasi dalam versi API permintaan, maka evaluasi menggunakan efek konflik. Jika efek konflik diatur ke tolak, permintaan akan diblokir. Jika efek konflik diatur ke audit, permintaan diizinkan melalui tetapi
modifyoperasi dilewati. -
Properti tidak ada: Jika properti tidak ada dalam payload sumber daya permintaan, modifikasi dapat dilewati. Dalam beberapa kasus, properti yang dapat dimodifikasi disarangkan dalam properti lain dan memiliki alias seperti
Microsoft.Storage/storageAccounts/blobServices/deleteRetentionPolicy.enabled. Jika properti "induk", dalam haldeleteRetentionPolicyini , tidak ada dalam permintaan, modifikasi dilewati karena properti tersebut diasumsikan dihilangkan dengan sengaja. Untuk contoh praktis, buka bagian Contoh properti yang tidak ada. -
Operasi identitas Non VM atau VMSS: Saat operasi modifikasi mencoba menambahkan atau mengganti
identity.typebidang pada sumber daya selain Komputer Virtual atau Set Skala Komputer Virtual, evaluasi kebijakan dilewati sama sekali sehingga modifikasi tidak dilakukan. Dalam hal ini, sumber daya dianggap tidak berlaku untuk kebijakan.
Contoh properti tidak ditemukan
Modifikasi properti sumber daya tergantung pada permintaan API dan payload sumber daya yang diperbarui. Payload dapat bergantung pada klien yang digunakan, seperti portal Azure, dan faktor lain seperti penyedia sumber daya.
Bayangkan Anda menerapkan kebijakan yang memodifikasi tag pada komputer virtual (VM). Setiap kali VM diperbarui, seperti pada saat perubahan ukuran atau perubahan ukuran disk, tag diperbarui dengan sewajarnya terlepas dari konten payload VM. Ini karena tag tidak bergantung pada properti VM.
Namun, jika Anda menerapkan kebijakan yang memodifikasi properti pada VM, modifikasi bergantung pada payload sumber daya. Jika Anda mencoba mengubah properti yang tidak disertakan dalam payload pembaruan, modifikasi tidak akan terjadi. Misalnya, ini dapat terjadi saat memperbaiki properti assessmentMode dari sebuah VM (alias Microsoft.Compute/virtualMachines/osProfile.windowsConfiguration.patchSettings.assessmentMode). Properti tersebut "bersarang", jadi jika properti induknya tidak disertakan dalam permintaan, kelalaian ini dianggap disengaja dan modifikasinya diabaikan. Agar modifikasi terjadi, payload sumber daya harus berisi konteks ini.
Ubah properti
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 array string yang sesuai dengan ID peran kontrol akses berbasis peran yang dapat diakses oleh langganan. Untuk informasi selengkapnya, lihat remediasi - mengonfigurasi definisi kebijakan.
- Peran yang ditetapkan harus mencakup semua operasi yang diberikan kepada peran Kontributor/Kontributor Tag.
-
conflictEffect(opsional)- Menentukan definisi kebijakan mana yang "menang" jika lebih dari satu definisi kebijakan memodifikasi properti yang sama atau ketika
modifyoperasi tidak berfungsi pada alias yang ditentukan.- Untuk sumber daya baru atau yang diperbarui, definisi kebijakan dengan tolak diutamakan. Definisi kebijakan dengan audit mengabaikan semua
operations. Jika lebih dari satu definisi kebijakan memiliki efek tolak, permintaan ditolak sebagai konflik. Jika semua definisi kebijakan memiliki audit, maka tidak adaoperationsdefinisi 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 kurang definisi kebijakan memiliki efek deny, setiap penugasan mengembalikan status Tidak patuh.
- Untuk sumber daya baru atau yang diperbarui, definisi kebijakan dengan tolak diutamakan. Definisi kebijakan dengan audit mengabaikan semua
- Nilai yang tersedia: audit,, tolak. dinonaktifkan.
- Nilai defaultnya adalah tolak.
- Menentukan definisi kebijakan mana yang "menang" jika lebih dari satu definisi kebijakan memodifikasi properti yang sama atau ketika
-
operations(diperlukan)- Sekumpulan operasi tag untuk diselesaikan pada sumber daya yang cocok.
- Properties:
-
operation(diperlukan)- Menentukan tindakan yang akan diambil terhadap sumber daya yang sesuai. Opsinya adalah:
addOrReplace,Add, danRemove. -
Addberperilaku mirip dengan efek menambah. -
Removehanya didukung untuk tag sumber daya.
- Menentukan tindakan yang akan diambil terhadap sumber daya yang sesuai. Opsinya adalah:
-
field(diperlukan)- Tag untuk menambahkan, mengganti, atau menghapus. Nama tag harus mematuhi konvensi penamaan yang sama untuk bidang lain.
-
value(opsional)- Nilai yang akan ditetapkan untuk tag.
- Properti ini diperlukan jika
operationadalah addOrReplace atau Add.
-
condition(opsional)- String yang berisi ekspresi bahasa Azure Policy dengan Fungsi kebijakan yang dievaluasi menjadi true atau false.
- Tidak mendukung fungsi Kebijakan berikut:
field(),resourceGroup(),subscription().
-
Mengubah operasi
Array properti operations memungkinkan Anda untuk mengubah beberapa tag dengan cara yang berbeda dalam 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:
- Mengatur tag
environmentmenjadi "Test" meskipun sudah ada dengan nilai yang berbeda. - Menghapus tag
TempResource. - Menyetel
Depttag 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:
| Operation | Description |
|---|---|
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 tag yang ditentukan dari sumber daya. Hanya didukung untuk tag. |
Modifikasi contoh
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 selanjutnya
- Tinjau contoh di sampel Azure Policy.
- Tinjau struktur definisi Azure Policy.
- Memahami cara membuat kebijakan secara terprogram.
- Pelajari cara mendapatkan data kepatuhan.
- Pelajari cara memulihkan sumber daya yang tidak sesuai syarat.
- Tinjau grup manajemen Azure.