Skip to content

Commit d59a60b

Browse files
DTOSS-12686: Assign Windows Admin Center policy to Arc-enabled servers
Adds policy assignment for "Configure Windows Arc-enabled machines to enable Windows Admin Center Extension" (0e4b8929) scoped to the Arc-enabled servers resource group, and a remediation task so existing non-compliant machines get the extension deployed on the next terraform apply. Reuses the existing arc_monitor_policy_identity managed identity which already holds the Azure Connected Machine Resource Administrator role.
1 parent 83386f9 commit d59a60b

1 file changed

Lines changed: 33 additions & 6 deletions

File tree

infrastructure/modules/arc-infra/azure_monitor.tf

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,23 +137,50 @@ resource "azurerm_resource_group_policy_assignment" "dcr_association" {
137137
})
138138
}
139139

140+
# ---------------------------------------------------------------------------
141+
# Policy Assignment for Windows Admin Center
142+
# "Configure Windows Arc-enabled machines to enable Windows Admin Center Extension"
143+
# ---------------------------------------------------------------------------
144+
resource "azurerm_resource_group_policy_assignment" "wac" {
145+
count = var.enable_arc_servers ? 1 : 0
146+
147+
name = "wac-arc-${var.env_config}"
148+
resource_group_id = data.azurerm_resource_group.arc_enabled_servers[0].id
149+
policy_definition_id = "/providers/Microsoft.Authorization/policyDefinitions/0e4b8929-3957-46e0-bc05-0e34ce4c5f3e"
150+
location = var.region
151+
152+
identity {
153+
type = "UserAssigned"
154+
identity_ids = [module.arc_monitor_policy_identity[0].id]
155+
}
156+
}
157+
140158
# Remediation tasks — re-evaluate compliance and deploy AMA/DCR association on
141159
# any non-compliant Arc machines each time Terraform applies. Combined with the
142160
# DeployIfNotExists effect, this makes the monitoring setup self-healing.
143161
resource "azurerm_resource_group_policy_remediation" "ama_install" {
144162
count = var.enable_arc_servers ? 1 : 0
145163

146-
name = "remediation-ama-install-${var.env_config}"
147-
resource_group_id = data.azurerm_resource_group.arc_enabled_servers[0].id
148-
policy_assignment_id = azurerm_resource_group_policy_assignment.ama_install[0].id
164+
name = "remediation-ama-install-${var.env_config}"
165+
resource_group_id = data.azurerm_resource_group.arc_enabled_servers[0].id
166+
policy_assignment_id = azurerm_resource_group_policy_assignment.ama_install[0].id
149167
resource_discovery_mode = "ReEvaluateCompliance"
150168
}
151169

152170
resource "azurerm_resource_group_policy_remediation" "dcr_association" {
153171
count = var.enable_arc_servers ? 1 : 0
154172

155-
name = "remediation-dcr-assoc-${var.env_config}"
156-
resource_group_id = data.azurerm_resource_group.arc_enabled_servers[0].id
157-
policy_assignment_id = azurerm_resource_group_policy_assignment.dcr_association[0].id
173+
name = "remediation-dcr-assoc-${var.env_config}"
174+
resource_group_id = data.azurerm_resource_group.arc_enabled_servers[0].id
175+
policy_assignment_id = azurerm_resource_group_policy_assignment.dcr_association[0].id
176+
resource_discovery_mode = "ReEvaluateCompliance"
177+
}
178+
179+
resource "azurerm_resource_group_policy_remediation" "wac" {
180+
count = var.enable_arc_servers ? 1 : 0
181+
182+
name = "remediation-wac-${var.env_config}"
183+
resource_group_id = data.azurerm_resource_group.arc_enabled_servers[0].id
184+
policy_assignment_id = azurerm_resource_group_policy_assignment.wac[0].id
158185
resource_discovery_mode = "ReEvaluateCompliance"
159186
}

0 commit comments

Comments
 (0)