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.
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 maupun mendapatkan pengecualian sementara. Untuk informasi selengkapnya, lihat Memahami penerapan dalam Azure Policy. Pengecualian Azure Policy juga berfungsi dengan mode Resource Manager berikut: , Microsoft.Kubernetes.Data, dan Microsoft.KeyVault.Data. 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 di 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 pada dua definisi kebijakan dalam inisiatif, customOrgPolicy definisi kebijakan kustom ( policyDefinitionReferenceId: requiredTags) dan definisi kebijakan bawaan 'Lokasi yang Diizinkan' ( policyDefinitionReferenceId : allowedLocations):
{
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/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",
"policyDefinitionReferenceId": [
"requiredTags",
"allowedLocations"
],
"exemptionCategory": "waiver",
"expiresOn": "2020-12-31T23:59:00.0000000Z",
"assignmentScopeValidation": "Default"
}
}
Nama tampilan dan deskripsi
Anda menggunakan displayName dan description untuk mengidentifikasi pengecualian kebijakan dan memberikan konteks untuk penggunaannya dengan sumber daya tertentu.
displayName memiliki panjang maksimum 128 karakter dan description panjang maksimum 512 karakter.
Metadata
Properti metadata ini memungkinkan pembuatan properti turunan apa pun yang diperlukan untuk menyimpan informasi yang relevan. Dalam contoh, properti requestedBy, , approvedByapprovedOn, dan ticketRef berisi nilai pelanggan untuk memberikan informasi tentang siapa yang meminta pengecualian, yang menyetujuinya dan kapan, dan tiket pelacakan internal untuk permintaan tersebut. Properti ini metadata adalah contoh, tetapi tidak diperlukan dan metadata tidak terbatas pada properti turunan ini.
ID penugasan kebijakan
Bidang ini harus berupa nama jalur lengkap penugasan kebijakan atau penugasan inisiatif.
policyAssignmentId adalah string dan bukan array. Properti ini menentukan dari mana penetapan hierarki sumber daya induk atau sumber daya individual dibebaskan.
ID definisi kebijakan
policyAssignmentId Jika adalah untuk penetapan inisiatif, policyDefinitionReferenceId properti mungkin digunakan untuk menentukan definisi kebijakan mana dalam inisiatif sumber daya subjek yang memiliki pengecualian. Karena sumber daya mungkin 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:
- Dikecualikan: Pembebasan diberikan karena tujuan kebijakan dipenuhi melalui metode lain.
- Pengabaian: Pembebasan diberikan karena kondisi ketidakpatuhan sumber daya tersebut diterima sementara. Alasan lain untuk menggunakan kategori ini adalah untuk mengecualikan hierarki sumber daya atau sumber daya dari satu atau beberapa definisi dalam inisiatif, tetapi tidak boleh dikecualikan dari seluruh inisiatif.
kedaluwarsa
Untuk mengatur kapan hierarki sumber daya atau sumber daya individual tidak lagi dikecualikan ke penugasan, atur properti expiresOn. Properti opsional ini harus dalam format TanggalWaktu ISO 8601 Universal yyyy-MM-ddTHH:mm:ss.fffffffZ.
Catatan
Pengecualian kebijakan tidak dihapuskan ketika tanggal (expiresOn) tercapai. Objek dipertahankan untuk pencatatan, tetapi pembebasan tidak lagi dipatuhi.
Pemilih sumber daya
Pengecualian mendukung properti resourceSelectors opsional yang berfungsi sama dalam pengecualian maupun dalam penugasan. Properti ini memungkinkan peluncuran atau pembatalan bertahap pengecualian kepada subset tertentu dari sumber daya secara terkontrol berdasarkan jenis, lokasi sumber daya, atau apakah sumber daya tersebut memiliki lokasi. Detail selengkapnya tentang cara menggunakan pemilih sumber daya dapat ditemukan dalam struktur penugasan. JSON berikut adalah contoh pengecualian yang menggunakan selektor sumber daya. Dalam contoh ini, hanya sumber daya di yang dikecualikan westcentralus dari penetapan kebijakan:
{
"properties": {
"policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"resourceSelectors": [
{
"name": "TemporaryMitigation",
"selectors": [
{
"kind": "resourceLocation",
"in": [
"westcentralus"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Pemilih kinds sumber daya berikut didukung dalam objek pengecualian kebijakan:
- resourceLocation: Properti ini digunakan untuk memilih sumber daya berdasarkan lokasinya. Tidak dapat digunakan dalam pemilih sumber daya yang sama dengan resourceWithoutLocation.
- resourceType: Properti ini digunakan untuk memilih sumber daya berdasarkan jenisnya.
- resourceWithoutLocation: Properti ini digunakan untuk memilih sumber daya di tingkat langganan yang tidak memiliki lokasi. Saat ini hanya mendukung subscriptionLevelResources. Tidak dapat digunakan dalam pemilih sumber daya yang sama dengan resourceLocation.
- in: Daftar nilai yang diizinkan untuk jenis yang ditentukan. Tidak dapat digunakan dengan notIn. Dapat berisi hingga 50 nilai.
- notIn: Daftar nilai yang tidak diizinkan untuk jenis yang ditentukan. Tidak dapat digunakan dengan dalam. Dapat berisi hingga 50 nilai.
- userPrincipalId: daftar ID objek pengguna yang diizinkan dapat dikecualikan dalam permintaan. Ini dapat dikaitkan dengan pengguna individu, MSI, atau perwakilan layanan.
- groupPrincipalId: daftar ID grup keamanan yang diizinkan dapat dikecualikan dalam permintaan. Pemilih sumber daya dapat berisi beberapa pemilih. Agar berlaku untuk pemilih sumber daya, sumber daya harus memenuhi persyaratan yang ditentukan oleh semua pemilihnya. Selanjutnya, hingga 10 resourceSelector dapat ditentukan dalam satu penugasan. Sumber daya dalam cakupan dievaluasi ketika memenuhi salah satu pemilih sumber daya ini.
Pengecualian berbasis identitas
Anda dapat memanfaatkan jenis pemilih userPrincipalId dan groupPrincipalId dalam struktur pengecualian untuk memungkinkan perwakilan layanan, MSI, pengguna, atau grup keamanan tertentu untuk mengabaikan penegakan penetapan kebijakan.
Ambil contoh di mana Anda ingin menetapkan definisi Allowed virtual machine size SKUs kebijakan bawaan dalam langganan Anda untuk memastikan bahwa hanya VM keluarga A yang dapat disebarkan, dengan pengecualian grup dengan hak istimewa tinggi. Anda dapat menggunakan kondisi berbasis identitas untuk mengecualikan grup ini di organisasi Anda dari penegakan ini.
Ini adalah contoh pengecualian berbasis identitas:
"properties": {
"policyAssignmentId": "/subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/CostMgmt",
"resourceSelectors": [{
"name": "AllowedGroups",
"selectors": [{
"kind": "groupPrincipalId",
"in": [ "<HighPrivEngGroupId>" ]
},
]
}
],
"exemptionCategory": "Waiver",
"displayName": "Exempt high SKU VM",
"description": "Exempt high SKU VM for business need"
}
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. Validasi 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, permintaan pengecualian dapat dibuat untuk langganan di MG yang ada saat ini guna 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 diperlihatkan dalam contoh berikut:
{
"properties": {
"policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgName}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"assignmentScopeValidation": "DoNotValidate",
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/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 terjadi.
Izin yang diperlukan
Izin kontrol akses berbasis peran Azure (Azure RBAC) yang diperlukan untuk mengelola objek pengecualian Kebijakan ada di Microsoft.Authorization/policyExemptions grup operasi. 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 ekstra karena efek pemberian pengecualian. Selain memerlukan operasi Microsoft.Authorization/policyExemptions/write pada hierarki sumber daya atau sumber daya individual, pencipta pengecualian harus memiliki tindakan exempt/Action pada penugasan target.
Pembuatan dan manajemen pengecualian
Pengecualian direkomendasikan untuk skenario tertentu atau yang terikat waktu di mana hierarki sumber daya atau sumber daya masih harus dilacak dan dinilai, tetapi ada alasan khusus mengapa tidak harus dinilai untuk kepatuhan. Misalnya, jika sistem memiliki definisi Storage accounts should disable public network access bawaan (ID: b2982f36-99f2-4db5-8eff-283140c09693) yang diberikan 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 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 apa pun yang tidak memenuhi syarat untuk dikecualikan. Pada saat itu, sumber daya pengecualian yang kedaluwarsa juga dapat dihapus.
Subnegara kepatuhan
Ketika pengecualian berlaku untuk suatu sumber daya, negara kepatuhannya adalah Exempt. Subnegara kepatuhan menunjukkan bagaimana status kepatuhan sumber daya jika pengecualian dihapus. Substate kepatuhan hanya diisi untuk sumber daya yang dikecualikan. Sumber daya nonexempt memiliki substate kepatuhan kosong.
Substate kepatuhan merupakan bagian dari hasil kepatuhan Policy Insights. Ini bukan properti yang Anda konfigurasikan pada sumber pengecualian polis.
Untuk melihat substate kepatuhan di portal Azure:
- Buka Kepatuhan Kebijakan>, lalu pilih penugasan kebijakan.
- Pada laporan kepatuhan penugasan, pilih Edit kolom.
- Tambahkan substate Kepatuhan, atur kolom sesuai kebutuhan, lalu pilih Save.
Anda juga dapat memilih nilai Waiver atau Mitigated di kolom detail Kepatuhan untuk melihat substate kepatuhan di panel detail.
Untuk pelaporan secara organisasi, kueri properti di properties.stateDetails.complianceSubState Azure Resource Graph. Kueri berikut mencantumkan sumber daya yang dikecualikan dan substate kepatuhannya:
policyresources
| where type == "microsoft.policyinsights/policystates"
| extend complianceState = tostring(properties.complianceState)
| extend complianceSubState = tostring(properties.stateDetails.complianceSubState),
resourceId = tostring(properties.resourceId),
policyAssignmentId = tostring(properties.policyAssignmentId)
| where complianceState == "Exempt"
| project resourceId, policyAssignmentId, complianceState, complianceSubState
Langkah berikutnya
- Pelajari tentang kueri Azure Resource Graph tentang pengecualian.
- Pelajari tentang perbedaan antara pengecualian dan pembebasan.
- Tinjau jenis sumber daya Microsoft.Authorization policyExemptions.
- Pelajari cara mendapatkan data kepatuhan.
- Pelajari cara memulihkan sumber daya yang tidak sesuai syarat.