Sdílet prostřednictvím


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.Dataa 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 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 ( : requiredTagspolicyDefinitionReferenceId) 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, , approvedOna 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.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 , 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