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.
Parameter membantu menyederhanakan manajemen kebijakan Anda dengan mengurangi jumlah definisi kebijakan. Pikirkan parameter seperti bidang pada formulir: name, , addresscity, state. Parameter ini selalu tetap sama tetapi nilainya berubah berdasarkan individu yang mengisi formulir. Parameter bekerja dengan cara yang sama saat membuat kebijakan. Dengan menyertakan parameter dalam definisi kebijakan, Anda dapat menggunakan kembali kebijakan tersebut untuk skenario yang berbeda menggunakan nilai yang berbeda.
Menambahkan atau menghapus parameter
Parameter mungkin ditambahkan ke definisi yang ada dan ditetapkan. Parameter baru harus menyertakan defaultValue properti . Properti ini mencegah penugasan kebijakan atau inisiatif yang ada secara tidak langsung dibuat tidak valid.
Parameter tidak dapat dihapus dari definisi kebijakan karena mungkin ada penugasan yang menetapkan nilai parameter, dan referensi tersebut akan menjadi rusak. Beberapa definisi kebijakan bawaan menghentikan parameter menggunakan metadata "deprecated": true, yang menyembunyikan parameter saat menetapkan definisi di portal Microsoft Azure. Meskipun metode ini tidak didukung untuk definisi kebijakan kustom, opsi lain adalah menduplikasi dan membuat definisi kebijakan kustom baru tanpa parameter .
Properti parameter
Parameter menggunakan properti berikut dalam definisi kebijakan:
name: Nama parameter Anda. Digunakan oleh fungsi penerapanparametersdalam aturan kebijakan. Untuk informasi selengkapnya, lihat menggunakan nilai parameter.type: Menentukan apakah parameternya adalahstring, ,array,object,booleaninteger,float, ataudateTime. (Di manadateTimeparameter harus dalam format ISO 8601yyyy-MM-ddTHH:mm:ss.fffffffZ.)metadata: Menentukan subproperti yang terutama digunakan oleh portal Microsoft Azure untuk menampilkan informasi yang mudah digunakan:-
description: Penjelasan tentang untuk 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 yang memperhatikan konteks. Untuk informasi selengkapnya, lihat strongType. -
assignPermissions: (Opsional) Atur sebagai true agar portal Microsoft Azure membuat penetapan peran selama penetapan kebijakan. Properti ini berguna jika Anda ingin menetapkan izin di luar cakupan penugasan. Ada satu penetapan peran per definisi peran dalam kebijakan (atau per definisi peran dalam semua kebijakan inisiatif). Nilai parameter harus sumber daya atau cakupan yang valid. -
deprecated: Bendera boolean untuk menunjukkan apakah parameter tidak digunakan lagi dalam definisi bawaan.
-
defaultValue: (Opsional) Atur nilai parameter dalam tugas jika tidak ada nilai yang diberikan. Diperlukan saat memperbarui definisi kebijakan yang ada yang ditetapkan. Untuk parameter jenis objek, nilai harus cocok dengan skema yang sesuai.allowedValues: Menyediakan array nilai yang dapat diterima oleh parameter saat penugasan (Opsional).- Sensitivitas kasus: Perbandingan nilai yang diizinkan peka huruf besar/kecil saat menetapkan kebijakan, yang berarti bahwa nilai parameter yang dipilih dalam tugas harus cocok dengan casing nilai dalam
allowedValuesarray dalam definisi. Namun, setelah nilai dipilih untuk penugasan, evaluasi perbandingan string mungkin tidak peka huruf besar/kecil tergantung pada kondisi yang digunakan. Misalnya, jika parameter menentukanDevsebagai nilai tag yang diizinkan dalam penugasan, dan nilai ini dibandingkan dengan string input menggunakan kondisi tersebutequals, maka Azure Policy nantinya akan mengevaluasi nilaidevtag sebagai kecocokan meskipun huruf kecil karenanotEqualstidak peka huruf besar/kecil. - Untuk parameter jenis objek, nilai harus cocok dengan skema yang sesuai.
- Sensitivitas kasus: Perbandingan nilai yang diizinkan peka huruf besar/kecil saat menetapkan kebijakan, yang berarti bahwa nilai parameter yang dipilih dalam tugas harus cocok dengan casing nilai dalam
schema: (Opsional) Menyediakan validasi input parameter selama penugasan menggunakan skema JSON yang ditentukan sendiri. Properti ini hanya didukung untuk parameter jenis objek dan mengikuti implementasi Json.NET Skema 2019-09. Anda dapat mempelajari selengkapnya tentang menggunakan skema di https://json-schema.org/ dan menguji skema draf di https://www.jsonschemavalidator.net/.
Parameter sampel
Contoh 1
Sebagai contoh, Anda dapat menentukan definisi kebijakan untuk membatasi lokasi tempat sumber daya dapat disebarkan. Parameter untuk definisi kebijakan tersebut dapat dan allowedLocations digunakan oleh setiap penugasan definisi kebijakan untuk membatasi nilai yang diterima. Penggunaan strongType memberikan pengalaman yang ditingkatkan saat menyelesaikan penugasan melalui portal:
"parameters": {
"allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [
"westus2"
],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
Contoh input untuk parameter jenis array ini (tanpa strongType) pada waktu penugasan mungkin .["westus", "eastus2"]
Contoh 2
Dalam skenario yang lebih canggih, Anda dapat menentukan kebijakan yang mengharuskan pod kluster Kubernetes untuk menggunakan label yang ditentukan. Parameter untuk definisi kebijakan tersebut dapat dan labelSelector digunakan oleh setiap penugasan definisi kebijakan untuk menentukan sumber daya Kubernetes yang dimaksud berdasarkan kunci label dan nilai:
"parameters": {
"labelSelector": {
"type": "object",
"metadata": {
"displayName": "Kubernetes label selector",
"description": "Label query to select Kubernetes resources for policy evaluation. An empty label selector matches all Kubernetes resources."
},
"defaultValue": {},
"schema": {
"description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all resources.",
"type": "object",
"properties": {
"matchLabels": {
"description": "matchLabels is a map of {key,value} pairs.",
"type": "object",
"additionalProperties": {
"type": "string"
},
"minProperties": 1
},
"matchExpressions": {
"description": "matchExpressions is a list of values, a key, and an operator.",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"description": "key is the label key that the selector applies to.",
"type": "string"
},
"operator": {
"description": "operator represents a key's relationship to a set of values.",
"type": "string",
"enum": [
"In",
"NotIn",
"Exists",
"DoesNotExist"
]
},
"values": {
"description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"key",
"operator"
],
"additionalProperties": false
},
"minItems": 1
}
},
"additionalProperties": false
}
},
}
Contoh input untuk parameter jenis objek ini pada waktu penugasan akan dalam format JSON, divalidasi oleh skema yang ditentukan, dan mungkin:
{
"matchLabels": {
"poolID": "abc123",
"nodeGroup": "Group1",
"region": "southcentralus"
},
"matchExpressions": [
{
"key": "name",
"operator": "In",
"values": [
"payroll",
"web"
]
},
{
"key": "environment",
"operator": "NotIn",
"values": [
"dev"
]
}
]
}
Menggunakan nilai parameter
Dalam aturan kebijakan, Anda mereferensikan parameter dengan sintaks fungsi berikut parameters :
{
"field": "location",
"in": "[parameters('allowedLocations')]"
}
Sampel ini mereferensikan allowedLocations parameter yang ditunjukkan dalam properti parameter.
strongType
metadata Dalam properti , Anda dapat menggunakan strongType untuk menyediakan daftar opsi multipilih dalam portal Microsoft Azure.
strongType dapat menjadi jenis sumber daya yang didukung atau nilai yang diizinkan. Untuk menentukan apakah jenis sumber daya valid untuk strongType, gunakan Get-AzResourceProvider. Format untuk jenis strongType adalah <Resource Provider>/<Resource Type>. Contohnya, Microsoft.Network/virtualNetworks/subnets.
Beberapa jenis sumber daya yang tidak dikembalikan oleh Get-AzResourceProvider didukung. Jenis-jenis tersebut adalah:
Microsoft.RecoveryServices/vaults/backupPolicies
Nilai yang diizinkan bukan jenis sumber daya untuk strongType adalah:
locationresourceTypesstorageSkusvmSKUsexistingResourceGroups
Langkah selanjutnya
- Untuk informasi selengkapnya tentang struktur definisi kebijakan, buka dasar- dasar, aturan kebijakan, dan alias.
- Untuk inisiatif, buka struktur definisi inisiatif.
- Tinjau contoh di Azure Policy samples.
- 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.