Azure Policy-Zuweisungsstruktur

Richtlinienzuweisungen werden von Azure Policy zur Definition verwendet, welche Ressourcen welchen Richtlinien oder Initiativen zugewiesen werden. Die Richtlinienzuweisung kann die Werte von Parametern für diese Gruppe von Ressourcen zum Zeitpunkt der Zuweisung bestimmen, wodurch es möglich wird, Richtliniendefinitionen wiederzuverwenden, die dieselben Ressourceneigenschaften mit unterschiedlichen Anforderungen an die Compliance ansprechen.

Hinweis

Weitere Informationen zum Azure Policy-Bereich finden Sie in der Übersicht zu Bereichen in Azure Policy.

Sie verwenden JSON (JavaScript Object Notation), um eine Richtlinienzuweisung zu erstellen. Die Richtlinienzuweisung enthält Elemente für Folgendes:

  • Anzeigename
  • description
  • metadata
  • Erzwingungsmodus
  • Ausgeschlossene Bereiche
  • Richtliniendefinition
  • Meldungen zu Complianceverstößen
  • parameters
  • identity

Der folgende JSON-Code zeigt z. B. eine Richtlinienzuweisung im DoNotEnforce-Modus mit dynamischen Parametern an:

{
    "properties": {
        "displayName": "Enforce resource naming rules",
        "description": "Force resource names to begin with DeptA and end with -LC",
        "metadata": {
            "assignedBy": "Cloud Center of Excellence"
        },
        "enforcementMode": "DoNotEnforce",
        "notScopes": [],
        "policyDefinitionId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
        "nonComplianceMessages": [
            {
                "message": "Resource names must start with 'DeptA' and end with '-LC'."
            }
        ],
        "parameters": {
            "prefix": {
                "value": "DeptA"
            },
            "suffix": {
                "value": "-LC"
            }
        }
    }
}

Alle Azure Policy-Beispiele sind unter Azure Policy-Beispiele verfügbar.

Anzeigename und Beschreibung

Sie verwenden displayName und description, um die Richtlinienzuweisung zu identifizieren und den Kontext für ihre Verwendung mit einem bestimmten Satz von Ressourcen bereitzustellen. displayName hat eine maximale Länge von 128 Zeichen, und description hat eine maximale Länge von 512 Zeichen.

Metadaten

Die optionale Eigenschaft metadata dient zum Speichern von Informationen zur Richtlinienzuweisung. Kunden können alle für ihre Organisation nützlichen Eigenschaften und Werte in metadata definieren. Es gibt jedoch einige allgemeine Eigenschaften, die von Azure Policy verwendet werden. Jede metadata-Eigenschaft ist auf 1.024 Zeichen begrenzt.

Allgemeine Metadateneigenschaften

  • assignedBy (Zeichenfolge): Der Anzeigename des Sicherheitsprinzipals, durch den die Zuweisung erstellt wurde.

  • createdBy (Zeichenfolge): Die GUID des Sicherheitsprinzipals, durch den die Zuweisung erstellt wurde.

  • createdOn (Zeichenfolge): Das Universal ISO 8601-DateTime-Format der Erstellungszeit der Zuweisung.

  • parameterScopes (Objekt): Eine Sammlung von Schlüssel-Wert-Paaren, bei denen der Schlüssel einem mit strongType konfigurierten Parameternamen entspricht und der Wert den Ressourcenbereich definiert, der im Portal verwendet wird, um die Liste der verfügbaren Ressourcen per Abgleich von strongType bereitzustellen. Dieser Wert wird vom Portal festgelegt, wenn sich der Bereich vom Zuweisungsbereich unterscheidet. Ist der Wert festgelegt, wird der Bereich für den Parameter bei einer Bearbeitung der Richtlinienzuweisung im Portal automatisch auf diesen Wert festgelegt. Der Wert ist jedoch nicht unveränderlich und kann in einen anderen Bereich geändert werden.

    Im folgenden Beispiel für parameterScopes wird ein Parameter vom Typ strongType mit dem Namen backupPolicyId verwendet, um einen Bereich für die Ressourcenauswahl festzulegen, wenn die Zuweisung im Portal bearbeitet wird.

    "metadata": {
        "parameterScopes": {
            "backupPolicyId": "/subscriptions/{SubscriptionID}/resourcegroups/{ResourceGroupName}"
        }
    }
    
  • updatedBy (Zeichenfolge): Der Anzeigename des Sicherheitsprinzipals, durch den die Zuweisung aktualisiert wurde (sofern zutreffend).

  • updatedOn (Zeichenfolge): Das Universal ISO 8601-DateTime-Format der Aktualisierungszeit der Zuweisung (sofern zutreffend).

Erzwingungsmodus

Mit der enforcementMode-Eigenschaft können Kunden das Ergebnis einer Richtlinie für vorhandene Ressourcen testen, ohne dass die Richtlinienauswirkung initiiert oder Einträge im Azure-Aktivitätsprotokoll ausgelöst werden. Dieses Szenario wird allgemein als „Was-wäre-wenn“ bezeichnet und richtet sich nach sicheren Bereitstellungsverfahren. enforcementMode unterscheidet sich vom Effekt Disabled, da dieser Effekt die Ressourcenauswertung gänzlich verhindert.

Diese Eigenschaft weist die folgenden Werte auf:

Mode JSON-Wert type Manuelle Behebung Aktivitätsprotokolleintrag BESCHREIBUNG
Aktiviert Standard Zeichenfolge Ja Ja Die Richtlinienauswirkung wird während der Erstellung oder Aktualisierung von Ressourcen erzwungen.
Disabled DoNotEnforce Zeichenfolge Ja Nein Die Richtlinienauswirkung wird nicht während der Erstellung oder Aktualisierung von Ressourcen erzwungen.

Wenn enforcementMode nicht in einer Richtlinie oder Initiativendefinition angegeben ist, wird der Wert Default verwendet. Aufgaben zur Bereinigung können für deployIfNotExists-Richtlinien gestartet werden, auch wenn enforcementMode auf DoNotEnforce festgelegt ist.

Ausgeschlossene Bereiche

Der scope der Zuweisung umfasst alle untergeordneten Ressourcencontainer und untergeordneten Ressourcen. Wenn die Definition für untergeordnete Ressourcencontainer oder untergeordnete Ressourcen nicht angewendet werden soll, können diese durch Festlegung von notScopes von der Auswertung ausgeschlossen werden. Diese Eigenschaft ist ein Array, mit dem ein oder mehrerer Ressourcencontainer oder Ressourcen von der Auswertung ausgeschlossen werden können. notScopes können nach dem Erstellen der anfänglichen Zuweisung hinzugefügt oder aktualisiert werden.

Hinweis

Eine ausgeschlossene Ressource unterscheidet sich von einer ausgenommenen Ressource. Weitere Informationen finden Sie in der Übersicht zu Bereichen in Azure Policy.

Richtliniendefinitions-ID

Dieses Feld muss der vollständige Pfadname einer Richtlinien- oder einer Initiativendefinition sein. policyDefinitionId ist eine Zeichenfolge und kein Array. Der neueste Inhalt der zugewiesenen Richtliniendefinition oder -initiative wird bei jeder Auswertung der Richtlinienzuweisung abgerufen. Es wird empfohlen, stattdessen eine Initiative zu verwenden, wenn häufig mehrere Richtlinien gleichzeitig zugewiesen werden.

Meldungen zu Complianceverstößen

Legen Sie nonComplianceMessages in der Zuweisungsdefinition fest, um eine benutzerdefinierte Meldung festzulegen, in der beschrieben wird, weshalb eine Ressource nicht der Richtlinien- oder Initiativendefinition entspricht. Dieser Knoten ist ein Array von message-Einträgen. Diese benutzerdefinierte Meldung wird zusätzlich zur Standardfehlermeldung für Nichtkonformität verwendet und ist optional.

Wichtig

Benutzerdefinierte Nachrichten bei Nichtkonformität werden nur für Definitionen oder Initiativen mit Definitionen von Resource Manager-Modi unterstützt.

"nonComplianceMessages": [
    {
        "message": "Default message"
    }
]

Wenn die Zuweisung für eine Initiative erfolgt, können für jede Richtliniendefinition in der Initiative verschiedene Meldungen konfiguriert werden. Für die Meldungen wird der policyDefinitionReferenceId-Wert verwendet, der in der Initiativendefinition konfiguriert wurde. Einzelheiten finden Sie in den Definitionseigenschaften der Richtlinie.

"nonComplianceMessages": [
    {
        "message": "Default message"
    },
    {
        "message": "Message for just this policy definition by reference ID",
        "policyDefinitionReferenceId": "10420126870854049575"
    }
]

Parameter

Dieses Segment der Richtlinienzuweisung stellt die Werte für die Parameter bereit, die in der Richtliniendefinition oder Initiativendefinition definiert sind. Dieses Design ermöglicht es, eine Richtlinien- oder Initiativendefinition mit unterschiedlichen Ressourcen wiederzuverwenden, aber auf unterschiedliche Geschäftswerte oder -ergebnisse zu prüfen.

"parameters": {
    "prefix": {
        "value": "DeptA"
    },
    "suffix": {
        "value": "-LC"
    }
}

In diesem Beispiel sind die Parameter, die zuvor in der Richtliniendefinition definiert wurden, prefix und suffix. Diese spezielle Richtlinienzuweisung legt prefix auf DeptA und suffix auf -LC fest. Dieselbe Richtliniendefinition kann mit einem anderen Satz von Parametern für eine andere Abteilung wiederverwendet werden, wodurch die Duplizierung und Komplexität von Richtliniendefinitionen reduziert und gleichzeitig Flexibilität bereitgestellt wird.

Identität

Für Richtlinienzuweisungen, deren Auswirkung auf deployIfNotExist (Bereitstellen, sofern nicht vorhanden) oder modify (ändern) festgelegt ist, ist eine Identitätseigenschaft erforderlich, um Korrekturen nicht konformer Ressourcen zu ermöglichen. Bei Verwendung der Identität muss der Benutzer auch einen Speicherort für die Zuweisung angeben.

Hinweis

Eine einzelne Richtlinienzuweisung kann nur einer system- oder benutzerseitig zugewiesenen verwalteten Identität zugeordnet werden. Dieser Identität können jedoch bei Bedarf mehrere Rollen zugewiesen werden.

# System-assigned identity
 "identity": {
    "type": "SystemAssigned"
  }
# User-assigned identity
  "identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
      "/subscriptions/SubscriptionID/resourceGroups/testResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity": {}
    }
  },

Nächste Schritte