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:

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 resourceSelectorsopsional . 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