Managed initiative op een management group¶
Standaardwijziging: Een managed policy initiative toewijzen aan een management group
Effect: een ingebouwde of door het platform beheerde initiative wordt toegewezen op een management group, en elke subscription daaronder erft de initiative.
Afbakening. Een initiative toewijzen op één spoke is de verantwoordelijkheid van het workloadteam en geen standaardwijziging. Doe je dit toch in deze repository, gebruik dan de map
02_subscriptions(Policy-toewijzingen).
Aanvraagvelden¶
| Veld | Gebruik |
|---|---|
| Policy definition/initiative Name | Ingebouwde naam of GUID, of de name van de custom initiative |
| Onderbouwing | pull request; properties.description |
| Scope | Doel-management group, bijvoorbeeld cloudplatform-landingzones-corp |
| Opmerkingen | parameters, enforcement mode |
De initiatives die het platform al toewijst¶
Deze zijn hard-coded in infra/deploy/postdeployment/main.tf (module "landing_zone_policies") en worden
toegewezen op de management group cloudplatform. Elke platformomgeving krijgt ze.
| Weergavenaam van de toewijzing | 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, één per actieve regio |
| Xebia Default - Defender for Cloud v2 - Landing Zones | alleen als enable_defender_for_cloud_for_spokes = true; scope landingzones |
Er is geen tfvars-schakelaar om de vijf compliance-initiatives te verwijderen. Ze wijzigen is een codewijziging. De
uitzonderingen die het platform erop toepast staan beschreven in
docs/policy_exemptions/current-platform-exemptions.md en in
ADR-0001 t/m ADR-0005 en ADR-0013.
Een andere initiative toewijzen aan een management group¶
1. Haal de initiative-ID op¶
- Built-in: Azure portal → Policy → Definitions → filter Initiative → open de initiative → kopieer de Definition ID, bijvoorbeeld
/providers/Microsoft.Authorization/policySetDefinitions/06f19060-9e68-4070-92ca-f15cc126059e. - Custom (door het platform beheerd): zie Een custom definition of initiative toevoegen.
De ID hiervan is
/providers/Microsoft.Management/managementGroups/<cloudplatform id>/providers/Microsoft.Authorization/policySetDefinitions/<name>.
2. Maak het toewijzingsbestand aan¶
Maak <env-folder>/policies/policy_assignments/01_management_groups/<name>.json aan, in het formaat uit
Policy-toewijzingen:
{
"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
}
}
De voorbeeldconfiguratie bevat twee volledige, uitgeschakelde voorbeelden (.json.ignore) van dit patroon, met alle
parameters uitgeschreven: CIS v2.0.0 en de Microsoft cloud security benchmark, beide onder
config/Demo/canary/policies/policy_assignments/01_management_groups/.
3. Uitrollen¶
Draai hub.
- Verwachte
postdeploymentplan (primaire regio):+de policy-toewijzing op de management group. - Met een identity:
+role assignments. - Met
automatically_start_policy_remediation = true:+één remediation per initiative-onderdeel.
Een custom definition of initiative toevoegen¶
Custom definitions en initiatives worden uitgerold door de foundation-layer (alleen primaire regio) op de management group
cloudplatform. De mappen worden ingesteld in <env-folder>/<primary region>/foundation.auto.tfvars:
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"
Het bestandsformaat is het Azure-exportformaat: name plus properties.{policyType, mode, displayName, description,
metadata, parameters, policyRule} voor een definition, en properties.{policyType, parameters, metadata,
policyDefinitions[], policyDefinitionGroups[]} voor een initiative. In een initiative kun je
${root_scope_resource_id} gebruiken in een policyDefinitionId; die wordt vervangen door de ID van de management group
cloudplatform (infra/modules/policy/main.tf).
De weergavenaam van de initiative in Azure is de
name.display_name = each.value.nameininfra/modules/policy/main.tf, dusproperties.displayNamewordt niet gebruikt voor initiatives.
Definitions en toewijzingen kunnen in dezelfde pull request: foundation draait vóór postdeployment binnen één hub-run.
Controleren¶
Azure portal → Policy → Assignments → scope = de management group. De toewijzing staat in de lijst en Compliance vult zich na de eerste evaluatie.
Terugdraaien¶
Verwijder het toewijzingsbestand (en de definitionbestanden, als die voor deze wijziging zijn toegevoegd) en draai daarna hub.