Dasar-dasar struktur definisi Azure Policy

Definisi Azure Policy menjelaskan kondisi kepatuhan sumber daya dan efek yang harus diambil jika kondisi terpenuhi. Kondisi membandingkan bidang properti sumber daya atau nilai dengan nilai yang diperlukan. Bidang properti sumber daya diakses menggunakan alias. Saat bidang properti sumber daya adalah array, alias array khusus dapat digunakan untuk memilih nilai dari semua anggota array dan menerapkan kondisi ke masing-masing array. Pelajari selengkapnya tentang kondisi.

Dengan menggunakan penetapan kebijakan, Anda dapat mengontrol biaya dan mengelola sumber daya Anda. Misalnya, Anda dapat menentukan bahwa hanya jenis komputer virtual tertentu yang diizinkan. Atau, Anda dapat mengharuskan sumber daya untuk memiliki tag tertentu. Penugasan pada cakupan berlaku untuk semua sumber daya pada cakupan tersebut dan di bawah ini. Jika penetapan kebijakan diterapkan ke grup sumber daya, kebijakan tersebut berlaku untuk semua sumber daya dalam grup sumber daya tersebut.

Anda menggunakan JSON untuk membuat definisi kebijakan yang berisi elemen untuk:

  • displayName
  • description
  • mode
  • metadata
  • parameters
  • policyRule
    • evaluasi logis
    • effect

Misalnya, JSON berikut ini menampilkan kebijakan yang membatasi tempat sumber daya disebarkan:

{
  "properties": {
    "displayName": "Allowed locations",
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
    "mode": "Indexed",
    "metadata": {
      "version": "1.0.0",
      "category": "Locations"
    },
    "parameters": {
      "allowedLocations": {
        "type": "array",
        "metadata": {
          "description": "The list of locations that can be specified when deploying resources",
          "strongType": "location",
          "displayName": "Allowed locations"
        },
        "defaultValue": [
          "westus2"
        ]
      }
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "location",
          "in": "[parameters('allowedLocations')]"
        }
      },
      "then": {
        "effect": "deny"
      }
    }
  }
}

Untuk informasi selengkapnya, buka skema definisi kebijakan. Bawaan dan pola Azure Policy ada pada sampel Azure Policy.

Nama tampilan dan deskripsi

Anda menggunakan displayName dan description untuk mengidentifikasi definisi kebijakan dan memberikan konteks kapan definisi digunakan. displayName memiliki panjang maksimum 128 karakter dan description panjang maksimum 512 karakter.

Catatan

Selama pembuatan atau pembaruan definisi kebijakan, id, , typedan name didefinisikan oleh properti di luar JSON dan tidak diperlukan dalam file JSON. Mengambil definisi kebijakan melalui SDK mengembalikan idproperti , , typedan name sebagai bagian dari JSON, tetapi masing-masing merupakan informasi baca-saja yang terkait dengan definisi kebijakan.

Jenis kebijakan

policyType Meskipun properti tidak dapat diatur, ada tiga nilai yang dikembalikan oleh SDK dan terlihat di portal:

  • Builtin: Microsoft menyediakan dan mempertahankan definisi kebijakan ini.
  • Custom: Semua definisi kebijakan yang dibuat oleh pelanggan memiliki nilai ini.
  • Static: Menunjukkan definisi kebijakan Kepatuhan Terhadap Peraturan dengan Kepemilikan Microsoft. Hasil kepatuhan untuk definisi kebijakan ini adalah hasil audit non-Microsoft infrastruktur Microsoft. Di portal Azure, nilai ini terkadang ditampilkan sebagai dikelola Microsoft. Untuk informasi selengkapnya, lihat Tanggung jawab bersama di cloud.

Mode

dikonfigurasi mode tergantung pada apakah kebijakan menargetkan properti Azure Resource Manager atau properti Penyedia Sumber Daya.

Mode Resource Manager

mode menentukan jenis sumber daya mana yang dievaluasi untuk definisi kebijakan. Mode yang didukung adalah:

  • all: mengevaluasi grup sumber daya, langganan, dan semua jenis sumber daya
  • indexed: hanya mengevaluasi jenis sumber daya yang mendukung tag dan lokasi

Misalnya, sumber daya Microsoft.Network/routeTables mendukung tag dan lokasi dan dievaluasi di kedua mode. Namun, sumber daya Microsoft.Network/routeTables/routes tidak dapat diberi tag dan tidak dievaluasi dalam mode Indexed.

Kami menyarankan agar Anda mengatur mode ke all dalam banyak kasus. Semua definisi kebijakan yang dibuat melalui portal menggunakan mode all. Jika Anda menggunakan PowerShell atau Azure CLI, Anda dapat menentukan mode parameter secara manual. Jika definisi kebijakan tidak menyertakan mode nilai, definisi tersebut default ke all di Azure PowerShell dan ke null di Azure CLI. Mode null sama dengan menggunakan indexed untuk mendukung kompatibilitas mundur.

indexed harus digunakan saat membuat kebijakan yang memberlakukan tag atau lokasi. Meskipun tidak diperlukan, ini mencegah sumber daya yang tidak mendukung tag dan lokasi agar tidak muncul sebagai tidak mematuhi di hasil kepatuhan. Pengecualiannya adalah grup sumber daya dan langganan. Definisi kebijakan yang menerapkan lokasi atau tag pada grup sumber daya atau langganan harus diatur mode ke all dan secara khusus menargetkan Microsoft.Resources/subscriptions/resourceGroups jenis atau Microsoft.Resources/subscriptions . Misalnya, lihat Pola: Tag - Sampel #1. Untuk daftar sumber daya yang mendukung tag, lihat Dukungan tag untuk sumber daya Azure.

Mode Penyedia Sumber Daya

Mode Penyedia Sumber Daya berikut ini didukung penuh:

  • Microsoft.Kubernetes.Data untuk mengelola kluster dan komponen Kubernetes seperti pod, kontainer, dan ingress. Didukung untuk kluster Azure Kubernetes Service dan kluster Kubernetes dengan dukungan Azure Arc. Definisi yang menggunakan mode Penyedia Sumber Daya ini menggunakan audit efek, tolak, dan dinonaktifkan.
  • Microsoft.KeyVault.Data untuk mengelola vault dan sertifikat di Azure Key Vault. Untuk informasi selengkapnya tentang definisi kebijakan ini, lihat Mengintegrasikan Azure Key Vault dengan Azure Policy.
  • Microsoft.Network.Datauntuk mengelola kebijakan keanggotaan kustom Azure Virtual Network Manager menggunakan Azure Policy.

Mode Penyedia Sumber Daya berikut saat ini didukung sebagai pratinjau:

  • Microsoft.ManagedHSM.Data untuk mengelola kunci Modul Keamanan Perangkat Keras Terkelola (HSM) menggunakan Azure Policy.
  • Microsoft.DataFactory.Data untuk menggunakan Azure Policy untuk menolak nama domain lalu lintas keluar Azure Data Factory yang tidak ditentukan dalam daftar yang diizinkan. Mode Penyedia Sumber Daya ini hanya berlaku dan tidak melaporkan kepatuhan dalam pratinjau publik.
  • Microsoft.MachineLearningServices.v2.Datauntuk mengelola penyebaran model Azure Pembelajaran Mesin. Mode Penyedia Sumber Daya ini melaporkan kepatuhan untuk komponen yang baru dibuat dan diperbarui. Selama pratinjau publik, catatan kepatuhan tetap ada selama 24 jam. Penyebaran model yang ada sebelum definisi kebijakan ini ditetapkan tidak melaporkan kepatuhan.

Catatan

Kecuali dinyatakan secara eksplisit, mode Penyedia Sumber Daya hanya mendukung definisi kebijakan bawaan, dan pengecualian tidak didukung di tingkat komponen.

Metadata

Properti metadata opsional menyimpan informasi tentang definisi kebijakan. Pelanggan dapat menentukan properti dan nilai apa pun yang berguna bagi organisasi mereka di metadata. Namun, ada beberapa properti umum yang digunakan oleh Azure Policy dan bawaan. Setiap metadata properti memiliki batas 1.024 karakter.

Properti metadata umum

  • version (string): Melacak detail tentang versi konten definisi kebijakan.
  • category (string): Menentukan di bawah kategori mana di portal Azure definisi kebijakan ditampilkan.
  • preview (boolean): Bendera benar atau salah jika definisi kebijakan adalah pratinjau.
  • deprecated (boolean): Bendera benar atau salah jika definisi kebijakan ditandai sebagai tidak digunakan lagi.
  • portalReview (string): Menentukan apakah parameter harus ditinjau di portal, terlepas dari input yang diperlukan.

Catatan

Layanan Azure Policy menggunakan properti version, preview, dan deprecated untuk menyampaikan tingkat perubahan pada definisi kebijakan bawaan atau inisiatif dan status. Format version adalah: {Major}.{Minor}.{Patch}. Status-status tertentu seperti tidak digunakan lagi atau pratinjau, ditambahkan ke properti version atau di properti lain sebagai boolean. Untuk informasi selengkapnya tentang cara bawaan versi Azure Policy, lihat Penerapan versi bawaan. Untuk mempelajari lebih lanjut tentang apa artinya kebijakan tidak digunakan lagi atau di pratinjau, lihat Pratinjau dan kebijakan yang tidak digunakan lagi.

Lokasi definisi

Saat membuat inisiatif atau kebijakan, perlu untuk menentukan lokasi definisi. Lokasi definisi harus merupakan grup manajemen atau langganan. Lokasi ini menentukan cakupan yang dapat ditetapkan oleh inisiatif atau kebijakan. Sumber daya harus merupakan anggota langsung dari atau anak dalam hierarki lokasi definisi yang akan ditargetkan untuk penugasan.

Jika lokasi definisi adalah:

  • Langganan - Hanya sumber daya dalam langganan tersebut yang dapat ditetapkan definisi kebijakan.
  • Grup manajemen - Hanya sumber daya dalam grup manajemen anak dan langganan anak yang dapat ditetapkan definisi kebijakan. Jika Anda berencana menerapkan definisi kebijakan ke beberapa langganan, lokasi tersebut harus merupakan grup manajemen yang berisi setiap langganan.

Untuk informasi selengkapnya, lihat Memahami cakupan dalam Azure Policy.

Langkah berikutnya