Einführen richtliniengesteuerter Schutzmaßnahmen

Bevor Sie Richtlinien verwenden, müssen Sie verstehen, wo und warum sie in den Referenzimplementierungen der Azure-Zielzone verwendet werden. Dieser Artikel wird Ihnen helfen zu verstehen, ob Sie verhindern möchten, dass DeployIfNotExists-Richtlinien (DINE) oder Modify-Richtlinien Änderungen in Ihrer Azure-Umgebung vornehmen.

Gründe für die Verwendung von DINE- und Modify-Richtlinien

DINE- und Modify-Richtlinien sind Teil der Referenzimplementierungen für Azure-Zielzonen. Sie helfen Ihnen und Ihrer Organisation, sicherzustellen, dass Ihre Zielzonen, die auch als Abonnements bezeichnet werden, und die darin enthaltenen Ressourcen konform sind. Diese Richtlinien entlasten auch die Plattform- und Zielzonenteams, wenn Ihre Azure-Umgebung skaliert wird.

Stellen Sie sich beispielsweise ein Szenario vor, in dem ein neues Zielzonenabonnement bereitgestellt und in der Verwaltungsgruppe „corp“ platziert wird. DINE- und Modify-Richtlinien führen dann folgende Aktionen für das Zielzonenabonnement aus:

  • Aktivieren von Microsoft Defender für Cloud Konfigurieren Sie Defender für Cloud-Exporte in den zentralen Log Analytics-Arbeitsbereich im Verwaltungsabonnement.
  • Aktivieren Sie Defender für Cloud für die verschiedenen unterstützten Angebote basierend auf den Richtlinienparametern, die für die Richtlinienzuweisung konfiguriert wurden.
  • Konfigurieren Sie die Azure-Aktivitätsprotokolle, die an den zentralen Log Analytics-Arbeitsbereich im Verwaltungsabonnement gesendet werden.
  • Konfigurieren Sie die Diagnoseeinstellungen für alle Ressourcen, die an den zentralen Log Analytics-Arbeitsbereich im Verwaltungsabonnement gesendet werden.
  • Stellen Sie die erforderlichen Azure Monitor-Agents für virtuelle Computer und Azure Virtual Machine Scale Sets bereit, einschließlich der über Azure Arc verbundenen Servern. Verbinden Sie sie mit dem zentralen Log Analytics-Arbeitsbereich im Verwaltungsabonnement.

Hinweis

Sie können die oben genannten Optionen jederzeit oder während der Bereitstellung der Referenzimplementierungen der Azure-Zielzone deaktivieren.

Die obige Liste zeigt eine Teilmenge aller Richtlinien, die als Teil des Azure-Zielzonenbeschleunigers zugewiesen werden. Eine vollständige Liste der Richtlinien, die von der Referenzimplementierung der Azure-Zielzone zugewiesen werden können, finden Sie unter Policies included in Azure landing zones reference implementations (Richtlinien, die in Referenzimplementierungen von Azure-Zielzonen enthalten sind).

Das Azure Landing Zones Bicep-Repository ist modular. Die oben aufgeführten Standardrichtlinien können mit dem ALZ Default Policy Assignments-Modul bereitgestellt werden.

Alle zugewiesenen Richtlinien helfen Ihnen und den Besitzern der Zielzone, konform zu bleiben. Es werden keine tatsächlichen Workloadressourcen über DINE- oder Modify-Richtlinien bereitgestellt. Dies wird auch nicht empfohlen. Weitere Informationen finden Sie unter Sollten wir Azure Policy zum Bereitstellen von Workloads verwenden?. Nur zusätzliche oder unterstützende Ressourcen oder Einstellungen werden durch diese DINE-Richtlinien bereitgestellt oder konfiguriert.

Die Referenzimplementierungen für Azure-Zielzonen verwenden Azure-DINE-Richtlinien, um eine richtliniengesteuerte Governance in Ihrer Azure-Umgebung zu erreichen. Möglicherweise können Sie jedoch keine DINE- oder Modify-Richtlinien verwenden, oder Sie sind aus folgenden Gründen nicht bereit, diese Art von Azure-Richtlinienauswirkung zu aktivieren:

  • Richtlinien zur Einhaltung gesetzlicher Bestimmungen, Normen oder gesetzliche Beschränkungen
  • Strenge Änderungssteuerungsprozesse, die für jede Aktion innerhalb Ihrer Azure-Umgebung eine menschliche Genehmigung erfordern
  • Mangel an Fachwissen, Erfahrung und Verständnis für die Verwaltung und Verwendung von DINE-Maßnahmen
  • Organisatorische Anforderungen, dass die gesamte Workloadressourcenkonfiguration, einschließlich Hilfsressourcen, unterstützender Ressourcen und Einstellungen, in Infrastructure-as-Code (IaC) von den Workloadanwendungsteams festgelegt wird.

Wenn Sie in die obigen Beispiele oder ähnliche Szenarios passen, hilft Ihnen dieser Artikel, zu verstehen, wie Sie die konzeptionelle Architektur der Azure-Zielzone übernehmen und die Entwurfsprinzipien einhalten. Obwohl Sie bestimmte Richtlinien anfänglich nicht verwenden, können Sie sich dafür entscheiden, sie in Zukunft schrittweise zu aktivieren. Das Ziel ist, Ihnen zu helfen, richtliniengesteuerte Governance zu erreichen.

Wichtig

In diesem Artikel werden zwei mögliche Werte für die Begriffe im Erzwingungsmodus angezeigt:

  • „Disabled“ oder „DoNotEnforce“
  • „Enabled“ oder „Default“

Das Azure-Portal verwendet „Disabled“ und „Enabled“ für den Erzwingungsmodus. Azure Resource Manager-Vorlagen (ARM) und andere API-Schnittstellen verwenden „DoNotEnforce“ und „Standard“ für die gleichen Optionen.

Weitere Informationen finden Sie unter Erzwingungsmodus.

Wenn Sie immer noch sicher sind, dass Ihre Organisation keine DINE- oder Modify-Richtlinien verwenden kann, wird in diesem Artikel erläutert, wie Sie verhindern können, dass die Richtlinien automatische Änderungen an Ihrer Azure-Umgebung vornehmen (auch als „Deaktivieren“ bezeichnet).

Hinweis

Dieser Vorgang ist nicht dauerhaft. Die Richtlinien können jederzeit von einem Mitglied Ihres Plattformteams erneut aktiviert werden, wenn Sie sich später für die Verwendung von DINE- oder Modify-Richtlinien entscheiden.

Weitere Informationen finden Sie unter Phase 2 und Phase 3.

Die Unterstützung für Ressourcenauswahlen gilt auch für richtliniengesteuerte Governance, um sicherzustellen, dass sichere Bereitstellungspraktiken (Safe Deployment Practices, SDP) eingehalten werden. Ressourcenselektoren bringen die Funktionalität der schrittweisen Einführung von Richtlinienzuordnungen basierend auf Faktoren wie Ressourcenstandort, Ressourcentyp oder ob die Ressource über einen Standort verfügt. Mehr finden Sie in diesem Dokument.

Übersicht über den Ansatz

Das folgende Diagramm fasst den vorgeschlagenen Phasenansatz zusammen:

Grafik mit einer Übersicht über die DINE-Phasen.

  1. Legen Sie für Richtlinienzuweisungen den Erzwingungsmodus auf DoNotEnforce fest:
    • Mit diesem Feature können Sie das Zuweisungsverhalten so ändern, dass es zu einer reinen Prüfrichtlinie wird, ohne die zugrunde liegende Richtliniendefinition zu ändern.
    • Bei diesem Ansatz können Sie auch manuelle Wartungstasks für nicht konforme Ressourcen ausführen, indem Sie ggf. Wartungstasks verwenden.
  2. Legen Sie den Durchsetzungsmodus für Richtlinienzuweisungen auf Default fest, um die automatische Wartung von DINE-Richtlinienzuweisungen in einem reduzierten Umfang erneut zu aktivieren:
    • Sie können eine gesamte Umgebung verwenden, z. B. die Sandbox-Verwaltungsgruppe.
    • Sie können auch ein nicht kritisches Workloadabonnement verwenden.
  3. Legen Sie für die verbleibenden DINE-Richtlinien in der gesamten Azure-Umgebung den Durchsetzungsmodus für Richtlinienzuweisungen auf Default fest.

Aufgrund von Einschränkungen zur Einhaltung gesetzlicher Bestimmungen können einige Kunden niemals über Phase 1 hinausgehen. Dies ist kein Problem und wird unterstützt, um bei Bedarf in diesem Zustand zu bleiben. Andere Kunden können zu den Phasen 2 und 3 übergehen, um DINE- und Modify-Richtlinien vollständig zu übernehmen und richtliniengesteuerte Governance für ihre Azure-Umgebung zu unterstützen.

Hinweis

Das Szenario und der in diesem Artikel beschriebene Ansatz sind nicht für die Mehrheit der Kunden gedacht und stellen keine Empfehlung dar. Lesen Sie den Abschnitt Gründe für die Verwendung von DINE- und Modify-Richtlinien, bevor Sie entscheiden, ob diese Richtlinien für Ihre Umgebung geeignet und erforderlich sind.

Phase 1: Deaktivieren von automatisierten Aktionen von DINE- und Modify-Richtlinien

Wenn Sie eine Richtlinie zuweisen, gilt standardmäßig die in der Richtliniendefinition definierte Auswirkung. Es wird empfohlen, die Richtliniendefinition unverändert zu lassen. Belassen Sie beispielsweise die Auswirkung der Richtlinienzuweisung auf DeployIfNotExists.

Anstatt die Richtliniendefinition oder ihre Auswirkung zu ändern, können Sie dieses Verhalten mit minimalem Aufwand beeinflussen, indem Sie das Feature für Richtlinienzuweisungen verwenden.

Verwenden des Azure-Portals, um den Erzwingungsmodus auf „Disabled“ festzulegen

In diesem Screenshot wird gezeigt, wie Sie das Azure-Portal verwenden, um den Erzwingungsmodus für eine Richtlinienzuweisung auf Disabled festzulegen. „Disabled“ wird auch als DoNotEnforce bezeichnet.

Deaktivieren des Erzwingungsmodus im Azure-Portal.

Verwenden der ARM-Vorlage zum Festlegen des Erzwingungsmodus auf DoNotEnforce

In diesem Codebeispiel wird gezeigt, wie Sie eine ARM-Vorlage verwenden, um enforcementMode für eine Richtlinienzuweisung auf DoNotEnforce festzulegen. DoNotEnforce wird auch als Disabled bezeichnet.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "DoNotEnforce"
    … // other properties removed for display purposes
  }
}

Mithilfe des Erzwingungsmodus können Sie die Auswirkungen einer Richtlinie auf vorhandene Ressourcen sehen, ohne sie zu initiieren oder Einträge im Azure-Aktivitätsprotokoll auszulösen. Dieses Szenario wird allgemein als „Was-wäre-wenn“ bezeichnet und richtet sich nach sicheren Bereitstellungsverfahren.

Selbst wenn der Erzwingungsmodus auf DoNotEnforce festgelegt ist, können Wartungstasks manuell ausgelöst werden. Sie können bestimmte nicht konforme Ressourcen beheben. Sie können auch sehen, was die DINE- oder Modify-Richtlinie ausgeführt hätte, wenn der Erzwingungsmodus auf Default festgelegt worden wäre.

Wichtig

Wenn der Erzwingungsmodus auf DoNotEnforce festgelegt ist, werden keine Einträge im Azure-Aktivitätsprotokoll generiert. Berücksichtigen Sie diesen Faktor für den Fall, dass Sie benachrichtigt werden möchten, wenn eine nicht konforme Ressource erstellt wird.

Dauerhaftes Verbleiben im Zustand „Phase 1“

Wie im Abschnitt Übersicht über den Ansatz erwähnt, müssen einige Kunden aufgrund ihrer Anforderungen möglicherweise für einen längeren Zeitraum oder sogar dauerhaft in Phase 1 verbleiben. Dieser Zustand ist gültig, und Kunden können für einen beliebigen Zeitraum darin verbleiben.

Möglicherweise müssen Sie dauerhaft oder für einen längeren Zeitraum in diesem Zustand bleiben, z. B. Jahre. Dann ist es möglicherweise besser, die Richtlinienauswirkung AuditIfNotExists (AINE) und die zugehörigen Definitionen zu übernehmen und den Durchsetzungsmodus wieder auf Default festzulegen.

Hinweis

Wenn Sie zu einer AINE-Richtlinie wechseln und den Durchsetzungsmodus auf Default festlegen, erreichen Sie immer noch das gleiche Ziel, nämlich die Deaktivierung von DINE.

Wenn Sie von DINE zu AINE wechseln und den Erzwingungsmodus als langfristigen oder dauerhaften Ansatz für Phase 1 wieder auf Default festlegen, erhalten Sie die Einträge im Azure-Aktivitätsprotokoll für den Richtlinienkonformitätsstatus zurück. Sie können Automatisierungsworkflows aus diesen Protokolleinträgen in Ihren allgemeinen Plattformverwaltungsvorgängen erstellen.

Sie verlieren die Möglichkeit, manuelle Wartungstasks auszuführen. Im Gegensatz zu DINE-Richtlinien führen AINE-Richtlinien keine automatisierten oder manuellen Bereitstellungen durch.

Denken Sie daran, die Richtliniendefinition so zu aktualisieren, dass die Auswirkung der AuditIfNotExists-Richtlinienzuweisung akzeptiert wird und diese zulässig ist.

In der folgenden Tabelle werden die Optionen und Implikationen für die verschiedenen Arten von Kombinationen aus Richtlinienauswirkungen und Erzwingungsmodi zusammengefasst:

Richtlinienauswirkung Erzwingungsmodus Aktivitätsprotokolleintrag Wiederherstellungsmaßnahme
DINE „Enabled“ oder „Default“ Ja Von der Plattform ausgelöste Wartung im großen Stil nach der Erstellung oder Ressourcenaktualisierung. Die manuelle Erstellung eines Wartungstasks ist erforderlich, wenn die abhängige Ressource vor der Richtlinienzuweisung geändert wurde oder bereits vorhanden ist.
DINE „Disabled“ oder „DoNotEnforce“ Nein Die manuelle Erstellung eines Wartungstasks ist erforderlich.
Ändern „Enabled“ oder „Default“ Ja Automatische Wartung während der Erstellung oder Aktualisierung
Ändern „Disabled“ oder „DoNotEnforce“ Nein Die manuelle Erstellung eines Wartungstasks ist erforderlich.
Verweigern „Enabled“ oder „Default“ Ja Erstellung oder Aktualisierung verweigert
Verweigern „Disabled“ oder „DoNotEnforce“ Nein Erstellung oder Aktualisierung zulässig. Die manuelle Wartung ist erforderlich.
Überwachung/AINE „Enabled“ oder „Default“ Ja Die manuelle Wartung ist erforderlich.
Überwachung/AINE „Disabled“ oder „DoNotEnforce“ Nein Die manuelle Wartung ist erforderlich.

Hinweis

Lesen Sie die Anleitung in Reagieren auf Azure Policy-Ereignisse vom Typ „Richtlinienzustandsänderung“, um zu verstehen, ob die Verwendung der Azure Event Grid-Integration mit Azure Policy einen geeigneten Ansatz darstellt, wenn Sie planen, Ihre eigene Automatisierung auf der Grundlage von Richtlinienstatusereignissen zu erstellen.

Phase 2: Aktivieren von DINE- und Modify-Richtlinien für eine bestimmte Richtlinie oder einen eingeschränkten Bereich

In dieser Phase erfahren Sie, wie Sie den Erzwingungsmodus für Richtlinienzuweisungen auf Default festlegen.

Nachdem Sie Phase 1 abgeschlossen haben, entscheiden Sie sich, die vollständigen Automatisierungsfunktionen von DINE- und Modify-Richtlinien für eine bestimmte Richtlinie oder einen reduzierten Bereich zu testen und auszuprobieren. Sie möchten die Sandbox-Verwaltungsgruppe oder ein nicht für die Produktion bestimmtes Workloadabonnement verwenden.

Dazu müssen Sie zunächst die Richtlinie oder den eingeschränkten Bereich ermitteln, der zum Testen und Ausprobieren der vollständigen Automatisierungsfunktionen der DINE- und Modify-Richtlinien verwendet werden soll.

Hinweis

Möglicherweise möchten Sie einen Testansatz für eine Plattform auf Unternehmensebene überprüfen und implementieren. Auf diese Weise können Sie Richtlinien und andere Plattformänderungen in einer getrennten Verwaltungsgruppenhierarchie innerhalb desselben Mandanten testen.

Dieser Ansatz wird auch als „Canary“-Bereitstellung bezeichnet.

Die folgende Tabelle enthält einige Beispiele für Bereiche und Richtlinien:

Aktion Wählen Sie aus diesen Bereichen Zu verwendende Beispielrichtlinien
– Testen der DINE-/Modify-Funktionen für automatisierte Wartung
– Überprüfen, wie Ihre vollständigen Bereitstellungsprozesse und CI/CD-Pipelines (einschließlich Tests) betroffen sein können
– Überprüfen, wie Ihre Workload betroffen sein kann
– Sandbox-Abonnement
– Sandbox-Verwaltungsgruppe
– Zielzonenabonnement für Nichtproduktionsworkloads
- „Canary“-Umgebung auf Unternehmensebene
– Konfigurieren von Azure-Aktivitätsprotokollen zum Streamen an einen angegebenen Log Analytics-Arbeitsbereich
– Bereitstellen von Defender für Cloud-Konfiguration
– Aktivieren von Azure Monitor für VMs oder Virtual Machine Scale Sets
– Bereitstellen von Diagnoseeinstellungen für Azure-Dienste
– Potenzielle Aktivierung nur für bestimmte Dienste innerhalb der Initiative

Sie können auch einen manuellen Wartungstask für einen begrenzten Bereich oder eine begrenzte Gruppe von Ressourcen verwenden, um zu testen, wie sich diese Richtlinien auf Ihre Umgebung auswirken. Weitere Informationen zum Erstellen eines Wartungstasks finden Sie in der Azure Policy-Dokumentation Erstellen eines Wartungstasks.

Nachdem Sie eine Richtlinie oder Richtlinien identifiziert haben und den reduzierten Bereich für deren Zuweisung festgelegt haben, besteht der nächste Schritt im Zuweisen der Richtlinie und Festlegen des Erzwingungsmodus auf Default. Lassen Sie die Richtlinienauswirkung, z. B. DeployIfNotExists oder Modify, für den von Ihnen ausgewählten reduzierten Bereich unverändert.

Verwenden des Azure-Portals, um den Erzwingungsmodus auf „Enabled“ festzulegen

In diesem Screenshot wird gezeigt, wie Sie das Azure-Portal verwenden, um den Erzwingungsmodus für eine Richtlinienzuweisung auf Enabled festzulegen. „Enabled“ wird auch als „Default“ bezeichnet.

Screenshot: Aktivieren des Erzwingungsmodus im Azure-Portal.

Verwenden einer ARM-Vorlage zum Festlegen des Erzwingungsmodus auf „Default“

In diesem Codebeispiel wird gezeigt, wie Sie eine ARM-Vorlage verwenden, um enforcementMode für eine Richtlinienzuweisung auf Default festzulegen. Default wird auch als Enabled bezeichnet.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "Default"
    … // other properties removed for display purposes
  }
}

Testen

Der letzte Schritt in dieser Phase besteht im Durchführen der erforderlichen Tests. Sie möchten überprüfen, ob und in welcher Weise die „DINE“- oder „Modify“-Richtlinien sich möglicherweise auf Ihre Workloads, den Code, Tools und Prozesse ausgewirkt und Änderungen daran vorgenommen haben.

Führen Sie mehrere Tests durch, um den gesamten Lebenszyklus Ihrer Workload zu erfassen. Sie möchten sicherstellen, dass Sie vollständig verstehen, ob und wie DINE- oder Modify-Richtlinien Änderungen vorgenommen haben.

Einige Beispiele für Tests:

  • Anfängliche Bereitstellung der Workload
  • Code-/Anwendungsbereitstellung für Workload
  • Betrieb und Verwaltung der Workload an Tag 2
  • Außerbetriebnahme der Workload

Phase 3: Aktivieren von DINE- und Modify-Richtlinien überall

In dieser Phase erfahren Sie, wie Sie den Erzwingungsmodus für Richtlinienzuweisungen auf Default festlegen.

Wir gehen davon aus, dass Ihre Tests am Ende von Phase 2 erfolgreich abgeschlossen wurden. Vielleicht sind Sie auch zufrieden, dass Sie nun verstehen, wie die DINE- oder Modify-Richtlinien mit Ihrer Workload interagieren. Nun können Sie die Verwendung von DINE- und Modify-Richtlinien auf die restliche Azure-Umgebung erweitern.

Führen Sie zum Fortfahren die Schritte aus, die den Schritten in Phase 2 ähneln. Dieses Mal legen Sie den Erzwingungsmodus für alle DINE- und Modify-Richtlinienzuweisungen in Ihrer gesamten Azure-Umgebung auf Default fest.

Im Folgenden finden Sie eine allgemeine Übersicht über die Schritte, die Sie in dieser Phase ausführen:

  • Entfernen von Zuweisungen, die speziell für Tests in Phase 2 verwendet werden
  • Durchlaufen jeder einzelnen DINE- und Modify-Richtlinienzuweisung in Ihrer Azure-Umgebung und Festlegen des Durchsetzungsmodus auf Default. Dieser Prozess wird in den Beispielen in Phase 2 gezeigt.
  • Erstellen von Wartungstasks für vorhandene Ressourcen, die nicht konform sind, unter Befolgung der Anleitung unter Erstellen eines Wartungstasks. Neue Ressourcen werden automatisch gewartet, wenn sie den Richtlinienregeln und Existenzbedingungen entsprechen.

Auch wenn wir in Phase 3 empfehlen, den Durchsetzungsmodus für alle DINE- und Modify-Richtlinien in Ihrer Azure-Umgebung auf Default festzulegen, ist diese Entscheidung immer noch optional. Sie können sie je nach Ihren Bedürfnissen und Anforderungen pro Richtlinie treffen.

Erweiterte Richtlinienverwaltung

Für die erweiterte Verwaltung von Azure-Richtlinien im großen Maßstab sollten Sie die Implementierung von Unternehmensrichtlinien als Code (EPAC) zum Verwalten von Richtlinien in Betracht ziehen. EPAC bietet eine zustandsbehaftete Verwaltungserfahrung, die IaC verwendet. Es eignet sich in der Regel für große Richtlinienverwaltungsszenarien mit komplexen Anforderungen.