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-Richtlinienausnahmen funktionieren auch mit den folgenden: Resource Manager modes: 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/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"
}
}
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 hat 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 die policyAssignmentId
sich auf eine Initiativenzuweisung bezieht, kann mit der policyDefinitionReferenceIds-Eigenschaft angegeben werden, für welche Richtliniendefinitionen in der Initiative eine Ausnahme für die Objektressource gilt. Da die Ressource von einer oder mehreren enthaltenen Richtliniendefinition ausgenommen sein kann, 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 für eine Ressource oder Ressourcenhierarchie, die von einer oder mehreren Definitionen in einer Initiative, aber nicht von der gesamten Initiative ausgeschlossen werden sollte.
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 Eigenschaft resourceSelectors
. Diese Eigenschaft funktioniert auf die gleiche Weise in Ausnahmen wie in Zuweisungen, sodass ein schrittweiser Rollout oder Rollback einer Ausnahme für bestimmte Teilmengen von Ressourcen auf kontrollierte Weise möglich ist, basierend auf Ressourcentyp, Ressourcenstandort oder darauf, ob die Ressource über einen Speicherort verfügt. Weitere Details zur Verwendung von Ressourcenselektoren finden Sie in der Zuweisungsstruktur. Hier finden Sie ein Beispiel für eine JSON-Ausnahme, die Ressourcenselektoren nutzt. In diesem Beispiel werden nur Ressourcen in westcentralus
von der Richtlinienzuweisung ausgenommen:
{
"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"
}
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 Szenarios 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. Dies 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 veranschaulicht:
{
"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"
}
Zulässige Werte für assignmentScopeValidation
sind Default
und DoNotValidate
. Ohne Angabe erfolgt der Standardüberprüfungsprozess.
Erforderliche Berechtigungen
Die Azure RBAC-Berechtigungen, 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, muss jedoch 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ätsprü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 länger gültig sind. Zu diesem Zeitpunkt könnten auch Ausnahmeressourcen gelöscht werden, die abgelaufen sind.
Nächste Schritte
- Nutzen Sie Azure Resource Graph-Abfragen für Ausnahmen.
- Informationen zum Unterschied zwischen Ausschlüssen und Ausnahmen.
- Untersuchen 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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für