Rincian struktur pembebasan Azure Policy
Fitur pembebasan Azure Policy digunakan untuk mengecualikan hierarki sumber daya atau sumber daya individual dari evaluasi inisiatif atau definisi. Sumber daya yang dibebaskan diperhitungkan terhadap kepatuhan keseluruhan, tetapi tidak dapat dievaluasi atau memiliki pengabaian sementara. Untuk informasi selengkapnya, lihat Memahami penerapan dalam Azure Policy. Pengecualian Azure Policy juga berfungsi dengan mode Resource Manager berikut: Microsoft.Kubernetes.Data, Microsoft.KeyVault.Data, dan Microsoft.Network.Data.
Anda menggunakan JavaScript Object Notation (JSON) untuk membuat pengecualian kebijakan. Pembebasan kebijakan berisi elemen untuk:
- nama tampilan
- description
- metadata
- penetapan kebijakan
- definisi kebijakan dalam inisiatif
- kategori pengecualian
- Kadaluarsa
- pemilih sumber daya
- validasi cakupan penugasan
Pengecualian kebijakan dibuat sebagai objek turunan pada hierarki sumber daya atau sumber daya individual yang memberikan pengecualian. Pengecualian tidak dapat dibuat pada tingkat komponen mode Penyedia Sumber Daya. Jika sumber daya induk tempat pengecualian diterapkan dihapus, maka pengecualian juga dihapus.
Misalnya, JSON berikut menunjukkan pembebasan kebijakan dalam kategori pengabaian sumber daya ke penugasan inisiatif bernama resourceShouldBeCompliantInit
. Sumber daya hanya dikecualikan dari dua definisi kebijakan dalam inisiatif, customOrgPolicy
definisi kebijakan kustom ( policyDefinitionReferenceId
: requiredTags
) dan definisi kebijakan bawaan lokasi yang diizinkan ( policyDefinitionReferenceId
: allowedLocations
):
{
"id": "/subscriptions/{subId}/resourceGroups/ExemptRG/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
"apiVersion": "2020-07-01-preview",
"name": "resourceIsNotApplicable",
"type": "Microsoft.Authorization/policyExemptions",
"properties": {
"displayName": "This resource is scheduled for deletion",
"description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
"metadata": {
"requestedBy": "Storage team",
"approvedBy": "IA",
"approvedOn": "2020-07-26T08:02:32.0000000Z",
"ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
},
"policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
"policyDefinitionReferenceIds": [
"requiredTags",
"allowedLocations"
],
"exemptionCategory": "waiver",
"expiresOn": "2020-12-31T23:59:00.0000000Z",
"assignmentScopeValidation": "Default"
}
}
Nama tampilan dan deskripsi
Anda menggunakan displayName dan deskripsi untuk mengidentifikasi pembebasan kebijakan dan memberikan konteks untuk penggunaannya dengan sumber daya tertentu. displayName memiliki panjang maksimum 128 karakter dan description memiliki panjang maksimum 512 karakter.
Metadata
Properti metadata memungkinkan pembuatan properti anak yang diperlukan untuk menyimpan informasi yang relevan. Dalam contoh, properti requestedBy, approvedBy, approvedOn, dan ticketRef berisi nilai pelanggan untuk memberikan informasi tentang siapa yang meminta pengecualian, siapa yang menyetujuinya dan kapan, dan tiket pelacakan internal untuk permintaan tersebut. Properti metadata ini adalah contoh, tetapi tidak diperlukan dan metadata tidak terbatas pada properti anak ini.
ID penetapan kebijakan
Bidang ini harus berupa nama jalur lengkap penugasan kebijakan atau penugasan inisiatif.
policyAssignmentId
adalah untai (karakter) dan bukan array. Properti ini menentukan dari mana penetapan hierarki sumber daya induk atau sumber daya individual dibebaskan.
ID definisi kebijakan
Jika policyAssignmentId
ditujukan untuk penugasan inisiatif, properti policyDefinitionReferenceIds dapat digunakan untuk menentukan definisi kebijakan mana dalam inisiatif yang dibebaskan oleh sumber daya subjek. Karena sumber daya dapat dikecualikan dari satu atau beberapa definisi kebijakan yang disertakan, properti ini adalah array. Nilai harus cocok dengan nilai dalam definisi inisiatif di bidang policyDefinitions.policyDefinitionReferenceId
.
Kategori pembebasan
Ada dua kategori pembebasan dan digunakan untuk pengecualian grup:
- Dimitigasi: Pembebasan diberikan karena niat kebijakan dipenuhi melalui metode lain.
- Pengabaian: Pembebasan diberikan karena status ketidakpatuhan sumber daya untuk sementara diterima. Alasan lain untuk menggunakan kategori ini adalah untuk hierarki sumber daya atau sumber daya yang harus dikecualikan dari satu atau lebih definisi dalam inisiatif, tetapi tidak boleh dikecualikan dari seluruh inisiatif.
kedaluwarsa
Untuk mengatur kapan hierarki sumber daya atau sumber daya individual tidak lagi dibebaskan dari tugas, atur properti kedaluwarsa. Properti opsional ini harus dalam format TanggalWaktu ISO 8601 Universal yyyy-MM-ddTHH:mm:ss.fffffffZ
.
Catatan
Pembebasan kebijakan tidak dihapus saat tanggal expiresOn
tercapai. Objek dipertahankan untuk pencatatan, tetapi pembebasan tidak lagi dihormati.
Pemilih sumber daya
Pengecualian mendukung properti resourceSelectors
opsional . Properti ini bekerja dengan cara yang sama dalam pengecualian seperti dalam penugasan, memungkinkan peluncuran bertahap atau pembatalan pengecualian ke subset sumber daya tertentu dengan cara yang terkontrol berdasarkan jenis sumber daya, lokasi sumber daya, atau apakah sumber daya memiliki lokasi. Detail selengkapnya tentang cara menggunakan pemilih sumber daya dapat ditemukan dalam struktur penugasan. Berikut adalah contoh pengecualian JSON, yang menggunakan pemilih sumber daya. Dalam contoh ini, hanya sumber daya di yang akan dikecualikan westcentralus
dari penetapan kebijakan:
{
"properties": {
"policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceIds": [
"limitSku", "limitType"
],
"exemptionCategory": "Waiver",
"resourceSelectors": [
{
"name": "TemporaryMitigation",
"selectors": [
{
"kind": "resourceLocation",
"in": [ "westcentralus" ]
}
]
}
]
},
"systemData": { ... },
"id": "/subscriptions/{subId}/resourceGroups/demoCluster/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Wilayah dapat ditambahkan atau dihapus dari resourceLocation
daftar dalam contoh. Pemilih sumber daya memungkinkan fleksibilitas yang lebih besar di mana dan bagaimana pengecualian dapat dibuat dan dikelola.
Validasi cakupan penugasan (pratinjau)
Dalam sebagian besar skenario, cakupan pengecualian divalidasi untuk memastikannya berada di atau di bawah cakupan penetapan kebijakan. Properti opsional assignmentScopeValidation
dapat memungkinkan pengecualian untuk melewati validasi ini dan dibuat di luar cakupan penugasan. Ini ditujukan untuk situasi di mana langganan perlu dipindahkan dari satu grup manajemen (MG) ke grup manajemen lainnya, tetapi pemindahan akan diblokir oleh kebijakan karena properti sumber daya dalam langganan. Dalam skenario ini, pengecualian dapat dibuat untuk langganan di MG saat ini untuk membebaskan sumber dayanya dari penetapan kebijakan pada MG tujuan. Dengan begitu, ketika langganan dipindahkan ke MG tujuan, operasi tidak diblokir karena sumber daya sudah dikecualikan dari penetapan kebijakan yang dimaksud. Penggunaan properti ini diilustrasikan di bawah ini:
{
"properties": {
"policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgB}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceIds": [
"limitSku", "limitType"
],
"exemptionCategory": "Waiver",
"assignmentScopeValidation": "DoNotValidate",
},
"systemData": { ... },
"id": "/subscriptions/{subIdA}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Nilai yang diperbolehkan assignmentScopeValidation
adalah Default
dan DoNotValidate
. Jika tidak ditentukan, proses validasi default akan terjadi.
Izin yang diperlukan
Izin RBAC Azure diperlukan untuk mengelola objek pembebasan Kebijakan berada dalam grup operasi Microsoft.Authorization/policyExemptions
. Peran bawaan Kontributor Kebijakan Sumber Daya dan Admin Keamanan keduanya memiliki izin read
dan write
serta Penulis Data Wawasan Kebijakan (Pratinjau) memiliki izin read
.
Pengecualian memiliki langkah-langkah keamanan tambahan karena dampak pemberian pengecualian. Selain mengharuskan operasi Microsoft.Authorization/policyExemptions/write
pada hierarki sumber daya atau sumber daya individual, pencipta pengecualian harus memiliki kata kerja exempt/Action
pada penetapan target.
Pembuatan dan manajemen pengecualian
Pengecualian direkomendasikan untuk skenario yang terikat waktu atau spesifik di mana hierarki sumber daya atau sumber daya masih harus dilacak dan sebaliknya akan dievaluasi, tetapi ada alasan khusus bahwa hierarki sumber daya atau sumber daya tidak boleh dinilai untuk kepatuhan. Misalnya, jika lingkungan memiliki definisi Storage accounts should disable public network access
bawaan (ID: b2982f36-99f2-4db5-8eff-283140c09693
) yang ditetapkan dengan efek yang diatur ke audit. Setelah penilaian kepatuhan, sumber daya "StorageAcc1" tidak sesuai, tetapi StorageAcc1 harus mengaktifkan akses jaringan publik untuk tujuan bisnis. Pada saat itu, permintaan harus dikirimkan untuk membuat sumber daya pengecualian yang menargetkan StorageAcc1. Setelah pengecualian dibuat, StorageAcc1 akan ditampilkan sebagai dikecualikan dalam tinjauan kepatuhan.
Kunjungi kembali pengecualian Anda secara teratur untuk memastikan bahwa semua item yang memenuhi syarat dikecualikan dengan tepat dan segera menghapus tidak lagi memenuhi syarat untuk pembebasan. Pada saat itu, sumber daya pengecualian yang telah kedaluwarsa juga dapat dihapus.
Langkah berikutnya
- Manfaatkan kueri Azure Resource Graph pada pengecualian.
- Pelajari tentang perbedaan antara pengecualian dan pengecualian.
- Pelajari jenis sumber daya Microsoft.Authorization policyExemptions.
- Pelajari cara mendapatkan data kepatuhan.
- Pelajari cara memulihkan sumber daya yang tidak sesuai syarat.