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:

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 ( : requiredTagspolicyDefinitionReferenceId) 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.fffffffZUniversal 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 writezá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