Struktura wykluczania usługi Azure Policy
Funkcja wykluczeń usługi Azure Policy służy do wykluczania hierarchii zasobów lub pojedynczego zasobu z oceny inicjatyw lub definicji. Zasoby, które są wykluczone, są uwzględniane w stosunku do ogólnej zgodności, ale nie można ich ocenić ani nie mają tymczasowego zwolnienia. Aby uzyskać więcej informacji, zobacz Omówienie stosowania w usłudze Azure Policy. Wykluczenia usługi Azure Policy działają również z następującymi trybami usługi Resource Manager: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
i Microsoft.Network.Data
.
Aby utworzyć wykluczenie z zasad, należy użyć języka JavaScript Object Notation (JSON). Wykluczenie z zasad zawiera następujące elementy:
- nazwa wyświetlana
- opis
- metadane
- przypisanie zasad
- definicje zasad w ramach inicjatywy
- kategoria wykluczenia
- wygaśnięcie
- selektory zasobów
- walidacja zakresu przypisania
Wykluczenie z zasad jest tworzone jako obiekt podrzędny w hierarchii zasobów lub pojedynczy zasób, któremu udzielono wykluczenia. Nie można utworzyć wykluczeń na poziomie składnika trybu dostawcy zasobów. Jeśli zasób nadrzędny, do którego zastosowano wykluczenie, zostanie usunięty, wykluczenie również zostanie usunięte.
Na przykład poniższy kod JSON przedstawia wykluczenie z zasad w kategorii zwolnienia zasobu do przypisania inicjatywy o nazwie resourceShouldBeCompliantInit
. Zasób jest wykluczony tylko z dwóch definicji zasad w inicjatywie, customOrgPolicy
niestandardowej definicji zasad ( policyDefinitionReferenceId
: requiredTags
) i dozwolone lokalizacje wbudowanej definicji zasad ( policyDefinitionReferenceId
: allowedLocations
):
{
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/resourceIsNotApplicable",
"apiVersion": "2020-07-01-preview",
"name": "resourceIsNotApplicable",
"type": "Microsoft.Authorization/policyExemptions",
"properties": {
"displayName": "This resource is scheduled for deletion",
"description": "This resources is planned to be deleted by end of quarter and has been granted a waiver to the policy.",
"metadata": {
"requestedBy": "Storage team",
"approvedBy": "IA",
"approvedOn": "2020-07-26T08:02:32.0000000Z",
"ticketRef": "4baf214c-8d54-4646-be3f-eb6ec7b9bc4f"
},
"policyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
"policyDefinitionReferenceId": [
"requiredTags",
"allowedLocations"
],
"exemptionCategory": "waiver",
"expiresOn": "2020-12-31T23:59:00.0000000Z",
"assignmentScopeValidation": "Default"
}
}
Nazwa wyświetlana i opis
Należy użyć displayName
polecenia i description
zidentyfikować wykluczenie z zasad i podać kontekst do użycia z określonym zasobem. displayName
ma maksymalną długość 128 znaków i description
maksymalną długość 512 znaków.
Metadane
Właściwość metadata
umożliwia utworzenie dowolnej właściwości podrzędnej wymaganej do przechowywania odpowiednich informacji. W tym przykładzie właściwości requestedBy
, approvedBy
, approvedOn
i ticketRef
zawierają wartości klientów w celu dostarczenia informacji o tym, kto zażądał wykluczenia, kto go zatwierdził i kiedy oraz wewnętrzny bilet śledzenia dla żądania. Te metadata
właściwości są przykładami, ale nie są wymagane i metadata
nie są ograniczone do tych właściwości podrzędnych.
Identyfikator przypisania zasad
To pole musi zawierać nazwę pełnej ścieżki przypisania zasad lub przypisania inicjatywy. Jest policyAssignmentId
to ciąg, a nie tablica. Ta właściwość określa, z którego przydziału jest wyłączona hierarchia zasobów nadrzędnych lub pojedynczy zasób.
Identyfikatory definicji zasad
Jeśli element policyAssignmentId
jest przeznaczony do przypisania inicjatywy, policyDefinitionReferenceId
właściwość może służyć do określenia definicji zasad w inicjatywie, do której zasobu podmiot ma wykluczenie. Ponieważ zasób może być wykluczony z co najmniej jednej dołączonej definicji zasad, ta właściwość jest tablicą. Wartości muszą być zgodne z wartościami w definicji inicjatywy w polach policyDefinitions.policyDefinitionReferenceId
.
Kategoria wykluczenia
Istnieją dwie kategorie wykluczenia i są one używane do grupowania wykluczeń:
- Złagodzone: wykluczenie zostało udzielone, ponieważ cel zasad został spełniony za pośrednictwem innej metody.
- Zwolnienie: Zwolnienie jest przyznawane, ponieważ stan braku zgodności zasobu jest tymczasowo akceptowany. Innym powodem użycia tej kategorii jest wykluczenie hierarchii zasobów lub zasobów z jednej lub kilku definicji w ramach inicjatywy, ale nie powinno być wykluczone z całej inicjatywy.
Wygaśnięcie
Aby ustawić, gdy hierarchia zasobów lub pojedynczy zasób nie jest już wykluczony z przypisania, ustaw expiresOn
właściwość . Ta opcjonalna właściwość musi być w formacie yyyy-MM-ddTHH:mm:ss.fffffffZ
Universal ISO 8601 DateTime .
Uwaga
Wykluczenia z zasad nie są usuwane po expiresOn
osiągnięciu daty. Obiekt jest zachowywany do przechowywania rekordów, ale wykluczenie nie jest już honorowane.
Selektory zasobów
Wykluczenia obsługują opcjonalną właściwość resourceSelectors
, która działa tak samo jak w przypadku wykluczeń, co w przypadku przypisań. Właściwość umożliwia stopniowe wdrażanie lub wycofywanie wykluczenia do niektórych podzestawów zasobów w kontrolowany sposób na podstawie typu zasobu, lokalizacji zasobu lub tego, czy zasób ma lokalizację. Więcej szczegółów na temat używania selektorów zasobów można znaleźć w strukturze przypisania. Poniższy kod JSON to przykładowe wykluczenie korzystające z selektorów zasobów. W tym przykładzie tylko zasoby w programie westcentralus
są wykluczone z przypisania zasad:
{
"properties": {
"policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"resourceSelectors": [
{
"name": "TemporaryMitigation",
"selectors": [
{
"kind": "resourceLocation",
"in": [
"westcentralus"
]
}
]
}
]
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Regiony można dodawać lub usuwać z resourceLocation
listy w przykładzie. Selektory zasobów umożliwiają większą elastyczność tworzenia i zarządzania wykluczeniami.
Walidacja zakresu przypisania (wersja zapoznawcza)
W większości scenariuszy zakres wykluczeń jest weryfikowany, aby upewnić się, że znajduje się on w zakresie przypisania zasad lub w nim. Właściwość opcjonalna assignmentScopeValidation
może zezwalać na pominięcie tej weryfikacji i utworzenie wykluczenia poza zakresem przypisania. Ta walidacja jest przeznaczona dla sytuacji, w których subskrypcja musi zostać przeniesiona z jednej grupy zarządzania (MG) do innej, ale przeniesienie zostanie zablokowane przez zasady ze względu na właściwości zasobów w ramach subskrypcji. W tym scenariuszu można utworzyć wykluczenie dla subskrypcji w bieżącej mg, aby wykluczyć jej zasoby z przypisania zasad w docelowej mg. W ten sposób, gdy subskrypcja zostanie przeniesiona do docelowej grupy zabezpieczeń, operacja nie zostanie zablokowana, ponieważ zasoby są już wykluczone z przypisania zasad. Użycie tej właściwości jest pokazane w poniższym przykładzie:
{
"properties": {
"policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgName}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceId": [
"limitSku",
"limitType"
],
"exemptionCategory": "Waiver",
"assignmentScopeValidation": "DoNotValidate",
},
"systemData": { ...
},
"id": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyExemptions/DemoExpensiveVM",
"type": "Microsoft.Authorization/policyExemptions",
"name": "DemoExpensiveVM"
}
Dozwolone wartości dla elementu assignmentScopeValidation
to Default
i DoNotValidate
. Jeśli nie zostanie określony, zostanie opisany domyślny proces weryfikacji.
Wymagane uprawnienia
Uprawnienia kontroli dostępu opartej na rolach (RBAC) platformy Azure wymagane do zarządzania obiektami wykluczania zasad znajdują się w Microsoft.Authorization/policyExemptions
grupie operacji. Wbudowane role Współautor zasad zasobów i Administrator zabezpieczeń mają read
uprawnienia i write
, a moduł zapisywania danych szczegółowych informacji o zasadach (wersja zapoznawcza) ma read
uprawnienie.
Wykluczenia mają dodatkowe środki bezpieczeństwa ze względu na skutki przyznania zwolnienia. Poza wymaganiem Microsoft.Authorization/policyExemptions/write
operacji w hierarchii zasobów lub pojedynczym zasobie twórca wykluczenia musi mieć exempt/Action
czasownik w przypisaniu docelowym.
Tworzenie wykluczeń i zarządzanie nimi
Wyjątki są zalecane w przypadku scenariuszy związanych z czasem lub określonych scenariuszy, w których hierarchia zasobów lub zasobów powinna być nadal śledzona i w przeciwnym razie będzie oceniana, ale nie powinno być oceniane pod kątem zgodności. Jeśli na przykład środowisko ma wbudowaną definicję Storage accounts should disable public network access
(ID: b2982f36-99f2-4db5-8eff-283140c09693
) przypisaną z ustawieniem efektu do inspekcji. Po ocenie zgodności zasób StorageAcc1
jest niezgodny, ale StorageAcc1
musi mieć dostęp do sieci publicznej w celach biznesowych. W tym czasie należy przesłać żądanie, aby utworzyć zasób wykluczania przeznaczony dla StorageAcc1
elementu . Po utworzeniu StorageAcc1
wykluczenia zostanie wyświetlone jako wykluczone w przeglądzie zgodności.
Regularnie ponownie sprawdzaj wykluczenia, aby upewnić się, że wszystkie kwalifikujące się elementy są odpowiednio wykluczone i natychmiast usuń wszystkie elementy, które nie kwalifikują się do wykluczenia. W tym czasie można również usunąć wygasłe zasoby wykluczania.
Następne kroki
- Dowiedz się więcej o zapytaniach usługi Azure Resource Graph dotyczących wykluczeń.
- Dowiedz się więcej o różnicy między wykluczeniami i wykluczeniami.
- Przejrzyj typ zasobu Microsoft.Authorization PolicyExemptions.
- Dowiedz się, jak uzyskać dane zgodności.
- Dowiedz się, jak korygować niezgodne zasoby.