Struktura výjimek pro Azure Policy
Funkce výjimek ze služby Azure Policy se používá k vyloučení hierarchie prostředků nebo jednotlivých prostředků z vyhodnocení iniciativ nebo definic. Prostředky, které jsou vyloučené, se započítávají do celkového dodržování předpisů, ale nemůžou být vyhodnoceny nebo mají dočasné zrušení. Další informace najdete v tématu Vysvětlení použitelnosti ve službě Azure Policy. Výjimky ze služby Azure Policy také fungují s následujícími režimy Resource Manageru: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
a Microsoft.Network.Data
.
K vytvoření výjimky ze zásad použijte JSON (JavaScript Object Notation). Výjimka ze zásad obsahuje elementy pro:
- zobrazovaný název
- popis
- metadata
- přiřazení zásad
- definice zásad v rámci iniciativy
- kategorie výjimky
- vypršení
- selektory prostředků
- Ověření oboru přiřazení
Výjimka ze zásad se vytvoří jako podřízený objekt v hierarchii prostředků nebo jako jednotlivý prostředek, kterému byla udělena výjimka. Výjimky nelze vytvořit na úrovni komponenty režimu poskytovatele prostředků. Pokud se odebere nadřazený prostředek, na který se výjimka vztahuje, odebere se i samotná výjimka.
Například následující JSON ukazuje výjimku ze zásad v kategorii prominutí prostředku k přiřazení iniciativy s názvem resourceShouldBeCompliantInit
. Prostředek je vyloučen pouze ze dvou definic zásad v iniciativě, customOrgPolicy
vlastní definice zásad ( : requiredTags
policyDefinitionReferenceId
) a povolená umístění integrovaná v definici zásady ( 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"
}
}
Zobrazovaný název a popis
Použijete displayName
a description
identifikujete výjimku ze zásady a poskytnete kontext pro její použití s konkrétním prostředkem. displayName
má maximální délku 128 znaků a description
maximální délku 512 znaků.
Metadata
Tato metadata
vlastnost umožňuje vytvořit libovolnou podřízenou vlastnost potřebnou k ukládání relevantních informací. V příkladu vlastnosti requestedBy
, approvedBy
, , approvedOn
a ticketRef
obsahuje hodnoty zákazníka, které poskytují informace o tom, kdo požádal o výjimku, kdo ji schválil a kdy, a interní sledovací lístek žádosti. Tyto metadata
vlastnosti jsou příklady, ale nejsou povinné a metadata
nejsou omezené na tyto podřízené vlastnosti.
ID přiřazení zásad
Toto pole musí obsahovat název úplné cesty k přiřazení zásad nebo iniciativy. Jedná se policyAssignmentId
o řetězec, nikoli pole. Tato vlastnost definuje, které přiřazení nadřazené hierarchie zdrojů nebo jednotlivého zdroje je vyloučeno.
ID definic zásad
Pokud se jedná policyAssignmentId
o přiřazení iniciativy, policyDefinitionReferenceId
může být vlastnost použita k určení definice zásady v iniciativě, na kterou má prostředek subjektu výjimku. Vzhledem k tomu, že prostředek může být vyloučen z jedné nebo více zahrnutých definic zásad, je tato vlastnost pole. Hodnoty musí odpovídat hodnotám v definici iniciativy v policyDefinitions.policyDefinitionReferenceId
polích.
Kategorie výjimky
Existují dvě kategorie výjimek, které se používají k seskupování výjimek:
- Zmírnění: Výjimka se udělila, protože záměr zásad se splnil prostřednictvím jiné metody.
- Výjimka: Výjimka je udělena, protože stav nedodržování předpisů prostředku je dočasně přijat. Dalším důvodem použití této kategorie je vyloučení prostředku nebo hierarchie prostředků z jedné nebo více definic v iniciativě, ale nemělo by být vyloučeno z celé iniciativy.
Vypršení platnosti
Chcete-li nastavit, když hierarchie zdrojů nebo jednotlivý zdroj již nejsou vyloučeny z přiřazení, nastavte expiresOn
vlastnost. Tato volitelná vlastnost musí být ve formátu yyyy-MM-ddTHH:mm:ss.fffffffZ
Universal ISO 8601 DateTime .
Poznámka:
Výjimky ze zásad se při dosažení data neodstraní expiresOn
. Objekt je zachován pro uchovávání záznamů, ale výjimka již není dodržena.
Selektory prostředků
Výjimky podporují volitelnou vlastnost resourceSelectors
, která funguje stejným způsobem jako v přiřazeních. Tato vlastnost umožňuje postupné zavedení nebo vrácení výjimky do určitých podmnožina prostředků řízeným způsobem na základě typu prostředku, umístění prostředku nebo toho, zda má prostředek umístění. Další podrobnosti o použití selektorů zdrojů najdete ve struktuře přiřazení. Následující JSON je ukázková výjimka, která používá selektory prostředků. V tomto příkladu jsou z přiřazení zásad vyloučeny pouze prostředky westcentralus
:
{
"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"
}
Oblasti je možné přidat nebo odebrat ze resourceLocation
seznamu v příkladu. Selektory prostředků umožňují větší flexibilitu místa a způsobu vytváření a správě výjimek.
Ověření oboru přiřazení (Preview)
Ve většině scénářů se obor výjimky ověří, aby se zajistilo, že je v oboru přiřazení zásad nebo pod ním. Volitelná assignmentScopeValidation
vlastnost může povolit výjimku, aby se toto ověření vynechala a vytvořila se mimo obor přiřazení. Toto ověření je určené pro situace, kdy je potřeba přesunout předplatné z jedné skupiny pro správu (MG) do jiné, ale přesunutí by bylo zablokováno zásadami kvůli vlastnostem prostředků v rámci předplatného. V tomto scénáři je možné vytvořit výjimku pro předplatné v jeho aktuálním mg, aby se jeho prostředky vyloučily z přiřazení zásad cílové mg. Když se tak předplatné přesune do cílové mg, operace není blokovaná, protože prostředky už jsou z přiřazení zásad vyloučené. Použití této vlastnosti je znázorněno v následujícím příkladu:
{
"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"
}
Povolené hodnoty pro assignmentScopeValidation
jsou Default
a DoNotValidate
. Pokud není zadaný, dojde k výchozímu procesu ověření.
Požadována oprávnění
Oprávnění řízení přístupu na základě role v Azure (Azure RBAC) potřebná ke správě objektů výjimek zásad jsou ve Microsoft.Authorization/policyExemptions
skupině operací. Předdefinované role Přispěvatel zásad prostředků a Správce zabezpečení mají read
oprávnění a write
má oprávnění i Modul pro zápis dat Policy Insights (Preview).read
Výjimky mají zvláštní bezpečnostní opatření z důvodu účinku udělení výjimky. Kromě toho, že vyžadujete Microsoft.Authorization/policyExemptions/write
operaci v hierarchii prostředků nebo v jednotlivých zdrojích, musí tvůrce výjimky obsahovat exempt/Action
příkaz pro cílové přiřazení.
Vytváření a správa výjimek
Výjimky se doporučují pro časově vázané nebo konkrétní scénáře, kdy by se stále měla sledovat hierarchie prostředků nebo prostředků a jinak by se vyhodnocovala, ale existuje konkrétní důvod, proč by se nemělo posoudit dodržování předpisů. Pokud má například prostředí předdefinované definice Storage accounts should disable public network access
(ID: b2982f36-99f2-4db5-8eff-283140c09693
) přiřazené s efektem nastaveným na audit. Při posouzení dodržování předpisů prostředek StorageAcc1
nedodržuje předpisy, ale StorageAcc1
musí mít přístup k veřejné síti pro obchodní účely. V té době by se měla odeslat žádost o vytvoření prostředku výjimky, který cílí StorageAcc1
. Po vytvoření StorageAcc1
výjimky se při kontrole dodržování předpisů zobrazí výjimka.
Pravidelně se k výjimce znovu navštěvujte, abyste měli jistotu, že jsou všechny způsobilé položky řádně vyloučené, a okamžitě odeberte všechny, které nemají nárok na výjimku. V té době je možné odstranit i prostředky výjimky s vypršenou platností.
Další kroky
- Seznamte se s dotazy azure Resource Graphu na výjimky.
- Seznamte se s rozdíly mezi vyloučeními a výjimkami.
- Zkontrolujte typ prostředku Microsoft.Authorization PolicyExemptions.
- Zjistěte, jak získat data dodržování předpisů.
- Zjistěte, jak napravit nevyhovující prostředky.