Korrigieren nicht konformer Ressourcen mit Azure Policy

Ressourcen, die mit Richtlinien mit deployIfNotExists- oder modify-Effekten nicht konform sind, können über die Wartung in einen konformen Zustand versetzt werden. Die Wartung erfolgt durch die Wartungstasks, die die Vorlage deployIfNotExists bereitstellen, oder die Anwendung der modify-Vorgänge der zugewiesenen Richtlinie auf Ihre vorhandenen Ressourcen und Abonnements, unabhängig davon, ob die Zuweisung an eine Verwaltungsgruppe, ein Abonnement, eine Ressourcengruppe oder eine einzelne Ressource erfolgt. Dieser Artikel zeigt die Schritte, die erforderlich sind, um die Korrektur mithilfe von Azure Policy zu verstehen und durchzuführen.

Funktionsweise der Steuerung des Wartungszugriffs

Wenn Azure Policy eine Vorlagenbereitstellung beim Auswerten von deployIfNotExists-Richtlinien startet oder eine beim Auswerten von modify-Richtlinien ändert, wird dazu eine verwaltete Identität verwendet, die der Richtlinienzuweisung zugeordnet ist. Bei Richtlinienzuweisungen werden verwaltete Identitäten für die Autorisierung von Azure-Ressourcen verwendet. Sie können entweder eine systemseitig zugewiesene verwaltete Identität verwenden, die vom Richtliniendienst erstellt wird, oder eine benutzerseitig zugewiesene Identität, die vom Benutzer bereitgestellt wird. Der verwalteten Identität müssen die mindestens erforderlichen Rollen über die rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) zugewiesen werden, um Ressourcen zu behandeln. Wenn der verwalteten Identität Rollen fehlen, wird während der Zuweisung der Richtlinie oder einer Initiative ein Fehler im Portal angezeigt. Wenn Sie das Portal verwenden, gewährt Azure Policy der verwalteten Identität automatisch die aufgelisteten Rollen, sobald die Zuweisung ausgelöst wurde. Wenn Sie ein Azure-SDK (Software Development Kit) verwenden, müssen die Rollen manuell der verwalteten Identität erteilt werden. Der Speicherort der verwalteten Identität hat keinen Einfluss auf die Funktionsweise mit Azure Policy.

Hinweis

Durch das Ändern einer Richtliniendefinition wird die Zuweisung oder die zugeordnete verwaltete Identität nicht automatisch aktualisiert.

Die Wartungssicherheit kann über die folgenden Schritte konfiguriert werden:

Konfigurieren der Richtliniendefinition

Als Voraussetzung muss die Richtliniendefinition die Rollen definieren, die deployIfNotExists und modify benötigen, um die Inhalte Ihrer eingebundenen Vorlage erfolgreich bereitstellen zu können. Für eine integrierte Richtliniendefinition ist keine Aktion erforderlich, da diese Rollen bereits vorab vergeben werden. Fügen Sie für eine benutzerdefinierte Richtliniendefinition unter der Eigenschaft details eine roleDefinitionIds-Eigenschaft hinzu. Diese Eigenschaft ist ein Array von Zeichenfolgen, die Rollen in Ihrer Umgebung entsprechen. Ein vollständiges Beispiel finden Sie bei deployIfNotExists oder modify.

"details": {
    ...
    "roleDefinitionIds": [
    "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
    "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
  ]
}

Die Eigenschaft roleDefinitionIds verwendet die vollständige Ressourcen-ID und nicht den kurzen roleName der Rolle. Verwenden Sie den folgenden Azure CLI-Code, um die ID für die Rolle „Mitwirkender“ in Ihrer Umgebung abzurufen:

az role definition list --name "Contributor"

Wichtig

Wenn Sie roleDefinitionIds innerhalb einer Richtliniendefinition festlegen oder Berechtigungen manuell einer verwalteten Identität zuweisen, sollten Sie möglichst wenig Berechtigungen erteilen. Weitere bewährte Methoden finden Sie unter Empfehlungen zu bewährten Methoden für verwaltete Identitäten.

Konfigurieren der verwalteten Identität

Jede Azure Policy-Zuweisung kann nur mit einer verwalteten Identität verknüpft werden. Der verwalteten Identität können jedoch mehreren Rollen zugewiesen werden. Die Konfiguration erfolgt in zwei Schritten: Erstellen Sie zuerst eine systemseitig zugewiesene oder benutzerseitig zugewiesene verwaltete Identität, und gewähren Sie dann die erforderlichen Rollen.

Hinweis

Beim Erstellen einer verwalteten Identität über das Portal werden Rollen automatisch der verwalteten Identität gewährt. Wenn roleDefinitionIds später in der Richtliniendefinition bearbeitet werden, müssen die neuen Berechtigungen auch im Portal manuell gewährt werden.

Erstellen Sie die verwaltete Identität

Wenn Sie eine Zuweisung über das Portal erstellen, kann Azure Policy eine systemseitig zugewiesene verwaltete Identität generieren und ihr die in den roleDefinitionIds der Richtliniendefinition definierten Rollen zuweisen. Alternativ können Sie eine benutzerseitig zugewiesene verwaltete Identität angeben, bei der sie dieselbe Rollenzuweisung vornehmen.

Screenshot: Richtlinienzuweisung, die in „USA, Osten“ eine systemseitig zugewiesene verwaltete Identität mit Mitwirkenderberechtigungen für Log Analytics erstellt.

So legen Sie eine systemseitig zugewiesene verwaltete Identität im Portal fest:

  1. Vergewissern Sie sich in der Ansicht zum Erstellen/Bearbeiten von Zuweisungen auf der Registerkarte Korrektur unter Types of Managed Identity (Typen der verwalteten Identität), dass die Option Systemseitig zugewiesene verwaltete Identität ausgewählt ist.

  2. Geben Sie den Standort an, an dem sich die verwaltete Identität befinden soll.

  3. Weisen Sie der vom System zugewiesenen verwalteten Identität keinen Bereich zu, da der Bereich vom Zuweisungsbereich geerbt wird.

So legen Sie eine benutzerseitig zugewiesene verwaltete Identität im Portal fest:

  1. Vergewissern Sie sich in der Ansicht zum Erstellen/Bearbeiten von Zuweisungen auf der Registerkarte Korrektur unter Types of Managed Identity (Typen der verwalteten Identität), dass die Option Benutzerseitig zugewiesene verwaltete Identität ausgewählt ist.

  2. Geben Sie den Bereich an, in dem die verwaltete Identität gehostet wird. Der Bereich der verwalteten Identität muss nicht dem Bereich der Zuweisung entsprechen, muss sich aber im gleichen Mandanten befinden.

  3. Wählen Sie unter Vorhandene benutzerseitig zugewiesene Identitäten die verwaltete Identität aus.

Gewähren von Berechtigungen für die verwaltete Identität durch definierte Rollen

Wichtig

Wenn die verwaltete Identität nicht über die Berechtigungen verfügt, die zum Ausführen der erforderlichen Korrekturaufgabe erforderlich sind, werden ihr nur über das Portal automatisch Berechtigungen erteilt. Sie können diesen Schritt überspringen, wenn Sie über das Portal eine verwaltete Identität erstellen.

Für alle anderen Methoden muss der verwalteten Identität der Zuweisung manuell über das Hinzufügen von Rollen Zugriff gewährt werden, oder die Bereitstellung der Wartung ist nicht erfolgreich.

Beispielszenarien, die manuelle Berechtigungen erfordern:

  • Wenn die Zuordnung über ein Azure Software Development Kit (SDK) erstellt wird
  • Eine von deployIfNotExists oder modify geänderte Ressource liegt außerhalb des Bereichs der Richtlinienzuweisung.
  • Die Vorlage greift auf Eigenschaften von Ressourcen außerhalb des Bereichs der Richtlinienzuweisung zu.

Es gibt zwei Möglichkeiten, der verwalteten Identität einer Zuweisung die definierten Rollen über das Portal zuzuweisen: Durch die Verwendung der Zugriffssteuerung (IAM) oder durch die Bearbeitung der Richtlinie oder der Initiativzuweisung und dem anschließenden Auswählen von Speichern.

Führen Sie die folgenden Schritte aus, um eine Rolle zu der verwalteten Identität der Zuweisung hinzuzufügen:

  1. Starten Sie den Azure Policy-Dienst über das Azure-Portal, indem Sie die Option Alle Dienste auswählen und dann nach Policy suchen und die entsprechende Option auswählen.

  2. Wählen Sie links auf der Seite „Azure Policy“ die Option Zuweisungen.

  3. Suchen Sie die Zuweisung, die über eine verwaltete Identität verfügt, und wählen Sie den Namen aus.

  4. Suchen Sie auf der Bearbeitungsseite nach der Eigenschaft Zuweisungs-ID. Das Zuweisungs-ID sollte dem folgenden Beispiel entsprechen:

    /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    Der letzte Teil der Ressourcen-ID der Zuweisung enthält den Namen der verwalteten Identität, in diesem Beispiel 2802056bfc094dfb95d4d7a5. Kopieren Sie diesen Teil der Ressourcen-ID der Zuweisung.

  5. Navigieren Sie zu der Ressource des übergeordneten Containers der Ressource (Ressourcengruppe, Abonnement, Verwaltungsgruppe). Dort muss die Rollendefinition manuell hinzugefügt werden.

  6. Wählen Sie auf der Seite „Ressourcen“ den Link Zugriffssteuerung (IAM) und anschließend oben auf der Seite „Zugriffssteuerung“ die Option + Rollenzuweisung hinzufügen aus.

  7. Wählen Sie die entsprechende Rolle aus, die roleDefinitionIds aus der Richtliniendefinition entspricht. Lassen Sie für Zugriff zuweisen zu den Standardwert „Benutzer, Gruppe oder Anwendung“ festgelegt. Fügen Sie im Feld Auswählen den zuvor lokalisierten Teil der Ressourcen-ID der Zuweisung ein oder geben Sie diesen ein. Wählen Sie nach Abschluss der Suche das Objekt mit dem gleichen Namen aus, um die ID auszuwählen, und anschließend wählen Sie Speichern aus.

Erstellen eines Wartungstask

Starten Sie den Azure Policy-Dienst über das Azure-Portal, indem Sie die Option Alle Dienste auswählen und dann nach Policy suchen und die entsprechende Option auswählen.

Screenshot: Suchen nach „Policy“ unter „Alle Dienste“

Schritt 1: Initiieren der Erstellung eines Wartungstasks

Es gibt drei Möglichkeiten, einen Wartungstask über das Portal zu erstellen.

Option 1: Erstellen eines Wartungstasks auf der Seite „Wartung“

  1. Wählen Sie links auf der Seite „Azure Policy“ die Option Wartung aus.

    Screenshot: Knoten „Wartung“ auf der Seite „Policy“.

  2. Alle deployIfNotExists- und modify-Richtlinienzuweisungen werden auf der Registerkarte Richtlinien zur Bereinigung angezeigt. Wählen Sie eine mit Ressourcen aus, die nicht kompatibel sind, um die Seite Neue Korrekturaufgabe zu öffnen.

  3. Führen Sie die Schritte aus, um Wartungstaskdetails anzugeben.

Option 2: Erstellen eines Wartungstasks aus einer nicht konformen Richtlinienzuweisung

  1. Wählen Sie links auf der Seite „Azure Policy“ die Option Konformität.

  2. Wählen Sie eine nicht konforme Richtlinien- oder Initiativenzuweisung aus, die deployIfNotExists- oder modify-Effekte enthält.

  3. Wählen Sie oben auf der Seite die Schaltfläche Wartungstask erstellen aus, um die Seite Neuer Wartungstask zu öffnen.

  4. Führen Sie die Schritte aus, um Wartungstaskdetails anzugeben.

Option 3: Erstellen eines Wartungstasks während der Richtlinienzuweisung

Wenn die zuzuweisende Richtlinien- oder Initiativendefinition über einen deployIfNotExists- odermodify-Effekt verfügt, bietet die Registerkarte Wartung des Assistenten eine Option Korrekturtask erstellen, die gleichzeitig mit der Richtlinienzuweisung einen Wartungstask erstellt.

Hinweis

Dies ist der optimale Ansatz zum Erstellen eines Wartungstasks und wird für Richtlinien unterstützt, die einem Abonnement zugewiesen sind. Bei Richtlinien, die einer Verwaltungsgruppe zugewiesen sind, sollten Wartungstasks mithilfe von Option 1 oder Option 2 erstellt werden, nachdem die Auswertung die Ressourcenkonformität ermittelt hat.

  1. Navigieren Sie vom Zuweisungs-Assistenten im Portal zur Registerkarte Wartung. Aktivieren Sie das Kontrollkästchen Korrekturtask erstellen.

  2. Wenn der Wartungstask von einer Initiativenzuweisung initiiert wird, wählen Sie die zu korrigierende Richtlinie aus der Dropdownliste aus.

  3. Konfigurieren Sie die verwaltete Identität, und füllen Sie den Rest des Assistenten aus. Der Wartungstask wird erstellt, wenn die Zuweisung erstellt wird.

Schritt 2: Angeben von Wartungstaskdetails

Dieser Schritt gilt nur, wenn Sie Option 1 oder Option 2 verwenden, um die Erstellung von Wartungstasks zu initiieren.

  1. Wenn der Wartungstask von einer Initiativenzuweisung initiiert wird, wählen Sie die zu korrigierende Richtlinie aus der Dropdownliste aus. Eine deployIfNotExists- oder modify-Richtlinie kann jeweils über einen einzelnen Wartungstask korrigiert werden.

  2. Ändern Sie optional Wartungseinstellungen auf der Seite. Informationen dazu, was die einzelnen Einstellungen steuern, finden Sie unter Struktur der Wartungsaufgabe.

  3. Filtern Sie auf der gleichen Seite die zu korrigierenden Ressourcen, indem Sie die über die Auslassungspunkte bei Bereich untergeordnete Ressourcen auswählen, von denen aus die Richtlinie zugewiesen wurde (bis hin zu den einzelnen Ressourcenobjekten). Darüber hinaus können Sie die Ressourcen über die Dropdownliste Standorte weiter filtern.

    Screenshot: Knoten „Wartung“ und das Raster mit Ressourcen für die Wartung

  4. Nachdem die Ressourcen gefiltert wurden, können Sie den Wartungstask auslösen, indem Sie Korrigieren auswählen. Auf der Registerkarte Wartungstasks wird die Seite zur Richtlinienkonformität geöffnet, auf der der Fortschritt der Tasks angezeigt wird. Durch dem Wartungstask erstellte Bereitstellungen beginnen sofort.

    Screenshot: Registerkarte „Wartungstasks“ und Fortschritt der vorhandenen Wartungstasks

Schritt 3: Nachverfolgen des Fortschritts des Wartungstasks

  1. Navigieren Sie zur Registerkarte Wartungstasks auf der Seite Wartung. Wählen Sie einen Wartungstask aus, um Details zur verwendeten Filterung, dem aktuellen Status und eine Liste der zu wartenden Ressourcen anzuzeigen.

  2. Klicken Sie auf der Detailseite Wartungstask mit der rechten Maustaste auf eine Ressource, um die Bereitstellung des Wartungstasks oder die Ressource anzuzeigen. Wählen Sie am Ende der Zeile Verknüpfte Ereignisse aus, um Einzelheiten anzuzeigen, z. B. eine Fehlermeldung.

    Screenshot: Kontextmenü für eine Ressource auf der Registerkarte „Wartungstask“

Ressourcen, die über einen Wartungstask bereitgestellt werden, werden auf der Seite der Richtlinienzuweisungsdetails der Registerkarte Bereitgestellte Ressourcen hinzugefügt.

Nächste Schritte