Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
af761ad
GH 1423 - Policy PaaS should Disable Public Access for Container Apps…
4pplied Oct 27, 2023
f91351f
Merge branch 'main' of https://github.com/Azure/Enterprise-Scale into…
Springstone Nov 16, 2023
546318d
Updating Portal Accelerator MDFC VM Vulnerability Assessment to use m…
Springstone Nov 20, 2023
d19a8c2
Update vulnerability assessment provider to mdeTvm
Springstone Nov 20, 2023
4e816fe
Merge branch 'main' of https://github.com/Azure/Enterprise-Scale into…
Springstone Dec 6, 2023
f066f9b
New assignment
Springstone Dec 6, 2023
8bca6e6
Doc updates
Springstone Dec 6, 2023
f5c6aa6
Doh
Springstone Dec 6, 2023
4b893b1
Auto-update Portal experience [Springstone/4e816fe4]
github-actions[bot] Dec 6, 2023
149b7e0
Merge branch 'ZoneResilience' of https://github.com/Springstone/Enter…
Springstone Dec 6, 2023
40af2ba
Excel update
Springstone Dec 6, 2023
a9ba97c
Merge branch 'Springstone-ZoneResilience' into policy-refresh-q2fy24
Springstone Dec 6, 2023
2f95324
Initial commit
Springstone Dec 6, 2023
81509ed
Merge branch 'policy-refresh-q3fy24' of https://github.com/Azure/Ente…
Springstone Mar 12, 2024
0396a45
Fix display name typo and add backup policies
Springstone Mar 12, 2024
64e3bb0
Update policy set definitions versions, add ASR to PublicPaas and add…
Springstone Mar 12, 2024
2de93f0
Add Enforce-Backup policy set definition
Springstone Mar 12, 2024
86ceaa7
Add enforceBackup option to ESLZ portal configuration
Springstone Mar 12, 2024
f6bbaaf
What's New update for new Azure policies for backup and recovery serv…
Springstone Mar 12, 2024
8a60e16
Add Policy Refresh Q3 FY24 to Updates section
Springstone Mar 12, 2024
2ee5a7a
Add Enforce-Backup initiative and default assignment to Landing Zones…
Springstone Mar 12, 2024
54b719f
Refactor code to improve performance and readability
Springstone Mar 12, 2024
fd65c7e
Update display name for Azure Recovery Services guardrails
Springstone Mar 12, 2024
f067636
Add nonComplianceMessages to ENFORCE-BackupPolicyAssignment.json
Springstone Mar 12, 2024
eba8c7c
Fix typo in Enforce-Backup.json
Springstone Mar 12, 2024
e5ddbe5
Fix typo in Enforce-Backup.json policy set definition
Springstone Mar 12, 2024
9621f56
Update Enforce-Backup policy assignment name
Springstone Mar 12, 2024
2d99f05
Merge branch 'Azure:main' into BackupInitiative
Springstone Mar 13, 2024
63b589a
.
Springstone Mar 13, 2024
d85090a
Merge branch 'BackupInitiative' of https://github.com/Springstone/Ent…
Springstone Mar 13, 2024
ddbadf6
Merge branch 'policy-refresh-q3fy24' of https://github.com/Azure/Ente…
Springstone Mar 13, 2024
b192ba0
Update ALZ Policy Assignments v2.xlsx
Springstone Mar 13, 2024
bf187ea
Auto-update Portal experience [Springstone/805f5370]
github-actions[bot] Mar 13, 2024
26c3d50
Correct initiative version.
Springstone Mar 15, 2024
44669fb
Auto-update Portal experience [Springstone/805f5370]
github-actions[bot] Mar 15, 2024
48b0339
Merge branch 'policy-refresh-q3fy24' of https://github.com/Azure/Ente…
Springstone Mar 19, 2024
0de2f41
Auto-update Portal experience [Springstone/360f0a2f]
github-actions[bot] Mar 19, 2024
f34c95f
Add soft delete policy for Recovery Services Vaults
Springstone Mar 19, 2024
6b6ffc9
Merge branch 'BackupInitiative' of https://github.com/Springstone/Ent…
Springstone Mar 19, 2024
b6b4d7b
Auto-update Portal experience [Springstone/360f0a2f]
github-actions[bot] Mar 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/wiki/ALZ-Policies.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ The subsequent sections will provide a summary of policy sets and policy set def

> **NOTE**: Although the below sections will define which policy definitions/sets are applied at specific scopes, please remember that policy will inherit within your management group hierarchy.

> <a href=./media/ALZ%20Policy%20Assignments%20v2.xlsx><img src=./media/ef73.jpg width=64 height=64 align=center></a> For convenience, an Excel version of the below information is available [here](./media/ALZ%20Policy%20Assignments%20v2.xlsx) or click the icon (last updated April 2023).
> <a href=./media/ALZ%20Policy%20Assignments%20v2.xlsx><img src=./media/ef73.jpg width=64 height=64 align=center></a> For convenience, an Excel version of the below information is available [here](./media/ALZ%20Policy%20Assignments%20v2.xlsx) or click the icon (last updated December 2023).

### Intermediate Root

Expand All @@ -67,7 +67,7 @@ This management group is a parent to all the other management groups created wit

| **Policy Type** | **Count** |
| :--- | :---: |
| `Policy Definition Sets` | **10** |
| `Policy Definition Sets` | **11** |
| `Policy Definitions` | **2** |
</td></tr> </table>

Expand All @@ -88,7 +88,7 @@ The table below provides the specific **Custom** and **Built-in** **policy defin
| **Audit-UnusedResourcesCostOptimization** | **Audit-UnusedResourcesCostOptimization** | `Policy Definition Set`, **Custom** | Optimize cost by detecting unused but chargeable resources. Leverage this Azure Policy Initiative as a cost control tool to reveal orphaned resources that are contributing cost. | Audit |
| **Deny Virtual Machines and Virtual Machine Scale Sets from not using OS Managed Disks** | **Deny Virtual Machines and Virtual Machine Scale Sets from not using OS Managed Disks** | `Policy Definition`, **Built-In** | Deny virtual machines not using managed disk. It checks the managedDisk property on virtual machine OS Disk fields. | Deny |
| **Deploy Azure Monitor Baseline Alerts for Service Health** | **Deploy Azure Monitor Baseline Alerts for Service Health** | `Policy Definition Set`, **Custom** | Deploys service health alerts, action group and alert processing rule. For more detail on policies included please refer to https://aka.ms/amba/alz/wiki under Policy Initiatives/Service Health initiative. | DeployIfNotExists |

| **Resources should be Zone Resilient** | **Resources should be Zone Resilient** | `Policy Definition Set`, **Built-in** | Some resource types can be deployed Zone Redundant (e.g. SQL Databases); some can be deploy Zone Aligned (e.g. Virtual Machines); and some can be deployed either Zone Aligned or Zone Redundant (e.g. Virtual Machine Scale Sets). Being zone aligned does not guarantee resilience, but it is the foundation on which a resilient solution can be built (e.g. three Virtual Machine Scale Sets zone aligned to three different zones in the same region with a load balancer). See https://aka.ms/AZResilience for more info. | Audit |

### Platform

Expand Down
8 changes: 7 additions & 1 deletion docs/wiki/Whats-new.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## In this Section

- [Updates](#updates)
- [December 2023](#december-2023)
- [November 2023](#november-2023)
- [October 2023](#october-2023)
- [September 2023](#september-2023)
Expand All @@ -12,7 +13,6 @@
- [March 2023](#march-2023)
- [February 2023](#february-2023)
- [January 2023](#january-2023)
- [December 2022](#december-2022)
- [Previous Updates](#november-2022)

---
Expand Down Expand Up @@ -40,6 +40,12 @@ This article will be updated as and when changes are made to the above and anyth

Here's what's changed in Enterprise Scale/Azure Landing Zones:

### December 2023

#### Policy

- Added new initiative default assignment at the Intermediate Root Management Group for [Resources should be Zone Resilient](https://www.azadvertizer.net/azpolicyinitiativesadvertizer/130fb88f-0fc9-4678-bfe1-31022d71c7d5.html) in Audit mode.

### November 2023

#### Tooling
Expand Down
Binary file modified docs/wiki/media/ALZ Policy Assignments v2.xlsx
Binary file not shown.
26 changes: 26 additions & 0 deletions eslzArm/eslzArm.json
Original file line number Diff line number Diff line change
Expand Up @@ -940,6 +940,7 @@
"classicResourcesPolicyAssignment": "[uri(deployment().properties.templateLink.uri, 'managementGroupTemplates/policyAssignments/DENY-ClassicResourceTypesPolicyAssignment.json')]",
"govMdfcPolicyAssignment": "[uri(deployment().properties.templateLink.uri, 'managementGroupTemplates/policyAssignments/gov/fairfaxDINE-MDFCConfigPolicyAssignment.json')]",
"costOptimizationPolicyInitiative": "[uri(deployment().properties.templateLink.uri, 'managementGroupTemplates/policyAssignments/AUDIT-UnusedResourcesPolicyAssignment.json')]",
"zoneResilientPolicyInitiative": "[uri(deployment().properties.templateLink.uri, 'managementGroupTemplates/policyAssignments/AUDIT-ZoneResilientPolicyAssignment.json')]",
"VMUnmanagedDiskPolicyAssignment": "[uri(deployment().properties.templateLink.uri, 'managementGroupTemplates/policyAssignments/DENY-VMUnmanagedDiskPolicyAssignment.json')]",
"diagnosticSettingsforManagementGroups": "[uri(deployment().properties.templateLink.uri, 'managementGroupTemplates/diagSettingsMGs/diagSettingsMGs.json')]",
// references to https://github.com/Azure/azure-monitor-baseline-alerts
Expand Down Expand Up @@ -1024,6 +1025,7 @@
"pidCuaDeploymentName": "[take(concat('pid-', variables('cuaid'), '-' , uniqueString(deployment().location, parameters('enterpriseScaleCompanyPrefix'), parameters('currentDateTimeUtcNow'))), 64)]",
"denyClassicResourcePolicyDeploymentName": "[take(concat('alz-NoClassicResource', variables('deploymentSuffix')), 64)]",
"costOptimizationDeploymentName": "[take(concat('alz-CostOptimization', variables('deploymentSuffix')), 64)]",
"zoneResilientDeploymentName": "[take(concat('alz-ZoneResilient', variables('deploymentSuffix')), 64)]",
"denyVMUnmanagedDiskPolicyDeploymentName": "[take(concat('alz-NoUnmanagedDiskResource', variables('deploymentSuffix')), 64)]",
"ztnPhase1PidCuaDeploymentName": "[take(concat('pid-', variables('ztnPhase1CuaId'), '-' , uniqueString(deployment().location, parameters('enterpriseScaleCompanyPrefix'), parameters('currentDateTimeUtcNow'), coalesce(parameters('connectivitySubscriptionId'), parameters('singlePlatformSubscriptionId'))), '-ztnp1'), 64)]",
"ambaPortalPidCuaDeploymentName": "[take(concat('pid-', variables('ambaPortalCuaId'), '-' , uniqueString(deployment().location, parameters('enterpriseScaleCompanyPrefix'), parameters('currentDateTimeUtcNow'), coalesce(parameters('connectivitySubscriptionId'), parameters('singlePlatformSubscriptionId'))), '-ztnp1'), 64)]",
Expand Down Expand Up @@ -1851,6 +1853,30 @@
}
}
},
{
// Assigning Zone Resilient policy initiative to intermediate root management group
"condition": "[or(not(empty(parameters('managementSubscriptionId'))), not(empty(parameters('singlePlatformSubscriptionId'))))]",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "[variables('deploymentNames').zoneResilientDeploymentName]",
"scope": "[variables('scopes').eslzRootManagementGroup]",
"location": "[deployment().location]",
"dependsOn": [
"policyCompletion"
],
"properties": {
"mode": "Incremental",
"templateLink": {
"contentVersion": "1.0.0.0",
"uri": "[variables('deploymentUris').zoneResilientPolicyInitiative]"
},
"parameters": {
"enforcementMode": {
"value": "Default"
}
}
}
},
{
// Assigning Azure Security Center configuration policy initiative to intermediate root management group if condition is true
"condition": "[and(or(not(empty(parameters('managementSubscriptionId'))), not(empty(parameters('singlePlatformSubscriptionId')))), equals(parameters('enableAsc'), 'Yes'), equals(environment().resourceManager, 'https://management.azure.com/'))]",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"effect": {
"type": "string",
"allowedValues": [
"Deny",
"Audit",
"Disabled"
],
"defaultValue": "Audit"
},
"allow": {
"type": "string",
"allowedValues": [
"Both",
"Redundant",
"Aligned"
],
"defaultValue": "Both"
},
"enforcementMode": {
"type": "string",
"allowedValues": [
"Default",
"DoNotEnforce"
],
"defaultValue": "Default"
},
"nonComplianceMessagePlaceholder": {
"type": "string",
"defaultValue": "{enforcementMode}"
}
},
"variables": {
"policyDefinitions": {
"auditZR": "/providers/Microsoft.Authorization/policySetDefinitions/130fb88f-0fc9-4678-bfe1-31022d71c7d5"
},
"policyAssignmentNames": {
"auditZR": "Audit-ZoneResiliency",
"description": "Resources should be Zone Resilient.",
"displayName": "Resources should be Zone Resilient"
},
"nonComplianceMessage": {
"message": "Resources {enforcementMode} be Zone Resilient.",
"Default": "must",
"DoNotEnforce": "should"
}
},
"resources": [
{
"type": "Microsoft.Authorization/policyAssignments",
"apiVersion": "2022-06-01",
"name": "[variables('policyAssignmentNames').auditZR]",
"properties": {
"description": "[variables('policyAssignmentNames').description]",
"displayName": "[variables('policyAssignmentNames').displayName]",
"policyDefinitionId": "[variables('policyDefinitions').auditZR]",
"enforcementMode": "[parameters('enforcementMode')]",
"nonComplianceMessages": [
{
"message": "[replace(variables('nonComplianceMessage').message, parameters('nonComplianceMessagePlaceholder'), variables('nonComplianceMessage')[parameters('enforcementMode')])]"
}
],
"parameters": {
"effect": {
"value": "[parameters('effect')]"
},
"allow": {
"value": "[parameters('allow')]"
}
}
}
}
],
"outputs": {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.22.6.54827",
"templateHash": "15169873397635083079"
"version": "0.23.1.45101",
"templateHash": "10333627625984546269"
}
},
"parameters": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.22.6.54827",
"templateHash": "9695945313327552588"
"version": "0.23.1.45101",
"templateHash": "191901335711845632"
}
},
"variables": {
Expand Down