Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Parametry ułatwiają zarządzanie zasadami przez zredukowanie liczby definicji zasad. Pomyśl o parametrach, takich jak pola w formularzu: name
, , address
city
, state
. Te parametry zawsze pozostają takie same, ale ich wartości zmieniają się na podstawie poszczególnych wypełniania formularza. Parametry działają w taki sam sposób, kiedy tworzysz zasady. Uwzględniając parametry w definicji zasad, można ponownie użyć tych samych zasad w różnych scenariuszach, stosując inne wartości.
Dodawanie lub usuwanie parametrów
Parametry można dodać do istniejącej i przypisanej definicji. Nowy parametr musi zawierać defaultValue
właściwość . Ta właściwość uniemożliwia pośrednie nieprawidłowe przypisanie istniejących przypisań zasad lub inicjatywy.
Nie można usunąć parametrów z definicji zasad, ponieważ może istnieć przypisanie, które ustawia wartość parametru, a odwołanie zostanie przerwane. Niektóre wbudowane definicje zasad przestarzałe parametry przy użyciu metadanych "deprecated": true
, które ukrywa parametr podczas przypisywania definicji w witrynie Azure Portal. Chociaż ta metoda nie jest obsługiwana w przypadku niestandardowych definicji zasad, inną opcją jest zduplikowanie i utworzenie nowej niestandardowej definicji zasad bez parametru .
Właściwości parametru
Parametr używa następujących właściwości w definicji zasad:
-
name
: nazwa parametru. Używane przezparameters
funkcję wdrażania w regule zasad. Aby uzyskać więcej informacji, zobacz używanie wartości parametru. -
type
: określa, czy parametr mastring
wartość , ,array
,object
boolean
,integer
,float
lubdateTime
. -
metadata
: Definiuje właściwości podrzędne używane głównie przez witrynę Azure Portal do wyświetlania przyjaznych dla użytkownika informacji:-
description
: wyjaśnienie, dla którego parametru jest używany. Może służyć do podawania przykładów dopuszczalnych wartości. -
displayName
: przyjazna nazwa wyświetlana w portalu dla parametru . -
strongType
: (Opcjonalnie) Używane podczas przypisywania definicji zasad za pośrednictwem portalu. Udostępnia listę z rozpoznawaniem kontekstu. Aby uzyskać więcej informacji, zobacz strongType. -
assignPermissions
: (Opcjonalnie) Ustaw wartość true , aby witryna Azure Portal utworzyła przypisania ról podczas przypisywania zasad. Ta właściwość jest przydatna w przypadku, gdy chcesz przypisać uprawnienia poza zakresem przypisania. W zasadach istnieje jedno przypisanie roli na definicję roli (lub definicję roli we wszystkich zasadach inicjatywy). Wartość parametru musi być prawidłowym zasobem lub zakresem. -
deprecated
: flaga logiczna wskazująca, czy parametr jest przestarzały w wbudowanej definicji.
-
-
defaultValue
: (Opcjonalnie) Ustawia wartość parametru w przypisaniu, jeśli żadna wartość nie jest podana. Wymagane podczas aktualizowania przypisanej istniejącej definicji zasad. W przypadku parametrów typu obiektu wartość musi być zgodna z odpowiednim schematem. -
allowedValues
: (Opcjonalnie) Udostępnia tablicę wartości akceptowanych przez parametr podczas przypisywania.- Ważność wielkości liter: dozwolone porównania wartości są uwzględniane w przypadku przypisywania zasad, co oznacza, że wybrane wartości parametrów w przypisaniu muszą być zgodne z wielkością liter w
allowedValues
tablicy w definicji. Jednak po wybraniu wartości dla przypisania ocena porównań ciągów może być bez uwzględniania wielkości liter w zależności od użytego warunku . Jeśli na przykład parametr określaDev
jako dozwoloną wartość tagu w przypisaniu, a ta wartość jest porównywana z ciągiem wejściowym przy użyciuequals
warunku, usługa Azure Policy później oceni wartośćdev
tagu jako dopasowanie, mimo że jest to małe litery, ponieważnotEquals
jest bez uwzględniania wielkości liter. - W przypadku parametrów typu obiektu wartości muszą być zgodne z odpowiednim schematem.
- Ważność wielkości liter: dozwolone porównania wartości są uwzględniane w przypadku przypisywania zasad, co oznacza, że wybrane wartości parametrów w przypisaniu muszą być zgodne z wielkością liter w
-
schema
: (Opcjonalnie) Zapewnia walidację danych wejściowych parametrów podczas przypisywania przy użyciu schematu JSON zdefiniowanego samodzielnie. Ta właściwość jest obsługiwana tylko dla parametrów typu obiektu i jest zgodna z implementacją schematu Json.NET 2019-09. Aby dowiedzieć się więcej na temat używania schematów, zobacz https://json-schema.org/ i przetestuj schematy robocze pod adresem https://www.jsonschemavalidator.net/.
Przykładowe parametry
Przykład 1
Na przykład można zdefiniować definicję zasad, aby ograniczyć lokalizacje, w których można wdrożyć zasoby. Parametr dla tej definicji zasad może być allowedLocations
używany przez każde przypisanie definicji zasad w celu ograniczenia akceptowanych wartości. Korzystanie z strongType
funkcji zapewnia ulepszone środowisko podczas kończenia przypisywania za pośrednictwem portalu:
"parameters": {
"allowedLocations": {
"type": "array",
"metadata": {
"description": "The list of allowed locations for resources.",
"displayName": "Allowed locations",
"strongType": "location"
},
"defaultValue": [
"westus2"
],
"allowedValues": [
"eastus2",
"westus2",
"westus"
]
}
}
Przykładowe dane wejściowe dla tego parametru typu tablicy (bez strongType
) w czasie przypisania mogą mieć wartość ["westus", "eastus2"]
.
Przykład 2
W bardziej zaawansowanym scenariuszu można zdefiniować zasady, które wymagają zasobników klastra Kubernetes do używania określonych etykiet. Parametr dla tej definicji zasad może być labelSelector
używany przez każde przypisanie definicji zasad w celu określenia zasobów Kubernetes, których dotyczy pytanie na podstawie kluczy etykiet i wartości:
"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
}
},
}
Przykładowe dane wejściowe dla tego parametru typu obiektu w czasie przypisania będą w formacie JSON, zweryfikowane przez określony schemat i mogą być następujące:
{
"matchLabels": {
"poolID": "abc123",
"nodeGroup": "Group1",
"region": "southcentralus"
},
"matchExpressions": [
{
"key": "name",
"operator": "In",
"values": [
"payroll",
"web"
]
},
{
"key": "environment",
"operator": "NotIn",
"values": [
"dev"
]
}
]
}
Używanie wartości parametru
W regule zasad odwołujesz się do parametrów z następującą parameters
składnią funkcji:
{
"field": "location",
"in": "[parameters('allowedLocations')]"
}
Ten przykład odwołuje się do parametru allowedLocations
pokazanego we właściwościach parametru.
strongType
W ramach metadata
właściwości można strongType
podać listę opcji wielokrotnego wyboru w witrynie Azure Portal.
strongType
może być obsługiwanym typem zasobu lub dozwoloną wartością. Aby określić, czy typ zasobu jest prawidłowy dla strongType
elementu , użyj polecenia Get-AzResourceProvider. Format typustrongType
zasobu to <Resource Provider>/<Resource Type>
. Na przykład Microsoft.Network/virtualNetworks/subnets
.
Obsługiwane są niektóre typy zasobów, które nie są zwracane przez Get-AzResourceProvider
program . Są to następujące typy:
Microsoft.RecoveryServices/vaults/backupPolicies
Niedozwolone wartości strongType
typu zasobu to:
location
resourceTypes
storageSkus
vmSKUs
existingResourceGroups
Następne kroki
- Aby uzyskać więcej informacji na temat struktury definicji zasad, przejdź do podstaw, reguły zasad i aliasu.
- W przypadku inicjatyw przejdź do struktury definicji inicjatywy.
- Zapoznaj się z przykładami w przykładach usługi Azure Policy.
- Przejrzyj wyjaśnienie działania zasad.
- Dowiedz się, jak programowo tworzyć zasady.
- Dowiedz się, jak uzyskać dane zgodności.
- Dowiedz się, jak korygować niezgodne zasoby.
- Sprawdź, co to jest grupa zarządzania za pomocą funkcji Organizowanie zasobów przy użyciu grup zarządzania platformy Azure.