Struktur definisi inisiatif Azure Policy
Inisiatif memungkinkan Anda mengelompokkan beberapa definisi kebijakan terkait untuk menyederhanakan tugas dan manajemen karena Anda bekerja dengan grup sebagai satu item. Misalnya, Anda dapat mengelompokkan definisi kebijakan penandaan terkait ke dalam satu inisiatif. Daripada menetapkan setiap kebijakan satu per satu, Anda menerapkan inisiatif.
Anda menggunakan JSON untuk membuat definisi inisiatif kebijakan. Definisi inisiatif kebijakan berisi elemen untuk:
- nama tampilan
- deskripsi
- metadata
- version
- parameter
- definisi kebijakan
- grup kebijakan (properti ini adalah bagian dari fitur Kepatuhan Terhadap Peraturan (Pratinjau))
Contoh berikut ini menggambarkan cara membuat inisiatif untuk menangani dua tag: costCenter
dan productName
. Ini menggunakan dua kebijakan bawaan untuk menerapkan nilai tag default.
{
"properties": {
"displayName": "Billing Tags Policy",
"policyType": "Custom",
"description": "Specify cost Center tag and product name tag",
"version" : "1.0.0",
"metadata": {
"version": "1.0.0",
"category": "Tags"
},
"parameters": {
"costCenterValue": {
"type": "String",
"metadata": {
"description": "required value for Cost Center tag"
},
"defaultValue": "DefaultCostCenter"
},
"productNameValue": {
"type": "String",
"metadata": {
"description": "required value for product Name tag"
},
"defaultValue": "DefaultProduct"
}
},
"policyDefinitions": [{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"definitionVersion": "1.*.*"
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "costCenter"
},
"tagValue": {
"value": "[parameters('costCenterValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
"parameters": {
"tagName": {
"value": "productName"
},
"tagValue": {
"value": "[parameters('productNameValue')]"
}
}
}
]
}
}
Bawaan dan pola Azure Policy ada pada sampel Azure Policy.
Metadata
Properti metadata
opsional menyimpan informasi tentang definisi inisiatif 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.
Properti metadata umum
version
(string): Melacak detail tentang versi konten definisi inisiatif kebijakan. Untuk bawaan, versi metadata ini mengikuti properti versi bawaan. Disarankan untuk menggunakan properti versi melalui versi metadata ini.category
(string): Menentukan di bawah kategori mana di portal Azure definisi kebijakan ditampilkan.Catatan
Untuk inisiatif Kepatuhan Terhadap Peraturan,
category
harus Kepatuhan Terhadap Peraturan.preview
(boolean): Bendera benar atau salah jika definisi inisiatif kebijakan adalah pratinjau.deprecated
(boolean): Bendera benar atau salah jika definisi inisiatif kebijakan telah ditandai sebagai tidak digunakan lagi.
Versi (pratinjau)
Inisiatif kebijakan bawaan dapat menghosting beberapa versi dengan yang sama definitionID
. Jika tidak ada nomor versi yang ditentukan, semua pengalaman akan menampilkan versi terbaru definisi. Untuk melihat versi tertentu dari bawaan, versi tersebut harus ditentukan dalam API, SDK, atau UI. Untuk mereferensikan versi definisi tertentu dalam penugasan, lihat versi definisi dalam penugasan
Layanan Azure Policy menggunakan version
properti , preview
, dan deprecated
untuk menyampaikan status dan tingkat perubahan pada definisi atau inisiatif kebijakan bawaan. Format version
adalah: {Major}.{Minor}.{Patch}
. Ketika definisi kebijakan dalam status pratinjau, pratinjau akhiran ditambahkan ke version
properti dan diperlakukan sebagai boolean. Ketika definisi kebijakan tidak digunakan lagi, penghentian diambil sebagai boolean dalam metadata definisi menggunakan "deprecated": "true"
.
- Versi Utama (misalnya: 2.0.0): memperkenalkan perubahan yang melanggar seperti perubahan logika aturan utama, menghapus parameter, menambahkan efek penegakan secara default.
- Versi Minor (misalnya: 2.1.0): memperkenalkan perubahan seperti perubahan logika aturan kecil, menambahkan nilai parameter baru yang diizinkan, mengubah ke role definitionIds, menambahkan atau menghapus definisi dalam inisiatif.
- Versi Patch (misalnya: 2.1.4): memperkenalkan perubahan string atau metadata dan memecahkan skenario keamanan kaca (langka).
Inisiatif bawaan diberi versi, dan versi definisi kebijakan bawaan tertentu juga dapat dirujuk dalam inisiatif bawaan atau kustom. Untuk informasi selengkapnya, lihat definisi referensi dan versi.
Saat dalam pratinjau, saat membuat inisiatif melalui portal, Anda tidak akan dapat menentukan versi untuk referensi definisi kebijakan bawaan. Semua referensi kebijakan bawaan dalam inisiatif kustom yang dibuat melalui portal akan default ke versi terbaru definisi kebijakan.
Untuk informasi selengkapnya tentang 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.
Parameter
Parameter membantu menyederhanakan manajemen kebijakan Anda dengan mengurangi jumlah definisi kebijakan. Anggaplah parameter sebagai bidang pada formulir - name
, address
, city
, state
. Parameter ini selalu tetap sama, tetapi nilainya berubah berdasarkan individu yang mengisi formulir.
Parameter bekerja dengan cara yang sama ketika membangun inisiatif kebijakan. Dengan menyertakan parameter dalam definisi inisiatif kebijakan, Anda dapat menggunakan kembali parameter tersebut dalam kebijakan yang disertakan.
Catatan
Setelah inisiatif ditetapkan, parameter tingkat inisiatif tidak dapat diubah. Karena ini, rekomendasinya adalah mengatur defaultValue saat menentukan parameter.
Properti parameter
Parameter memiliki properti berikut yang digunakan dalam definisi inisiatif kebijakan:
name
: Nama parameter Anda. Digunakan oleh fungsi penyebaranparameters
dalam aturan kebijakan. Untuk informasi selengkapnya, lihat menggunakan nilai parameter.type
: Menentukan apakah parameter adalah string, array, object, boolean, integer, float, atau datetime.metadata
: Mendefinisikan subproperti yang terutama digunakan oleh portal Azure untuk menampilkan informasi yang mudah digunakan:description
: (Opsional) Penjelasan tentang apa parameter digunakan. Dapat digunakan untuk memberikan contoh nilai yang dapat diterima.displayName
: Nama yang mudah diingat yang ditampilkan di portal untuk parameter.strongType
: (Opsional) Digunakan saat menetapkan definisi kebijakan melalui portal. Menyediakan daftar sadar konteks. Untuk informasi selengkapnya, lihat strongType.
defaultValue
: (Opsional) Atur nilai parameter dalam tugas jika tidak ada nilai yang diberikan.allowedValues
: (Opsional) Menyediakan array nilai yang diterima parameter selama penugasan.
Sebagai contoh, Anda dapat menentukan definisi inisiatif kebijakan untuk membatasi lokasi sumber daya dalam berbagai definisi kebijakan yang disertakan. Parameter untuk definisi inisiatif kebijakan tersebut mungkin berupa allowedLocations. Parameter kemudian tersedia untuk setiap definisi kebijakan yang disertakan dan didefinisikan selama penugasan inisiatif kebijakan.
"parameters": {
"init_allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [ "westus2" ],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
Meneruskan nilai parameter ke definisi kebijakan
Anda menyatakan parameter inisiatif mana yang Anda berikan yang menyertakan definisi kebijakan dalam array policyDefinitions dari definisi inisiatif. Meskipun nama parameter dapat sama, menggunakan nama yang berbeda dalam inisiatif daripada dalam definisi kebijakan menyederhanakan keterbacaan kode.
Misalnya, parameter init_allowedLocations yang ditentukan sebelumnya dapat diteruskan ke beberapa definisi kebijakan yang disertakan dan parameternya, sql_locations dan vm_locations, seperti ini:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"parameters": {
"sql_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
"policyDefinitionReferenceId": "allowedLocationsVMs",
"parameters": {
"vm_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
}
]
Sampel ini mereferensikan parameter init_allowedLocations yang ditunjukkan dalam properti parameter.
strongType
Dalam properti metadata
, Anda dapat menggunakan strongType untuk menyediakan daftar opsi multipilih dalam portal Microsoft Azure. strongType dapat menjadi jenis sumber daya yang didukung atau nilai yang diperbolehkan. Untuk menentukan apakah jenis sumber daya valid untuk strongType, gunakan Get-AzResourceProvider.
Beberapa jenis sumber daya yang tidak dikembalikan oleh Get-AzResourceProvider didukung. Jenis sumber daya tersebut adalah:
Microsoft.RecoveryServices/vaults/backupPolicies
Nilai jenis non sumber daya yang diperbolehkan untuk strongType adalah:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Definisi kebijakan
Bagian policyDefinitions
dari definisi inisiatif adalah array tempat definisi kebijakan yang ada termasuk dalam inisiatif. Seperti disebutkan dalam Meneruskan nilai parameter ke definisi kebijakan, properti ini adalah tempat parameter inisiatif diteruskan ke definisi kebijakan.
Properti definisi kebijakan
Setiap elemen array yang mewakili definisi kebijakan memiliki properti berikut:
policyDefinitionId
(string): ID definisi kebijakan kustom atau bawaan untuk disertakan.policyDefinitionReferenceId
(string): Nama pendek untuk definisi kebijakan yang disertakan.parameters
: (Opsional) Pasangan nama/nilai untuk meneruskan parameter inisiatif ke definisi kebijakan yang disertakan sebagai properti dalam definisi kebijakan tersebut. Untuk informasi selengkapnya, lihat Parameter.definitionVersion
: (Opsional) Versi definisi bawaan yang akan dirujuk. Jika tidak ada yang ditentukan, itu mengacu pada versi utama terbaru pada waktu penugasan dan mengotomatiskan pembaruan kecil apa pun. Untuk informasi selengkapnya, lihat versi definisigroupNames
(array string): (Opsional) Grup yang beranggotakan definisi kebijakan. Untuk informasi selengkapnya, lihat Grup kebijakan.
Berikut adalah contoh policyDefinitions
yang memiliki dua definisi kebijakan yang disertakan yang masing-masing meneruskan parameter inisiatif yang sama:
"policyDefinitions": [
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/0ec8fc28-d5b7-4603-8fec-39044f00a92b",
"policyDefinitionReferenceId": "allowedLocationsSQL",
"definitionVersion": "1.2.*"
"parameters": {
"sql_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
},
{
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/aa09bd0f-aa5f-4343-b6ab-a33a6a6304f3",
"policyDefinitionReferenceId": "allowedLocationsVMs",
"parameters": {
"vm_locations": {
"value": "[parameters('init_allowedLocations')]"
}
}
}
]
Grup definisi kebijakan
Definisi kebijakan dalam definisi inisiatif dapat dikelompokkan dan dikategorikan. Fitur Kepatuhan Terhadap Peraturan (pratinjau) Azure Policy menggunakan properti ini untuk mengelompokkan definisi ke dalam domain kontrol dan kepatuhan. Informasi ini didefinisikan dalam properti policyDefinitionGroups
array. Detail pengelompokan tambahan dapat ditemukan di objek policyMetadata yang dibuat oleh Microsoft. Untuk mendapatkan informasi, lihat objek metadata.
Parameter grup definisi kebijakan
Setiap elemen array di policyDefinitionGroups
harus memiliki kedua properti berikut:
name
(karakter) [wajib]: Nama pendek untuk grup. Dalam Kepatuhan Terhadap Peraturan, kontrol. Nilai properti ini digunakan olehgroupNames
dalampolicyDefinitions
.category
(string): Hierarki yang dimiliki grup. Dalam Kepatuhan Terhadap Peraturan, domain kepatuhan kontrol.displayName
(string): Nama yang mudah diingat untuk grup atau kontrol. Digunakan oleh portal.description
(string): Deskripsi tentang apa yang dicakup grup atau kontrol.additionalMetadataId
(string): Lokasi objek policyMetadata yang memiliki detail tambahan tentang domain kontrol dan kepatuhan.Catatan
Pelanggan dapat menunjuk ke objek PolicyMetadata yang ada. Namun, objek ini berupa baca-saja dan hanya dibuat oleh Microsoft.
Contoh properti policyDefinitionGroups
dari definisi inisiatif bawaan NIST terlihat seperti ini:
"policyDefinitionGroups": [
{
"name": "NIST_SP_800-53_R4_AC-1",
"additionalMetadataId": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1"
}
]
Objek metadata
Bawaan Kepatuhan Terhadap Peraturan yang dibuat oleh Microsoft memiliki informasi tambahan tentang setiap kontrol. Informasi ini adalah:
- Ditampilkan di portal Microsoft Azure pada gambaran umum kontrol pada inisiatif Kepatuhan Terhadap Peraturan.
- Tersedia melalui REST API. Lihat penyedia
Microsoft.PolicyInsights
sumber daya dan grup operasi PolicyMetadata. - Tersedia melalui Azure CLI. Lihat perintah metadata kebijakan az.
Penting
Objek metadata untuk Kepatuhan Terhadap Peraturan bersifat baca-saja dan tidak dapat dibuat oleh pelanggan.
Metadata untuk pengelompokan kebijakan memiliki informasi berikut dalam node properties
:
metadataId
: ID Kontrol yang berkaitan dengan pengelompokan.category
(diperlukan): Domain kepatuhan tempat kontrol berada.title
(diperlukan): Nama yang mudah diingat dari ID Kontrol.owner
(diperlukan): Mengidentifikasi siapa yang memiliki tanggung jawab untuk kontrol di Azure: Pelanggan, Microsoft, Bersama.description
: Informasi tambahan tentang kontrol.requirements
: Rincian tentang tanggung jawab pelaksanaan kontrol.additionalContentUrl
: Tautan ke informasi lebih lanjut tentang kontrol. Properti ini biasanya merupakan tautan ke bagian dokumentasi yang mencakup kontrol ini dalam standar kepatuhan.
Di bawah ini adalah contoh policyMetadata objek. Contoh metadata ini milik kontrol NIST SP 800-53 R4 AC-1.
{
"properties": {
"metadataId": "NIST SP 800-53 R4 AC-1",
"category": "Access Control",
"title": "Access Control Policy and Procedures",
"owner": "Shared",
"description": "**The organization:** \na. Develops, documents, and disseminates to [Assignment: organization-defined personnel or roles]: \n1. An access control policy that addresses purpose, scope, roles, responsibilities, management commitment, coordination among organizational entities, and compliance; and \n2. Procedures to facilitate the implementation of the access control policy and associated access controls; and \n
\nb. Reviews and updates the current: \n1. Access control policy [Assignment: organization-defined frequency]; and \n2. Access control procedures [Assignment: organization-defined frequency].",
"requirements": "**a.** The customer is responsible for developing, documenting, and disseminating access control policies and procedures. The customer access control policies and procedures address access to all customer-deployed resources and customer system access (e.g., access to customer-deployed virtual machines, access to customer-built applications). \n**b.** The customer is responsible for reviewing and updating access control policies and procedures in accordance with FedRAMP requirements.",
"additionalContentUrl": "https://nvd.nist.gov/800-53/Rev4/control/AC-1"
},
"id": "/providers/Microsoft.PolicyInsights/policyMetadata/NIST_SP_800-53_R4_AC-1",
"name": "NIST_SP_800-53_R4_AC-1",
"type": "Microsoft.PolicyInsights/policyMetadata"
}
Langkah berikutnya
- Lihat struktur definisi
- Tinjau sampel pada sampel Azure Policy.
- Tinjau Memahami efek kebijakan.
- Memahami cara membuat kebijakan secara terprogram.
- Pelajari cara mendapatkan data kepatuhan.
- Pelajari cara memulihkan sumber daya yang tidak sesuai syarat.
- Tinjau apa itu grup manajemen Atur sumber daya Anda dengan grup manajemen Azure.