Azure Policy-Ausnahmenstruktur
Die Funktion für Azure Policy-Ausnahmen wird verwendet, um eine Ressourcenhierarchie oder eine einzelne Ressource von der Bewertung von Initiativen oder Definitionen auszunehmen. Ressourcen, die ausgenommen sind, werden auf die allgemeine Konformität angerechnet, können aber nicht ausgewertet werden oder einen vorübergehenden Verzicht aufweisen. Weitere Informationen finden Sie in der Übersicht zu Anwendbarkeit in Azure Policy. Azure Policy-Ausnahmen funktionieren auch mit den folgenden Ressourcen-Manager-Modi: Microsoft.Kubernetes.Data
, Microsoft.KeyVault.Data
, und Microsoft.Network.Data
.
Sie verwenden JSON (JavaScript Object Notation), um eine Richtlinienausnahme zu erstellen. Die Richtlinienausnahme enthält Elemente für Folgendes:
- Anzeigename
- description
- metadata
- Richtlinienzuweisung
- Richtliniendefinitionen in einer Initiative
- Ausnahmekategorie
- expiration
- Ressourcenselektoren
- Prüfung des Zuweisungsbereichs
Eine Richtlinienausnahme wird als untergeordnetes Objekt in der Ressourcenhierarchie oder der einzelnen Ressource erstellt, für die die Ausnahme gewährt wird. Ausnahmen können nicht auf Komponentenebene des Ressourcenanbietermodus erstellt werden. Wenn die übergeordnete Ressource, für die die Ausnahme gilt, entfernt wird, wird auch die Ausnahme entfernt.
Der folgende JSON-Code zeigt ein Beispiel für eine Richtlinienausnahme in der Kategorie Verzicht bei einer Ressource für eine Initiativenzuweisung mit dem Namen resourceShouldBeCompliantInit
. Die Ressource ist nur von zwei der Richtliniendefinitionen in der Initiative ausgenommen, der benutzerdefinierten Richtliniendefinition customOrgPolicy
( policyDefinitionReferenceId
: requiredTags
) und der integrierten Richtliniendefinition Zulässige Standorte ( 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"
}
}
Anzeigename und Beschreibung
Mit displayName
und description
, geben Sie die Richtlinienausnahme und den Kontext für ihre Verwendung mit der spezifischen Ressource an. displayName
hat eine maximale Länge von 128 Zeichen und description
eine maximale Länge von 512 Zeichen.
Metadaten
Mit der Eigenschaft metadata
können Sie untergeordnete Eigenschaften erstellen, die zum Speichern relevanter Informationen benötigt werden. Im Beispiel enthalten die Eigenschaften requestedBy
, approvedBy
, approvedOn
und ticketRef
Kundenwerte mit Informationen dazu, wer die Ausnahme wann angefordert hat, sowie ein internes Nachverfolgungsticket für die Anforderung. Diese metadata
-Eigenschaften sind Beispiele, aber sie sind nicht erforderlich, und metadata
ist nicht auf diese untergeordneten Eigenschaften beschränkt.
Richtlinienzuweisungs-ID
Dieses Feld muss den vollständigen Pfadname einer Richtlinien- oder Initiativenzuweisung enthalten. policyAssignmentId
ist eine Zeichenfolge und kein Array. Diese Eigenschaft definiert, von welcher Zuweisung die übergeordnete Ressourcenhierarchie oder einzelne Ressource ausgenommen ist.
Richtliniendefinitions-IDs
Wenn sich policyAssignmentId
auf eine Initiativzuweisung bezieht, kann mit der policyDefinitionReferenceId
-Eigenschaft angegeben werden, für welche Richtliniendefinition in der Initiative eine Ausnahme für die Objektressource gilt. Da die Ressource von einer oder mehreren enthaltenen Richtliniendefinition ausgenommen sein könnte, ist diese Eigenschaft ein Array. Die Werte müssen den Werten in der Initiativendefinition in den policyDefinitions.policyDefinitionReferenceId
-Feldern entsprechen.
Ausnahmekategorie
Es gibt zwei Ausnahmekategorien, mit deren Hilfe Ausnahmen gruppiert werden können:
- Gemindert: Die Ausnahme wird gewährt, da die Absicht der Richtlinie durch eine andere Methode erfüllt wird.
- Verzicht: Die Ausnahme wird gewährt, da der Zustand der Nichtkonformität der Ressource vorübergehend akzeptiert wird. Ein weiterer Grund, diese Kategorie zu verwenden, ist das Ausschließen einer Ressource oder Ressourcenhierarchie von einer oder mehreren Definitionen in einer Initiative, aber nicht von der gesamten Initiative.
Ablauf
Mit der expiresOn
-Eigenschaft legen Sie fest, wann eine Ressourcenhierarchie oder eine einzelne Ressource nicht mehr von einer Zuweisung ausgenommen wird. Diese optionale Eigenschaft muss im Universal ISO 8601-DateTime-Format yyyy-MM-ddTHH:mm:ss.fffffffZ
angegeben werden.
Hinweis
Die Richtlinienausnahmen werden nicht gelöscht, wenn das durch expiresOn
definierte Datum erreicht wird. Das Objekt wird für Aufzeichnungszwecke beibehalten, aber die Ausnahme wird nicht mehr berücksichtigt.
Ressourcenselektoren
Ausnahmen unterstützen eine optionale resourceSelectors
-Eigenschaft, die in Ausnahmen wie bei Zuweisungen auf die gleiche Weise funktioniert. Die Eigenschaft ermöglicht ein schrittweises Rollout oder Rollback einer Ausnahme für bestimmte Teilmengen von Ressourcen auf kontrollierte Weise basierend auf Ressourcentyp, Ressourcenstandort oder ob die Ressource über einen Standort verfügt. Weitere Details zur Verwendung von Ressourcenselektoren finden Sie in der Zuweisungsstruktur. Der folgende JSON-Code ist eine Beispielausnahme, die Ressourcenselektoren verwendet. In diesem Beispiel werden nur Ressourcen in westcentralus
von der Richtlinienzuweisung ausgenommen:
{
"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"
}
In der Liste resourceLocation
des Beispiels können Bereiche hinzugefügt oder entfernt werden. Ressourcenselektoren ermöglichen eine größere Flexibilität, wo und wie Ausnahmen erstellt und verwaltet werden können.
Prüfung des Zuweisungsbereichs (Vorschau)
In den meisten Szenarien wird der Ausnahmebereich überprüft, um sicherzustellen, dass er sich im Bereich der Richtlinienzuweisung befindet. Mit der optionalen Eigenschaft assignmentScopeValidation
kann eine Ausnahme diese Überprüfung umgehen und außerhalb des Zuweisungsbereichs erstellt werden. Diese Überprüfung ist für Situationen vorgesehen, in denen ein Abonnement von einer Verwaltungsgruppe in eine andere verschoben werden muss, aber die Verschiebung würde aufgrund von Eigenschaften der Ressourcen innerhalb des Abonnements von der Richtlinie blockiert werden. In diesem Szenario könnte eine Ausnahme für das Abonnement in seiner aktuellen Verwaltungsgruppe erstellt werden, damit die Ressourcen von einer Richtlinienzuweisung für die Ziel-Verwaltungsgruppe ausgenommen werden können. Auf diese Weise wird der Vorgang, wenn das Abonnement in die Ziel-Verwaltungsgruppe verschoben wird, nicht blockiert, da Ressourcen bereits von der betreffenden Richtlinienzuweisung ausgenommen sind. Die Verwendung dieser Eigenschaft wird im folgenden Beispiel gezeigt:
{
"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"
}
Zulässige Werte für assignmentScopeValidation
sind Default
und DoNotValidate
. Ohne Angabe erfolgt der Standardüberprüfungsprozess.
Erforderliche Berechtigungen
Die Azure RBAC-Berechtigungen (rollenbasierte Zugriffssteuerung), die zum Verwalten von Richtlinienausnahmeobjekten erforderlich sind, befinden sich in der Vorgangsgruppe Microsoft.Authorization/policyExemptions
. Die integrierten Rollen Mitwirkender bei Ressourcenrichtlinien und Sicherheitsadministrator verfügen beide über die Berechtigungen read
und write
. Policy Insights-Datenschreiber (Vorschau) verfügt über die Berechtigung read
.
Das Gewähren von Ausnahmen hat weitreichende Auswirkungen, daher weisen Ausnahmen zusätzliche Sicherheitsmaßnahmen auf. Es ist nicht nur der Microsoft.Authorization/policyExemptions/write
-Vorgang für die Ressourcenhierarchie oder einzelne Ressource erforderlich, sondern der Ersteller der Ausnahme muss auch über das Verb exempt/Action
für die Zielzuweisung verfügen.
Erstellung und Verwaltung von Ausnahmen
Ausnahmen werden für zeitgebundene oder spezifische Szenarien empfohlen, in denen eine Ressource oder Ressourcenhierarchie weiterhin nachverfolgt und anderweitig ausgewertet werden sollte, wenn es aber einen bestimmten Grund gibt, warum sie nicht auf Konformität geprüft werden sollte. Wenn einer Umgebung beispielsweise die integrierte Definition Storage accounts should disable public network access
(ID: b2982f36-99f2-4db5-8eff-283140c09693
) zugewiesen wurde, wobei Effekt auf Überprüfung festgelegt ist. Bei der Konformitätsbewertung ist die Ressource StorageAcc1
nicht konform, jedoch muss StorageAcc1
für geschäftliche Zwecke über einen öffentlichen Netzwerkzugriff verfügen. In diesem Fall sollte eine Anforderung für die Erstellung einer Ausnahmeressource eingereicht werden, die auf StorageAcc1
ausgerichtet ist. Nachdem die Ausnahme erstellt wurde, wird StorageAcc1
in der Konformitätsüberprüfung als ausgenommen angezeigt.
Überprüfen Sie ihre Ausnahmen regelmäßig, um sicherzustellen, dass alle betreffenden Elemente angemessen ausgenommen sind, und entfernen Sie unverzüglich alle, für die Ausnahmen nicht gültig sind. Zu diesem Zeitpunkt können auch abgelaufene Ausnahmeressourcen gelöscht werden.
Nächste Schritte
- Erfahren Sie mehr über Azure Resource Graph-Abfragen für Ausnahmen.
- Informationen zum Unterschied zwischen Ausschlüssen und Ausnahmen.
- Überprüfen Sie den Ressourcentyp Microsoft.Authorization policyExemptions.
- Informieren Sie sich über das Abrufen von Konformitätsdaten.
- Erfahren Sie, wie Sie nicht konforme Ressourcen korrigieren können.