Podstawy struktury definicji usługi Azure Policy
Definicje usługi Azure Policy opisują warunki zgodności zasobów i efekt, jaki należy zastosować, jeśli warunek zostanie spełniony. Warunek porównuje pole lub wartość właściwości zasobu z wartością wymaganą. Dostęp do pól właściwości zasobu można uzyskać przy użyciu aliasów. Gdy pole właściwości zasobu jest tablicą, można użyć specjalnego aliasu tablicy, aby wybrać wartości ze wszystkich elementów członkowskich tablicy i zastosować warunek do każdego z nich. Dowiedz się więcej o warunkach.
Za pomocą przypisań zasad można kontrolować koszty i zarządzać zasobami. Można na przykład określić, że dozwolone są tylko niektóre typy maszyn wirtualnych. Możesz też wymagać, aby zasoby miały określony tag. Przypisania w zakresie mają zastosowanie do wszystkich zasobów w tym zakresie i poniżej. Jeśli przypisanie zasad jest stosowane do grupy zasobów, jest ono stosowane do wszystkich zasobów w tej grupie zasobów.
Kod JSON służy do tworzenia definicji zasad zawierającej elementy dla:
displayName
description
mode
version
metadata
parameters
policyRule
- oceny logiczne
effect
Na przykład poniższy kod JSON przedstawia zasady ograniczające miejsce wdrażania zasobów:
{
"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"
}
}
}
}
Aby uzyskać więcej informacji, przejdź do schematu definicji zasad. Wbudowane i wzorce usługi Azure Policy znajdują się w przykładach usługi Azure Policy.
Nazwa wyświetlana i opis
Używasz funkcji displayName
i description
do identyfikowania definicji zasad i podaj kontekst, dla którego jest używana definicja. Element displayName
ma maksymalną długość 128 znaków i description
maksymalną długość 512 znaków.
Uwaga
Podczas tworzenia lub aktualizowania definicji zasad, id
, type
i name
są definiowane przez właściwości zewnętrzne do formatu JSON i nie są niezbędne w pliku JSON. Pobieranie definicji zasad za pomocą zestawu SDK zwraca id
właściwości , type
i name
w ramach formatu JSON, ale każda z nich zawiera informacje tylko do odczytu związane z definicją zasad.
Typ zasad
policyType
Chociaż nie można ustawić właściwości, w portalu są zwracane trzy wartości, które są zwracane przez zestaw SDK i widoczne w portalu:
Builtin
: firma Microsoft udostępnia i utrzymuje te definicje zasad.Custom
: wszystkie definicje zasad utworzone przez klientów mają tę wartość.Static
: wskazuje definicję zasad zgodności z przepisami z własnością firmy Microsoft. Wyniki zgodności tych definicji zasad są wynikami inspekcji infrastruktury firmy Microsoft innych firm. W witrynie Azure Portal ta wartość jest czasami wyświetlana jako zarządzana przez firmę Microsoft. Aby uzyskać więcej informacji, zobacz Wspólna odpowiedzialność w chmurze.
Tryb
Właściwość mode
jest skonfigurowana w zależności od tego, czy zasady są przeznaczone dla właściwości usługi Azure Resource Manager lub właściwości dostawcy zasobów.
Tryby usługi Resource Manager
Określa mode
, które typy zasobów są oceniane dla definicji zasad. Obsługiwane tryby to:
all
: ocenianie grup zasobów, subskrypcji i wszystkich typów zasobówindexed
: ocenianie tylko typów zasobów obsługujących tagi i lokalizację
Na przykład zasób Microsoft.Network/routeTables
obsługuje tagi i lokalizację i jest oceniany w obu trybach. Nie można jednak oznaczyć zasobu Microsoft.Network/routeTables/routes
i nie jest oceniany w indexed
trybie.
W większości przypadków zalecamy ustawienie na mode
all
wartość . Wszystkie definicje zasad utworzone za pośrednictwem portalu używają all
trybu . Jeśli używasz programu PowerShell lub interfejsu wiersza polecenia platformy mode
Azure, możesz ręcznie określić parametr. Jeśli definicja zasad nie zawiera wartości, wartość domyślna mode
to w programie Azure PowerShell i w null
interfejsie wiersza polecenia platformy all
Azure. Tryb null
jest taki sam jak w indexed
przypadku obsługi zgodności z poprzednimi wersjami.
indexed
należy używać podczas tworzenia zasad wymuszających tagi lub lokalizacje. Chociaż nie jest to wymagane, uniemożliwia to zasobom, które nie obsługują tagów i lokalizacji, są wyświetlane jako niezgodne w wynikach zgodności. Wyjątkiem są grupy zasobów i subskrypcje. Definicje zasad, które wymuszają lokalizację lub tagi w grupie zasobów lub subskrypcji, powinny mieć ustawioną mode
all
Microsoft.Resources/subscriptions/resourceGroups
wartość i w szczególności określić typ lub .Microsoft.Resources/subscriptions
Przykład można znaleźć w temacie Pattern: Tags - Sample #1 (Wzorzec: tagi — przykład nr 1). Aby uzyskać listę zasobów, które obsługują tagi, zobacz Obsługa tagów dla zasobów platformy Azure.
Tryby dostawcy zasobów
Następujące tryby dostawcy zasobów są w pełni obsługiwane:
Microsoft.Kubernetes.Data
do zarządzania klastrami i składnikami kubernetes, takimi jak zasobniki, kontenery i ruch przychodzący. Obsługiwane w przypadku klastrów usługi Azure Kubernetes Service i klastrów Kubernetes z obsługą usługi Azure Arc. Definicje korzystające z tego trybu dostawcy zasobów używają efektów inspekcji, odmowy i wyłączenia.Microsoft.KeyVault.Data
do zarządzania magazynami i certyfikatami w usłudze Azure Key Vault. Aby uzyskać więcej informacji na temat tych definicji zasad, zobacz Integrowanie usługi Azure Key Vault z usługą Azure Policy.Microsoft.Network.Data
do zarządzania niestandardowymi zasadami członkostwa w usłudze Azure Virtual Network Manager przy użyciu usługi Azure Policy.
Następujące tryby dostawcy zasobów są obecnie obsługiwane jako wersja zapoznawcza:
Microsoft.ManagedHSM.Data
do zarządzania kluczami zarządzanego sprzętowego modułu zabezpieczeń (HSM) przy użyciu usługi Azure Policy.Microsoft.DataFactory.Data
w przypadku używania usługi Azure Policy do odmowy nazw domen ruchu wychodzącego usługi Azure Data Factory , które nie zostały określone na liście dozwolonych. Ten tryb dostawcy zasobów jest wymuszany tylko i nie zgłasza zgodności w publicznej wersji zapoznawczej.Microsoft.MachineLearningServices.v2.Data
do zarządzania wdrożeniami modeli usługi Azure Machine Learning . Ten tryb dostawcy zasobów zgłasza zgodność nowo utworzonych i zaktualizowanych składników. W publicznej wersji zapoznawczej rekordy zgodności pozostają przez 24 godziny. Wdrożenia modelu, które istnieją przed przypisaniem tych definicji zasad, nie zgłaszają zgodności.
Uwaga
Jeśli nie określono jawnie, tryby dostawcy zasobów obsługują tylko wbudowane definicje zasad, a wykluczenia nie są obsługiwane na poziomie składników.
Po wydaniu wersji usługi Azure Policy następujące tryby dostawcy zasobów nie będą obsługiwać wbudowanych wersji:
Microsoft.DataFactory.Data
Microsoft.MachineLearningServices.v2.Data
Microsoft.ManagedHSM.Data
Wersja (wersja zapoznawcza)
Wbudowane definicje zasad mogą hostować wiele wersji z tą samą definitionID
wersją . Jeśli nie określono numeru wersji, wszystkie środowiska będą wyświetlać najnowszą wersję definicji. Aby wyświetlić określoną wersję wbudowanej, należy ją określić w interfejsie API, zestawie SDK lub interfejsie użytkownika. Aby odwołać się do określonej wersji definicji w ramach przypisania, zobacz wersję definicji w ramach przypisania
Usługa Azure Policy używa version
właściwości , preview
i deprecated
do przekazywania stanu i poziomu zmiany do wbudowanej definicji lub inicjatywy zasad. Format to version
: {Major}.{Minor}.{Patch}
. Gdy definicja zasad jest w stanie podglądu, podgląd sufiksu jest dołączany do version
właściwości i traktowany jako wartość logiczna. Gdy definicja zasad jest przestarzała, wycofanie jest przechwytywane jako wartość logiczna w metadanych definicji przy użyciu polecenia "deprecated": "true"
.
- Wersja główna (przykład: 2.0.0): wprowadzanie zmian powodujących niezgodność, takich jak główne zmiany logiki reguł, usuwanie parametrów, dodawanie efektu wymuszania domyślnie.
- Wersja pomocnicza (przykład: 2.1.0): wprowadza zmiany, takie jak drobne zmiany logiki reguł, dodawanie nowych wartości dozwolonych parametrów, zmienianie wartości na
roleDefinitionIds
, dodawanie lub przenoszenie definicji w ramach inicjatywy. - Wersja poprawki (na przykład: 2.1.4): wprowadzenie zmian ciągu lub metadanych i scenariuszy zabezpieczeń szklenia (rzadko).
Aby uzyskać więcej informacji na temat wbudowanych wersji usługi Azure Policy, zobacz Wbudowane przechowywanie wersji. Aby dowiedzieć się więcej na temat tego, co oznacza, że zasady mają być przestarzałe lub w wersji zapoznawczej, zobacz Zasady w wersji zapoznawczej i przestarzałe.
Metadane
Opcjonalna metadata
właściwość przechowuje informacje o definicji zasad. Klienci mogą definiować dowolne właściwości i wartości przydatne dla swojej organizacji w programie metadata
. Istnieją jednak pewne typowe właściwości używane przez usługę Azure Policy i wbudowane. Każda metadata
właściwość ma limit 1024 znaków.
Typowe właściwości metadanych
version
(ciąg): śledzi szczegóły dotyczące wersji zawartości definicji zasad.category
(ciąg): określa, w której kategorii w witrynie Azure Portal jest wyświetlana definicja zasad.preview
(wartość logiczna): prawda lub fałsz flagi, jeśli definicja zasad jest w wersji zapoznawczej.deprecated
(wartość logiczna): prawda lub fałsz flagi, jeśli definicja zasad jest oznaczona jako przestarzała.portalReview
(ciąg): określa, czy parametry mają być przeglądane w portalu, niezależnie od wymaganych danych wejściowych.
Lokalizacja definicji
Podczas tworzenia inicjatywy lub zasad należy określić lokalizację definicji. Lokalizacja definicji musi być grupą zarządzania lub subskrypcją. Ta lokalizacja określa zakres, do którego można przypisać inicjatywę lub zasady. Zasoby muszą być bezpośrednimi elementami członkowskimi lub elementami podrzędnym w hierarchii lokalizacji definicji, która ma być docelowa dla przypisania.
Jeśli lokalizacja definicji to:
- Subskrypcja — do definicji zasad można przypisać tylko zasoby w ramach tej subskrypcji.
- Grupa zarządzania — do definicji zasad można przypisać tylko zasoby w podrzędnych grupach zarządzania i subskrypcjach podrzędnych. Jeśli planujesz zastosować definicję zasad do kilku subskrypcji, lokalizacja musi być grupą zarządzania zawierającą każdą subskrypcję.
Aby uzyskać więcej informacji, zobacz Omówienie zakresu w usłudze Azure Policy.
Następne kroki
- Aby uzyskać więcej informacji na temat struktury definicji zasad, przejdź do tematu parametry, reguła zasad i alias.
- 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.