Tutorial: Mengelola tata kelola tag dengan Azure Policy

Tag bagian sangat penting dari mengatur sumber daya Azure Anda menjadi taksonomi. Saat mengikuti praktik terbaik untuk manajemen tag, tag dapat menjadi dasar untuk menerapkan kebijakan bisnis Anda dengan Azure Policy atau biaya pelacakan dengan Cost Management. Tidak peduli bagaimana atau mengapa Anda menggunakan tag, penting bagi Anda untuk dapat dengan cepat menambahkan, mengubah, dan menghapus tag tersebut di sumber daya Azure Anda. Untuk melihat apakah sumber daya Azure Anda mendukung pemberian tag, lihat Dukungan tag.

Efek Modifikasi Azure Policy dirancang untuk membantu tata kelola tag apa pun tahap tata kelola sumber daya yang Anda jalani. Modifikasi membantu ketika:

  • Anda baru menggunakan cloud dan tidak memiliki tata kelola tag
  • Sudah memiliki ribuan sumber daya tanpa tata kelola tag
  • Sudah memiliki taksonomi yang ada yang perlu Anda ubah

Dalam tutorial ini, Anda akan menyelesaikan tugas-tugas berikut:

  • Mengidentifikasi persyaratan bisnis
  • Memetakan setiap persyaratan ke definisi kebijakan
  • Mengelompokkan kebijakan tag ke dalam inisiatif

Prasyarat

Anda harus memiliki akun langganan Azure untuk menyelesaikan tutorial ini. Jika Anda tidak memilikinya, buat akun gratis sebelum Anda mulai.

Mengidentifikasi persyaratan

Seperti penerapan kontrol tata kelola yang baik, persyaratan harus berasal dari kebutuhan bisnis Anda dan dipahami dengan baik sebelum membuat kontrol teknis. Untuk tutorial skenario ini, item berikut adalah persyaratan bisnis kami:

  • Dua tag yang diperlukan pada semua sumber daya: CostCenter dan Env
  • CostCenter harus ada di semua kontainer dan sumber daya terpisah
    • Sumber daya mewarisi dari kontainer tempat mereka berada, tetapi mungkin ditimpa satu per satu
  • Env harus ada di semua kontainer dan sumber daya terpisah
    • Sumber daya menentukan lingkungan dengan skema penamaan kontainer dan mungkin tidak ditimpa
    • Semua sumber daya dalam kontainer adalah bagian dari lingkungan yang sama

Mengonfigurasi tag CostCenter

Dalam hal khusus untuk lingkungan Azure yang dikelola oleh Azure Policy, persyaratan tag CostCenter memanggil hasil berikut:

  • Menolak grup sumber daya yang tidak memiliki tag CostCenter
  • Momodifikasi sumber daya untuk menambahkan tag CostCenter dari grup sumber daya induk saat tidak ada

Menolak grup sumber daya yang tidak memiliki tag CostCenter

Karena CostCenter untuk grup sumber daya tidak dapat ditentukan oleh nama grup sumber daya, ini harus memiliki tag yang ditentukan pada permintaan untuk membuat grup sumber daya. Aturan kebijakan berikut dengan efek Tolak mencegah pembuatan atau pembaruan grup sumber daya yang tidak memiliki tag CostCenter:

"if": {
    "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "tags['CostCenter']",
            "exists": false
        }
    ]
},
"then": {
    "effect": "deny"
}

Catatan

Karena aturan kebijakan ini menargetkan grup sumber daya mode pada definisi kebijakan harus 'Semua' alih-alih 'Terindeks'.

Memodifikasi sumber daya untuk mewarisi tag CostCenter saat tidak ada

Kebutuhan CostCenter kedua adalah sumber daya apa pun untuk mewarisi tag dari grup sumber daya induk saat tidak ada. Jika tag sudah ditentukan pada sumber daya, bahkan jika berbeda dari grup sumber daya induk, tag harus dibiarkan saja. Aturan kebijakan berikut menggunakan Modifikasi:

"policyRule": {
    "if": {
        "field": "tags['CostCenter']",
        "exists": "false"
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "add",
                "field": "tags['CostCenter']",
                "value": "[resourcegroup().tags['CostCenter']]"
            }]
        }
    }
}

Aturan kebijakan ini menggunakan operasi tambah alih-alih addOrReplace karena kami tidak ingin mengubah nilai tag jika ada saat memulihkan sumber daya yang ada. Ini juga menggunakan fungsi templat [resourcegroup()] untuk mendapatkan nilai tag dari grup sumber daya induk.

Catatan

Karena aturan kebijakan ini menargetkan sumber daya yang mendukung tag, mode pada definisi kebijakan harus 'Diindeks'. Konfigurasi ini juga memastikan kebijakan ini melewati grup sumber daya.

Mengonfigurasi tag Env

Dalam hal khusus untuk lingkungan Azure yang dikelola oleh Azure Policy, persyaratan tag Env memanggil hasil berikut:

  • Memodifikasi tag Env pada grup sumber daya berdasarkan skema penamaan grup sumber daya
  • Memodifikasi tag Env pada semua sumber daya dalam grup sumber daya sama dengan grup sumber daya induk

Memodifikasi tag Env grup sumber daya berdasarkan nama

Kebijakan Modifikasi diperlukan untuk setiap lingkungan yang ada di lingkungan Azure Anda. Kebijakan Modifikasi untuk masing-masing terlihat seperti definisi kebijakan ini:

"policyRule": {
    "if": {
        "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "name",
            "like": "prd-*"
        },
        {
            "field": "tags['Env']",
            "notEquals": "Production"
        }

    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "Production"
            }]
        }
    }
}

Catatan

Karena aturan kebijakan ini menargetkan grup sumber daya mode pada definisi kebijakan harus 'Semua' alih-alih 'Terindeks'.

Kebijakan ini hanya cocok dengan grup sumber daya dengan skema penamaan sampel yang digunakan untuk sumber daya produksi prd-. Skema penamaan yang lebih kompleks dapat dicapai dengan beberapa kondisi pencocokan alih-alih yang tunggal seperti dalam contoh ini.

Memodifikasi sumber daya untuk mewarisi tag Env

Persyaratan bisnis memanggil semua sumber daya untuk memiliki tag Env yang dilakukan grup sumber daya induknya. Tag ini tidak dapat ditimpa, jadi kami akan menggunakan operasi addOrReplace dengan efek Modifikasi. Contoh kebijakan Modifikasi terlihat seperti aturan berikut:

"policyRule": {
    "if": {
        "anyOf": [{
            "field": "tags['Env']",
            "notEquals": "[resourcegroup().tags['Env']]"
        },
        {
            "field": "tags['Env']",
            "exists": false
        }
    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "[resourcegroup().tags['Env']]"
            }]
        }
    }
}

Catatan

Karena aturan kebijakan ini menargetkan sumber daya yang mendukung tag, mode pada definisi kebijakan harus 'Diindeks'. Konfigurasi ini juga memastikan kebijakan ini melewati grup sumber daya.

Aturan kebijakan ini mencari sumber daya apa pun yang tidak memiliki nilai grup sumber daya induknya untuk tag Env atau tidak memiliki tag Env. Sumber daya yang cocok memiliki tag Env yang diatur ke nilai grup sumber daya induk, bahkan jika tag sudah ada di sumber daya tetapi dengan nilai yang berbeda.

Menetapkan inisiatif dan memulihkan sumber daya

Setelah kebijakan tag di atas dibuat, gabungkan kebijakan tersebut ke dalam satu inisiatif untuk tata kelola tag dan tetapkan ke grup manajemen atau langganan. Inisiatif dan kebijakan yang disertakan kemudian mengevaluasi kepatuhan sumber daya yang ada dan mengubah permintaan sumber daya baru atau yang diperbarui yang sesuai dengan jika properti dalam aturan kebijakan. Namun, kebijakan ini tidak secara otomatis memperbarui sumber daya yang tidak sesuai dengan perubahan tag yang ditentukan.

Seperti kebijakan deployIfNotExists, kebijakan Modifikasi menggunakan tugas remediasi untuk mengubah sumber daya yang tidak patuh yang ada. Ikuti petunjuk tentang Cara memperbaiki sumber daya untuk mengidentifikasi sumber daya Modifikasi dan memperbaiki tag ke taksonomi yang ditentukan.

Membersihkan sumber daya

Jika Anda sudah selesai mengerjakan sumber daya dari tutorial ini, gunakan langkah berikut untuk menghapus salah satu penetapan atau definisi yang dibuat di atas:

  1. Pilih Definisi (atau Penetapan jika Anda mencoba menghapus penetapan) di bagian Penulisan di sisi kiri halaman Azure Policy.

  2. Cari inisiatif atau definisi kebijakan baru (atau penetapan) yang ingin dihapus.

  3. Klik kanan baris atau pilih elipsis di akhir definisi (atau penetapan), dan pilih Hapus definisi (atau Hapus penetapan).

Tinjau

Dalam tutorial ini, Anda akan mempelajari tugas-tugas berikut:

  • Mengidentifikasi persyaratan bisnis Anda
  • Memetakan setiap persyaratan ke definisi kebijakan
  • Mengelompokkan kebijakan tag ke dalam inisiatif

Langkah berikutnya

Untuk mempelajari lebih lanjut struktur definisi kebijakan, lihat artikel ini: