You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -155,17 +227,24 @@ Any updates should be made to the `inputs.yaml` and run the ALZ powershell & rer
155
227
156
228
There is no validation done to ensure subnets fall within the hub network CIDR or that subnets do not overlap. These issues will be uncovered during apply.
157
229
158
-
### Unable to Build Authorizer for Resource Manager API
159
-
160
-
It is necessary to rerun `az login` after creating subscriptions for terraform to pick up that they exist.
161
-
162
-
### Unable to Update Address Prefixes
230
+
### Unable to update the bastion subnet
163
231
164
-
Updating the address prefix on either the hub network or subnets is not supported at this time.
232
+
Workaround:
233
+
Set deploy_bastion= false in inputs file
234
+
Run deployAccelerator command
235
+
Run .\scripts\deploy-local.ps1
236
+
Set deploy_bastion= true in inputs file, update AzureBastionSubnet address_prefix
237
+
Run deployAccelerator command
238
+
Run .\scripts\deploy-local.ps1
165
239
166
-
### Unable to Change Top Level or Sub Level Management Group Names
240
+
### Unable to update the firewall subnet
167
241
168
-
Modifying the Top Level or Sub Level Management Group name is not supported at this time.
242
+
Work around:
243
+
Set deploy_bastion= false and enable_firewall = false in inputs file
244
+
Run deployAccelerator command
245
+
Run .\scripts\deploy-local.ps1
246
+
Set deploy_bastion= true and enable_firewall = true in inputs file, update AzureFirewallSubnet address_prefix
247
+
Run deployAccelerator command
169
248
170
249
### Tags are Not Applied to All Resources
171
250
@@ -174,3 +253,58 @@ Certain resources are not receiving the default tags. This will be addressed in
174
253
### Default Compliance Score is not 100%
175
254
176
255
Certain resources will show as being out of compliance by default. This will be addressed in a future release.
256
+
257
+
## Notes about Policy Remediations
258
+
259
+
1. Policy Definition [migrateToMdeTvm](/providers/Microsoft.Authorization/policyDefinitions/766e621d-ba95-4e43-a6f2-e945db3d7888) will be excluded from remediation as customers must [enable MDFC](https://learn.microsoft.com/en-us/azure/defender-for-cloud/connect-azure-subscription?WT.mc_id=Portal-HubsExtension) on their subscriptions for this policy and then run remediation via Azure portal.
260
+
261
+
2. Log analytics polices deploy-diag-logscat, deploy-azactivity-log, and tr-01-logging(included with FSI) will be skipped for remediation until customer has set the log_analytics_workspace_resource_id(output after successful deployment of LZ) input and re-run deploy-accelerator/deploy-local.ps1.
262
+
263
+
3. Updating assignment policies or management group configuration will trigger recreation of azapi policy remediation resources -
264
+
Because customers have the option to include custom policies with built-in policy set definitions, and remediations require the policyReferenceId for policy definitions in policy sets, the policyReferenceId must be queried dynamically and due to Terraform's limitations on creating resources in a for_each, remediations will get recreated as the result of a workaround for allowing this dynamic query.
265
+
Remediation tasks will only be created if a policy is not in compliance.
266
+
267
+
There is an experimental feature that would allow the dynamic creation of resources in a for_each, but work on this is on-going.
268
+
269
+
## Notes running on non-global admin service principal
270
+
271
+
To deploy with lowered permissions using a service principal with "Owner" role assignment at the tenant root management group, set the following environment variable in powershell:
272
+
273
+
```powershell
274
+
$env:AZAPI_RETRY_GET_AFTER_PUT_MAX_TIME="30m"
275
+
```
276
+
277
+
## Notes on required permissions for optional security group creation
278
+
279
+
The following permissions are needed for [security group creation](https://registry.terraform.io/providers/hashicorp/azuread/latest/docs/resources/group#api-permissions)
280
+
281
+
Security group creation can be disabled by setting input `management_security_groups = []`. Also, security groups in management_security_groups are case-sensitive.
282
+
283
+
## Instructions for using custom policies and updating parameter values for ALZ or FSI policies
284
+
285
+
Custom policies can be added to the `lib` directory in the root of the starter module. Here is an example in the [AVM terraform-azurerm-avm-ptn-alz](https://github.com/Azure/terraform-azurerm-avm-ptn-alz/tree/main/examples/policy-assignment-modification-with-custom-lib/lib) repo.
286
+
287
+
NOTE - Customers can also include custom [policy set definition](https://github.com/Azure/Azure-Landing-Zones-Library/blob/main/platform/fsi/policy_set_definitions/SO-01-Data-Residency.alz_policy_set_definition.json) and
288
+
[policy definition](https://github.com/Azure/Azure-Landing-Zones-Library/blob/main/platform/alz/policy_definitions/Append-AppService-latestTLS.alz_policy_definition.json) ARM templates into the `lib` directory.
289
+
File names must contain the same format as in the given examples.
290
+
291
+
Customers can also update policy parameter values for ALZ or FSI policies by including an updated copy of the policy file in the `lib` directory. The new file will overwrite the existing policy file in the module. The new file must contain the same format as the original policy file.
292
+
293
+
## Instructions updating policy default values
294
+
295
+
In the starter module locals.tf, customers can update the fsi_policy_default_values for any of the parameters set in this [example](https://github.com/Azure/terraform-azurerm-avm-ptn-alz/blob/main/examples/management/main.tf#L43C4-L50).
296
+
297
+
```terraform
298
+
fsi_policy_default_values = {
299
+
fsi_policy_effect = jsonencode({ value = var.policy_effect })
300
+
allowed_locations_for_confidential_computing = jsonencode({ value = var.allowed_locations_for_confidential_computing })
301
+
allowed_locations = jsonencode({ value = var.allowed_locations })
302
+
ddos_protection_plan_id = jsonencode({ value = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/placeholder/providers/Microsoft.Network/ddosProtectionPlans/placeholder" })
Copy file name to clipboardexpand all lines: templates/microsoft_cloud_for_industry/financial_services_landing_zone/examples/bootstrap/inputs-azure-devops.yaml
0 commit comments