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í platnosti
- 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 součásti 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/ExemptRG/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",
"policyDefinitionReferenceIds": [
"requiredTags",
"allowedLocations"
],
"exemptionCategory": "waiver",
"expiresOn": "2020-12-31T23:59:00.0000000Z",
"assignmentScopeValidation": "Default"
}
}
Zobrazovaný název a popis
Pomocí displayName a popisu identifikujete výjimku zásad a poskytnete kontext pro jeho použití s konkrétním prostředkem. displayName má maximální délku 128 znaků a popisuje maximální délku 512 znaků.
Metadata
Vlastnost metadat 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 obsahují hodnoty zákazníků, které poskytují informace o tom, kdo požádal o výjimku, kdo ji schválil a kdy, a interní sledovací lístek žádosti. Tyto vlastnosti metadat jsou příklady, ale nejsou povinné a metadata nejsou omezena 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.
policyAssignmentId
je ř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, může být vlastnost policyDefinitionReferenceIds použita k určení definic zásad 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, tato vlastnost je 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ěluje, protože záměr zásad je splněn jiným způsobem.
- 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 hierarchie prostředků nebo prostředků, která by měla být vyloučena z jedné nebo více definic v iniciativě, ale neměla by být vyloučena z celé iniciativy.
Vypršení platnosti
Chcete-li nastavit, když hierarchie prostředků nebo jednotlivý prostředek již není vyloučen z přiřazení, nastavte vlastnost expiresOn . 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
. Tato vlastnost funguje stejným způsobem jako výjimky v přiřazeních, což 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í zdroje nebo toho, jestli má zdroj umístění. Další podrobnosti o použití selektorů zdrojů najdete ve struktuře přiřazení. Tady je příklad kódu JSON výjimky, který používá selektory prostředků. V tomto příkladu budou z přiřazení zásad vyloučeny pouze prostředky westcentralus
:
{
"properties": {
"policyAssignmentId": "/subscriptions/{subId}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceIds": [
"limitSku", "limitType"
],
"exemptionCategory": "Waiver",
"resourceSelectors": [
{
"name": "TemporaryMitigation",
"selectors": [
{
"kind": "resourceLocation",
"in": [ "westcentralus" ]
}
]
}
]
},
"systemData": { ... },
"id": "/subscriptions/{subId}/resourceGroups/demoCluster/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í. To je určené pro situace, kdy je potřeba předplatné přesunout 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. Tímto způsobem se při přesunu předplatného do cílové mg operace neblokuje, protože prostředky už nejsou z daného přiřazení zásad vyloučené. Použití této vlastnosti je znázorněno níže:
{
"properties": {
"policyAssignmentId": "/providers/Microsoft.Management/managementGroups/{mgB}/providers/Microsoft.Authorization/policyAssignments/CostManagement",
"policyDefinitionReferenceIds": [
"limitSku", "limitType"
],
"exemptionCategory": "Waiver",
"assignmentScopeValidation": "DoNotValidate",
},
"systemData": { ... },
"id": "/subscriptions/{subIdA}/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í 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áva zabezpečení mají read
oprávnění i write
zásady Přehledy Data Writer (Preview).read
Kvůli dopadu udělení výjimky pro výjimky platí zvláštní bezpečnostní opatření. 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í na StorageAcc1. Po vytvoření výjimky se storageAcc1 zobrazí jako výjimka z kontroly dodržování předpisů.
Pravidelně se seznamte s výjimkami, abyste měli jistotu, že všechny způsobilé položky jsou řádně vyloučené a okamžitě neodstraní žádné nároky na výjimku. V té době je možné odstranit i prostředky výjimky, jejichž platnost vypršela.
Další kroky
- Využijte dotazy Azure Resource Graphu na výjimky.
- Seznamte se s rozdíly mezi vyloučeními a výjimkami.
- Prostudujte si 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.