Managed Initiative auf einer Management Group¶
Standardänderung: Eine verwaltete Policy-Initiative einer Management Group zuweisen
Auswirkung: Eine Built-in- oder vom Plattform-Team verwaltete Initiative wird einer Management Group zugewiesen, und jede darunterliegende subscription erbt die Initiative.
Abgrenzung. Die Zuweisung einer Initiative auf einen einzelnen spoke liegt in der Verantwortung des Workload-Teams und ist keine Standardänderung. Wenn du das in diesem Repository machst, verwende den Ordner
02_subscriptions(Policy-Zuweisungen).
Anfragefelder¶
| Feld | Verwendung |
|---|---|
| Policy definition/initiative Name | Built-in-Name oder GUID bzw. der name der Custom-Initiative |
| Begründung | pull request; properties.description |
| Scope | Ziel-Management-Group, zum Beispiel cloudplatform-landingzones-corp |
| Kommentare | Parameter, Enforcement-Modus |
Die Initiativen, die die Plattform bereits zuweist¶
Diese sind in infra/deploy/postdeployment/main.tf (module "landing_zone_policies") fest codiert und werden an der
Management Group cloudplatform zugewiesen. Jede Plattformumgebung bekommt sie.
| Anzeigename der Zuweisung | Initiative |
|---|---|
| Platform Default - Compliance - ISO 27001:2013 | built-in 89c6cddc-1c73-4ac1-b19c-54d1a15a42f2 |
| Platform Default - Compliance - CIS 1.4.0 | built-in c3f5c4d9-9a1d-4a99-85c0-7f93e384d5c5 |
| Platform Default - Compliance - CIS 3.0.0 | built-in 470a962c-86a0-433b-803a-3c176b5ce79c |
| Platform Default - Compliance - ASC | built-in 1f3afdf9-d0c9-4c3d-847f-89da613e70a8 (Microsoft cloud security benchmark) |
| Platform Default - Compliance - NIS2 | built-in 32ff9e30-4725-4ca7-ba3a-904a7721ee87 |
Platform Default - Diagnostic Settings - v2 - <region> |
built-in 0884adba-2312-4468-abeb-5422caed1038, eine pro aktiver Region |
| Xebia Default - Defender for Cloud v2 - Landing Zones | nur wenn enable_defender_for_cloud_for_spokes = true; mit Scope landingzones |
Es gibt keinen tfvars-Schalter, um die fünf Compliance-Initiativen zu entfernen. Sie zu ändern ist eine Codeänderung. Die
Ausnahmen, die die Plattform darauf anwendet, sind in
docs/policy_exemptions/current-platform-exemptions.md und in
ADR-0001 bis ADR-0005 sowie ADR-0013 dokumentiert.
Eine weitere Initiative einer Management Group zuweisen¶
1. Die Initiative-ID ermitteln¶
- Built-in: Azure portal → Policy → Definitions → nach Initiative filtern → öffnen → die Definition ID kopieren, zum
Beispiel
/providers/Microsoft.Authorization/policySetDefinitions/06f19060-9e68-4070-92ca-f15cc126059e. - Custom (vom Plattform-Team verwaltet): siehe Eine Custom-Definition oder -Initiative hinzufügen.
Die ID lautet
/providers/Microsoft.Management/managementGroups/<cloudplatform id>/providers/Microsoft.Authorization/policySetDefinitions/<name>.
2. Die Zuweisungsdatei erstellen¶
Erstelle <env-folder>/policies/policy_assignments/01_management_groups/<name>.json im Format aus
Policy-Zuweisungen:
{
"name": "cis-v2-corp",
"policy_definition_id": "/providers/Microsoft.Authorization/policySetDefinitions/06f19060-9e68-4070-92ca-f15cc126059e",
"enforce": true,
"identityType": "SystemAssigned",
"location": "westeurope",
"notScopes": null,
"managementGroupId": "/providers/Microsoft.Management/managementGroups/cloudplatform-landingzones-corp",
"non_compliance_message": null,
"properties": {
"displayName": "CIS Microsoft Azure Foundations Benchmark v2.0.0 - Corp",
"description": "Change <ticket>",
"metadata": { "assignedBy": "Infrastructure as Code (IaC)" },
"parameters": null
}
}
Die Beispielkonfiguration enthält zwei vollständige, deaktivierte Beispiele (.json.ignore) für dieses Muster, mit allen
ausgeschriebenen Parametern: CIS v2.0.0 und den Microsoft cloud security benchmark, beide unter
config/Demo/canary/policies/policy_assignments/01_management_groups/.
3. Deployen¶
Führe hub aus.
- Erwarteter
postdeployment-Plan (primäre Region):+die Policy-Zuweisung auf der Management Group. - Mit Identity:
+Rollenzuweisungen. - Mit
automatically_start_policy_remediation = true:+eine remediation pro Initiative-Mitglied.
Eine Custom-Definition oder -Initiative hinzufügen¶
Custom-Definitionen und -Initiativen werden vom foundation-Layer (nur primäre Region) an der Management Group
cloudplatform deployt. Die Ordner werden in <env-folder>/<primary region>/foundation.auto.tfvars festgelegt:
policy_definition_json_file_relative_path = "policies/policy_definitions"
policy_definition_json_file_pattern = "/**/*.json"
policy_set_definition_json_file_relative_path = "policies/policy_set_definitions"
policy_set_definition_json_file_pattern = "/**/*.json"
Das Dateiformat ist das Azure-Exportformat: name plus properties.{policyType, mode, displayName, description,
metadata, parameters, policyRule} für eine Definition und properties.{policyType, parameters, metadata,
policyDefinitions[], policyDefinitionGroups[]} für eine Initiative. In einer Initiative kannst du in einer
policyDefinitionId ${root_scope_resource_id} schreiben; das wird durch die ID der Management Group cloudplatform
ersetzt (infra/modules/policy/main.tf).
Der Anzeigename der Initiative in Azure ist ihr
name.display_name = each.value.nameininfra/modules/policy/main.tf, daher wirdproperties.displayNamebei Initiativen nicht verwendet.
Definitionen und Zuweisungen können im selben pull request liegen: foundation läuft in einem hub-Lauf vor postdeployment.
Prüfen¶
Azure portal → Policy → Assignments → Scope = die Management Group. Die Zuweisung wird aufgelistet, und Compliance füllt sich nach der ersten Auswertung.
Rollback¶
Lösche die Zuweisungsdatei (und die Definitionsdateien, falls sie für diese Änderung hinzugefügt wurden) und führe dann hub aus.