From c6108ae14b7130a842e0852538ab30555f21bd1a Mon Sep 17 00:00:00 2001 From: ishita-malik1 <69841819+ishita-malik1@users.noreply.github.com> Date: Wed, 4 May 2022 23:37:28 +0530 Subject: [PATCH 01/28] Update settings.json --- settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.json b/settings.json index a25371a5d3..4828a3783a 100644 --- a/settings.json +++ b/settings.json @@ -5,7 +5,7 @@ "localTokens": [ { "name": "namePrefix", - "value": "carml", + "value": "malik", "metadata": { "description": "A 3-5 character length string, included in the resources names" } From cf11e478781b3d969ce5b78522f04e99f6779401 Mon Sep 17 00:00:00 2001 From: ishita-malik1 <69841819+ishita-malik1@users.noreply.github.com> Date: Wed, 4 May 2022 23:51:45 +0530 Subject: [PATCH 02/28] Update global.variables.yml --- global.variables.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.variables.yml b/global.variables.yml index 7fed8d13f9..fc25157b75 100644 --- a/global.variables.yml +++ b/global.variables.yml @@ -7,7 +7,7 @@ variables: # Validation deployment settings ###################################### - location: 'West Europe' # The default location to test deploy resources to + location: 'WestEurope' # The default location to test deploy resources to resourceGroupName: 'validation-rg' # The default resource group to test deployment resources into ###################################### From a59f0d4e118a4f12cf186d9f45909b07c3101a64 Mon Sep 17 00:00:00 2001 From: ishita-malik1 <69841819+ishita-malik1@users.noreply.github.com> Date: Thu, 5 May 2022 10:32:40 +0530 Subject: [PATCH 03/28] Update global.variables.yml --- global.variables.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/global.variables.yml b/global.variables.yml index fc25157b75..bb4f48d171 100644 --- a/global.variables.yml +++ b/global.variables.yml @@ -16,15 +16,15 @@ variables: templateSpecsDoPublish: true # Set to true, if you would like to publish module templates as template specs templateSpecsRGName: 'artifacts-rg' # The name of the resource group to publish to. If the resource group does not exist, it will be created. - templateSpecsRGLocation: 'West Europe' # The location of the resource group to publish to - templateSpecsDescription: components # The description to add to template specs published by this platform + templateSpecsRGLocation: 'WestEurope' # The location of the resource group to publish to + templateSpecsDescription: 'modules from CARML' # The description to add to template specs published by this platform ###################################### # Publish: Private Bicep Registry settings ###################################### bicepRegistryDoPublish: true # Set to true, if you would like to publish module templates to a bicep registry - bicepRegistryName: adpsxxazacrx001 # The name of the bicep registry (ACR) to publish to. If it does not exist, it will be created. + bicepRegistryName: adpismalik001 # The name of the bicep registry (ACR) to publish to. If it does not exist, it will be created. bicepRegistryRGName: 'artifacts-rg' # The resource group that hosts the private bicep registry (ACR) bicepRegistryRgLocation: 'West Europe' # The location of the resource group to publish to @@ -53,7 +53,7 @@ variables: # Publish: Universal packages settings ###################################### - artifactsFeedDoPublish: true # Set to true, if you would like to publish modules as Universal Packages (in Azure DevOps Artifacts) + artifactsFeedDoPublish: false # Set to true, if you would like to publish modules as Universal Packages (in Azure DevOps Artifacts) vstsFeedName: 'ResourceModules' # The name of the Azure DevOps universal packages feed to publish to vstsFeedProject: '$(System.TeamProject)' # The project that hosts the feed vstsFeedToken: $(System.AccessToken) # The token used to publish universal packages into the feed above From e6af402377a8fdb5dcb0a6cba50b59773215a027 Mon Sep 17 00:00:00 2001 From: ishita-malik1 <69841819+ishita-malik1@users.noreply.github.com> Date: Thu, 5 May 2022 11:53:49 +0530 Subject: [PATCH 04/28] Update parameters.json --- .../Microsoft.KeyVault/vaults/parameters/parameters.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json b/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json index 738780db98..d41c896009 100644 --- a/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json +++ b/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json @@ -9,7 +9,7 @@ "value": [ { "tenantId": "<>", - "objectId": "bab643ad-2988-4560-9f2b-c8282ba345f0", // Backup Management Service needs access to back up the keys and secrets, along with the associated VMs + "objectId": "5aaf472e-e998-4c1c-9f75-e0bdd0a58630", // Backup Management Service needs access to back up the keys and secrets, along with the associated VMs "permissions": { "keys": [ "Get", From 3ade47e9b929395f7d9a39a3cbc12a9e71bcc0d9 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 15:46:53 +0530 Subject: [PATCH 05/28] Add private endpoint param and capability to RSV module. --- .../workflows/ms.recoveryservices.vaults.yml | 1 + .../vaults/.parameters/parameters.json | 492 +++++++-------- .../vaults/deploy.bicep | 23 + .../vaults/readme.md | 581 ++++++++++-------- 4 files changed, 559 insertions(+), 538 deletions(-) diff --git a/.github/workflows/ms.recoveryservices.vaults.yml b/.github/workflows/ms.recoveryservices.vaults.yml index 15e09441c3..65cd7214fe 100644 --- a/.github/workflows/ms.recoveryservices.vaults.yml +++ b/.github/workflows/ms.recoveryservices.vaults.yml @@ -16,6 +16,7 @@ on: push: branches: - main + - ismalik/recoveryServicesVaults_addPrivateEndpoint paths: - '.github/actions/templates/**' - '.github/workflows/ms.recoveryservices.vaults.yml' diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 67f01a8bb6..6a3abc6e2c 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -2,288 +2,242 @@ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { - "name": { - "value": "<>-az-rsv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backupConfig": { - "value": { - "enhancedSecurityState": "Disabled", - "softDeleteFeatureState": "Disabled" + "name": { + "value": "<>-az-rsv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "backupConfig": { + "value": { + "enhancedSecurityState": "Disabled", + "softDeleteFeatureState": "Disabled" + } + }, + "backupPolicies": { + "value": [ + { + "name": "VMpolicy", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRPDetails": {}, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T07:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 180, + "durationType": "Days" + } + }, + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + } + }, + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 60, + "durationType": "Months" + } + }, + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 10, + "durationType": "Years" + } + } + }, + "instantRpRetentionRangeInDays": 2, + "timeZone": "UTC", + "protectedItemsCount": 0 } - }, - "backupPolicies": { - "value": [ + }, + { + "name": "sqlpolicy", + "properties": { + "backupManagementType": "AzureWorkload", + "workLoadType": "SQLDataBase", + "settings": { + "timeZone": "UTC", + "issqlcompression": true, + "isCompression": true + }, + "subProtectionPolicy": [ { - "name": "VMpolicy", - "properties": { - "backupManagementType": "AzureIaasVM", - "instantRPDetails": {}, - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2019-11-07T07:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 180, - "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": [ - "January" - ], - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - }, - "instantRpRetentionRangeInDays": 2, - "timeZone": "UTC", - "protectedItemsCount": 0 + "policyType": "Full", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Sunday"], + "scheduleRunTimes": ["2019-11-07T22:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 104, + "durationType": "Weeks" + } + }, + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 60, + "durationType": "Months" + } + }, + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 10, + "durationType": "Years" + } } + } }, { - "name": "sqlpolicy", - "properties": { - "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", - "settings": { - "timeZone": "UTC", - "issqlcompression": true, - "isCompression": true - }, - "subProtectionPolicy": [ - { - "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Sunday" - ], - "scheduleRunTimes": [ - "2019-11-07T22:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 104, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": [ - "January" - ], - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - } - }, - { - "policyType": "Differential", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Monday" - ], - "scheduleRunTimes": [ - "2017-03-07T02:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - { - "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 120 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 15, - "durationType": "Days" - } - } - } - ], - "protectedItemsCount": 0 + "policyType": "Differential", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Monday"], + "scheduleRunTimes": ["2017-03-07T02:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", + "retentionDuration": { + "count": 30, + "durationType": "Days" } + } }, { - "name": "filesharepolicy", - "properties": { - "backupManagementType": "AzureStorage", - "workloadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2019-11-07T04:30:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2019-11-07T04:30:00Z" - ], - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - "timeZone": "UTC", - "protectedItemsCount": 0 + "policyType": "Log", + "schedulePolicy": { + "schedulePolicyType": "LogSchedulePolicy", + "scheduleFrequencyInMins": 120 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", + "retentionDuration": { + "count": 15, + "durationType": "Days" } + } } - ] - }, - "backupStorageConfig": { - "value": { - "storageModelType": "GeoRedundant", - "crossRegionRestoreFlag": true + ], + "protectedItemsCount": 0 } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] + }, + { + "name": "filesharepolicy", + "properties": { + "backupManagementType": "AzureStorage", + "workloadType": "AzureFileShare", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T04:30:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T04:30:00Z"], + "retentionDuration": { + "count": 30, + "durationType": "Days" + } } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + }, + "timeZone": "UTC", + "protectedItemsCount": 0 } + } + ] + }, + "backupStorageConfig": { + "value": { + "storageModelType": "GeoRedundant", + "crossRegionRestoreFlag": true + } + }, + "privateEndpoints": { + "value": [ + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "vault" + } + ] + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": ["<>"] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } + } } } diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index bf14eeb3cb..81cc3f8193 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -110,6 +110,9 @@ param diagnosticMetricsToEnable array = [ @description('Optional. The name of the diagnostic setting, if deployed.') param diagnosticSettingsName string = '${name}-diagnosticSettings' +@description('Optional. Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible.') +param privateEndpoints array = [] + var diagnosticsLogs = [for category in diagnosticLogCategoriesToEnable: { category: category enabled: true @@ -261,6 +264,26 @@ resource rsv_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-0 scope: rsv } +module rsv_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { + name: '${uniqueString(deployment().name, location)}-RSV-PrivateEndpoint-${index}' + params: { + groupIds: [ + privateEndpoint.service + ] + name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(rsv.id, '/'))}-${privateEndpoint.service}-${index}' + serviceResourceId: rsv.id + subnetResourceId: privateEndpoint.subnetResourceId + enableDefaultTelemetry: enableReferencedModulesTelemetry + location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock + privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] + roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] + tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} + manualPrivateLinkServiceConnections: contains(privateEndpoint, 'manualPrivateLinkServiceConnections') ? privateEndpoint.manualPrivateLinkServiceConnections : [] + customDnsConfigs: contains(privateEndpoint, 'customDnsConfigs') ? privateEndpoint.customDnsConfigs : [] + } +}] + module rsv_roleAssignments '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-RSV-Rbac-${index}' params: { diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 22f06d96eb..759afbfe7f 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -16,6 +16,8 @@ This module deploys a recovery service vault. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | +| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | +| `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | | `Microsoft.RecoveryServices/vaults` | [2022-02-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-02-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | @@ -51,6 +53,7 @@ This module deploys a recovery service vault. | `enableDefaultTelemetry` | bool | `True` | | Enable telemetry via the Customer Usage Attribution ID (GUID). | | `location` | string | `[resourceGroup().location]` | | Location for all resources. | | `lock` | string | `''` | `[, CanNotDelete, ReadOnly]` | Specify the type of lock. | +| `privateEndpoints` | array | `[]` | | Configuration Details for private endpoints. For security reasons, it is recommended to use private endpoints whenever possible. | | `protectionContainers` | _[protectionContainers](protectionContainers/readme.md)_ array | `[]` | | List of all protection containers. | | `replicationFabrics` | _[replicationFabrics](replicationFabrics/readme.md)_ array | `[]` | | List of all replication fabrics. | | `replicationPolicies` | _[replicationPolicies](replicationPolicies/readme.md)_ array | `[]` | | List of all replication policies. | @@ -801,6 +804,83 @@ userAssignedIdentities: {

+### Parameter Usage: `privateEndpoints` + +To use Private Endpoint the following dependencies must be deployed: + +- Destination subnet must be created with the following configuration option - `"privateEndpointNetworkPolicies": "Disabled"`. Setting this option acknowledges that NSG rules are not applied to Private Endpoints (this capability is coming soon). A full example is available in the Virtual Network Module. +- Although not strictly required, it is highly recommended to first create a private DNS Zone to host Private Endpoint DNS records. See [Azure Private Endpoint DNS configuration](https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-dns) for more information. + +

+ +Parameter JSON format + +```json +"privateEndpoints": { + "value": [ + // Example showing all available fields + { + "name": "sxx-az-pe", // Optional: Name will be automatically generated if one is not provided here + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001", + "service": "<>", // e.g. vault, registry, file, blob, queue, table etc. + "privateDnsZoneResourceIds": [ // Optional: No DNS record will be created if a private DNS zone Resource ID is not specified + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net" + ], + "customDnsConfigs": [ // Optional + { + "fqdn": "customname.test.local", + "ipAddresses": [ + "10.10.10.10" + ] + } + ] + }, + // Example showing only mandatory fields + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001", + "service": "<>" // e.g. vault, registry, file, blob, queue, table etc. + } + ] +} +``` + +
+ +
+ +Bicep format + +```bicep +privateEndpoints: [ + // Example showing all available fields + { + name: 'sxx-az-pe' // Optional: Name will be automatically generated if one is not provided here + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001' + service: '<>' // e.g. vault registry file blob queue table etc. + privateDnsZoneResourceIds: [ // Optional: No DNS record will be created if a private DNS zone Resource ID is not specified + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net' + ] + // Optional + customDnsConfigs: [ + { + fqdn: 'customname.test.local' + ipAddresses: [ + '10.10.10.10' + ] + } + ] + } + // Example showing only mandatory fields + { + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/sxx-az-vnet-x-001/subnets/sxx-az-subnet-x-001' + service: '<>' // e.g. vault registry file blob queue table etc. + } +] +``` + +
+

+ ## Outputs | Output Name | Type | Description | @@ -888,6 +968,7 @@ userAssignedIdentities: { } } } + ``` @@ -979,6 +1060,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { } } } + ``` @@ -1010,291 +1092,246 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { - "name": { - "value": "<>-az-rsv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backupConfig": { - "value": { - "enhancedSecurityState": "Disabled", - "softDeleteFeatureState": "Disabled" + "name": { + "value": "<>-az-rsv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "backupConfig": { + "value": { + "enhancedSecurityState": "Disabled", + "softDeleteFeatureState": "Disabled" + } + }, + "backupPolicies": { + "value": [ + { + "name": "VMpolicy", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRPDetails": {}, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T07:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 180, + "durationType": "Days" + } + }, + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + } + }, + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 60, + "durationType": "Months" + } + }, + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 10, + "durationType": "Years" + } + } + }, + "instantRpRetentionRangeInDays": 2, + "timeZone": "UTC", + "protectedItemsCount": 0 } - }, - "backupPolicies": { - "value": [ + }, + { + "name": "sqlpolicy", + "properties": { + "backupManagementType": "AzureWorkload", + "workLoadType": "SQLDataBase", + "settings": { + "timeZone": "UTC", + "issqlcompression": true, + "isCompression": true + }, + "subProtectionPolicy": [ { - "name": "VMpolicy", - "properties": { - "backupManagementType": "AzureIaasVM", - "instantRPDetails": {}, - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2019-11-07T07:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 180, - "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": [ - "January" - ], - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T07:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - }, - "instantRpRetentionRangeInDays": 2, - "timeZone": "UTC", - "protectedItemsCount": 0 + "policyType": "Full", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Sunday"], + "scheduleRunTimes": ["2019-11-07T22:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 104, + "durationType": "Weeks" + } + }, + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 60, + "durationType": "Months" + } + }, + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 10, + "durationType": "Years" + } } + } }, { - "name": "sqlpolicy", - "properties": { - "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", - "settings": { - "timeZone": "UTC", - "issqlcompression": true, - "isCompression": true - }, - "subProtectionPolicy": [ - { - "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Sunday" - ], - "scheduleRunTimes": [ - "2019-11-07T22:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 104, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": [ - "January" - ], - "retentionScheduleWeekly": { - "daysOfTheWeek": [ - "Sunday" - ], - "weeksOfTheMonth": [ - "First" - ] - }, - "retentionTimes": [ - "2019-11-07T22:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - } - }, - { - "policyType": "Differential", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Monday" - ], - "scheduleRunTimes": [ - "2017-03-07T02:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - { - "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 120 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 15, - "durationType": "Days" - } - } - } - ], - "protectedItemsCount": 0 + "policyType": "Differential", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Monday"], + "scheduleRunTimes": ["2017-03-07T02:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", + "retentionDuration": { + "count": 30, + "durationType": "Days" } + } }, { - "name": "filesharepolicy", - "properties": { - "backupManagementType": "AzureStorage", - "workloadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2019-11-07T04:30:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2019-11-07T04:30:00Z" - ], - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - "timeZone": "UTC", - "protectedItemsCount": 0 + "policyType": "Log", + "schedulePolicy": { + "schedulePolicyType": "LogSchedulePolicy", + "scheduleFrequencyInMins": 120 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", + "retentionDuration": { + "count": 15, + "durationType": "Days" } + } } - ] - }, - "backupStorageConfig": { - "value": { - "storageModelType": "GeoRedundant", - "crossRegionRestoreFlag": true + ], + "protectedItemsCount": 0 } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] + }, + { + "name": "filesharepolicy", + "properties": { + "backupManagementType": "AzureStorage", + "workloadType": "AzureFileShare", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T04:30:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T04:30:00Z"], + "retentionDuration": { + "count": 30, + "durationType": "Days" + } } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + }, + "timeZone": "UTC", + "protectedItemsCount": 0 } + } + ] + }, + "backupStorageConfig": { + "value": { + "storageModelType": "GeoRedundant", + "crossRegionRestoreFlag": true + } + }, + "privateEndpoints": { + "value": [ + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "vault" + } + ] + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": ["<>"] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } + } } } + ``` @@ -1547,6 +1584,12 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { storageModelType: 'GeoRedundant' crossRegionRestoreFlag: true } + privateEndpoints: [ + { + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + service: 'vault' + } + ] roleAssignments: [ { roleDefinitionIdOrName: 'Reader' From 81c648fdd6c06f44c618c0db078c2b9845ae14a0 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 15:59:40 +0530 Subject: [PATCH 06/28] Update readme of RSV. --- arm/Microsoft.RecoveryServices/vaults/readme.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 759afbfe7f..2e2729cdbb 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -968,7 +968,6 @@ privateEndpoints: [ } } } - ``` @@ -1060,7 +1059,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { } } } - ``` @@ -1331,7 +1329,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { } } } - ``` From 1ccae7c2f3ebb9c8965fb580707e86accc9b51a4 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 16:12:36 +0530 Subject: [PATCH 07/28] Update PE service for RSV and readme. --- .../vaults/.parameters/parameters.json | 2 +- arm/Microsoft.RecoveryServices/vaults/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 6a3abc6e2c..740fcaa8ff 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -204,7 +204,7 @@ "value": [ { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "vault" + "service": "AzureBackup" } ] }, diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 2e2729cdbb..594d1fc470 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -1292,7 +1292,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { "value": [ { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "vault" + "service": "AzureBackup" } ] }, @@ -1584,7 +1584,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { privateEndpoints: [ { subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'vault' + service: 'AzureBackup' } ] roleAssignments: [ From ec4be4d387ac162e94d15c6443264744eb437ddc Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 16:27:32 +0530 Subject: [PATCH 08/28] Update PE service for RSV. --- .../vaults/.parameters/parameters.json | 2 +- arm/Microsoft.RecoveryServices/vaults/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 740fcaa8ff..329f3c8605 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -204,7 +204,7 @@ "value": [ { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureBackup" + "service": "AzureSiteRecovery" } ] }, diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 594d1fc470..f5dcc5d300 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -1292,7 +1292,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { "value": [ { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureBackup" + "service": "AzureSiteRecovery" } ] }, @@ -1584,7 +1584,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { privateEndpoints: [ { subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'AzureBackup' + service: 'AzureSiteRecovery' } ] roleAssignments: [ From 0ab915491cd3a7546c4b9bb68c3a5ea8da15c725 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 17:01:44 +0530 Subject: [PATCH 09/28] Update RSV bicep. --- arm/Microsoft.RecoveryServices/vaults/deploy.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index 81cc3f8193..697b7be5f6 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -157,7 +157,7 @@ resource rsv 'Microsoft.RecoveryServices/vaults@2022-02-01' = { name: name location: location tags: tags - identity: any(identity) + identity: identity sku: { name: 'RS0' tier: 'Standard' From 7e578e95a382e23d8c40da7de136a027fa4e3441 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 17:28:28 +0530 Subject: [PATCH 10/28] Set systemAssignedIdentity to false. --- .../vaults/.parameters/parameters.json | 2 +- arm/Microsoft.RecoveryServices/vaults/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 329f3c8605..76185e883c 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -232,7 +232,7 @@ "value": "adp-<>-az-evh-x-001" }, "systemAssignedIdentity": { - "value": true + "value": false }, "userAssignedIdentities": { "value": { diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index f5dcc5d300..ac942b86fa 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -1320,7 +1320,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { "value": "adp-<>-az-evh-x-001" }, "systemAssignedIdentity": { - "value": true + "value": false }, "userAssignedIdentities": { "value": { @@ -1600,7 +1600,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' - systemAssignedIdentity: true + systemAssignedIdentity: false userAssignedIdentities: { '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } From 8753ece02b1a79f7362aef630ac7c83438be8d0d Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 17:47:40 +0530 Subject: [PATCH 11/28] Update identityType var, readme and switch systemAssignedIdentity to true. --- .../vaults/.parameters/parameters.json | 4 ++-- arm/Microsoft.RecoveryServices/vaults/deploy.bicep | 2 +- arm/Microsoft.RecoveryServices/vaults/readme.md | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 76185e883c..07c601ffcd 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -232,11 +232,11 @@ "value": "adp-<>-az-evh-x-001" }, "systemAssignedIdentity": { - "value": false + "value": true }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } } } diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index 697b7be5f6..758cc37c8e 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -132,7 +132,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] -var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') +var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned, UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') var identity = identityType != 'None' ? { type: identityType diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index ac942b86fa..20d7bcd670 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -1320,11 +1320,11 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { "value": "adp-<>-az-evh-x-001" }, "systemAssignedIdentity": { - "value": false + "value": true }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } } } @@ -1600,9 +1600,9 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' - systemAssignedIdentity: false + systemAssignedIdentity: true userAssignedIdentities: { - '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} } } } From f268655eccb53db89c754dd33c01d031f0276c41 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 18:16:00 +0530 Subject: [PATCH 12/28] Update RSV API and readme. --- arm/Microsoft.RecoveryServices/vaults/deploy.bicep | 2 +- arm/Microsoft.RecoveryServices/vaults/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index 758cc37c8e..278e8e263f 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -153,7 +153,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource rsv 'Microsoft.RecoveryServices/vaults@2022-02-01' = { +resource rsv 'Microsoft.RecoveryServices/vaults@2022-04-01' = { name: name location: location tags: tags diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 20d7bcd670..0d9e021b68 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -18,7 +18,7 @@ This module deploys a recovery service vault. | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | -| `Microsoft.RecoveryServices/vaults` | [2022-02-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-02-01/vaults) | +| `Microsoft.RecoveryServices/vaults` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-04-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2021-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-06-01/vaults/backupFabrics/protectionContainers/protectedItems) | From bf1861db3e3c49858e62f0e640993cf48578dc78 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 18:35:37 +0530 Subject: [PATCH 13/28] Remove PE for testing and update readme. --- .../vaults/deploy.bicep | 38 +++++++++---------- .../vaults/readme.md | 2 - 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index 278e8e263f..eee6a3f313 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -264,25 +264,25 @@ resource rsv_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-0 scope: rsv } -module rsv_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { - name: '${uniqueString(deployment().name, location)}-RSV-PrivateEndpoint-${index}' - params: { - groupIds: [ - privateEndpoint.service - ] - name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(rsv.id, '/'))}-${privateEndpoint.service}-${index}' - serviceResourceId: rsv.id - subnetResourceId: privateEndpoint.subnetResourceId - enableDefaultTelemetry: enableReferencedModulesTelemetry - location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location - lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock - privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] - roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] - tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} - manualPrivateLinkServiceConnections: contains(privateEndpoint, 'manualPrivateLinkServiceConnections') ? privateEndpoint.manualPrivateLinkServiceConnections : [] - customDnsConfigs: contains(privateEndpoint, 'customDnsConfigs') ? privateEndpoint.customDnsConfigs : [] - } -}] +// module rsv_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { +// name: '${uniqueString(deployment().name, location)}-RSV-PrivateEndpoint-${index}' +// params: { +// groupIds: [ +// privateEndpoint.service +// ] +// name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(rsv.id, '/'))}-${privateEndpoint.service}-${index}' +// serviceResourceId: rsv.id +// subnetResourceId: privateEndpoint.subnetResourceId +// enableDefaultTelemetry: enableReferencedModulesTelemetry +// location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location +// lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock +// privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] +// roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] +// tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} +// manualPrivateLinkServiceConnections: contains(privateEndpoint, 'manualPrivateLinkServiceConnections') ? privateEndpoint.manualPrivateLinkServiceConnections : [] +// customDnsConfigs: contains(privateEndpoint, 'customDnsConfigs') ? privateEndpoint.customDnsConfigs : [] +// } +// }] module rsv_roleAssignments '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-RSV-Rbac-${index}' diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index 0d9e021b68..b33215b3db 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -16,8 +16,6 @@ This module deploys a recovery service vault. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | -| `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | | `Microsoft.RecoveryServices/vaults` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-04-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | From b88445f8a53d865a4b4d5e280b621357daf35d05 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 19:32:07 +0530 Subject: [PATCH 14/28] Update API for RSV. --- arm/Microsoft.RecoveryServices/vaults/deploy.bicep | 4 ++-- arm/Microsoft.RecoveryServices/vaults/readme.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index eee6a3f313..6b0021a7eb 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -153,11 +153,11 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource rsv 'Microsoft.RecoveryServices/vaults@2022-04-01' = { +resource rsv 'Microsoft.RecoveryServices/vaults@2022-03-01' = { name: name location: location tags: tags - identity: identity + identity: any(identity) sku: { name: 'RS0' tier: 'Standard' diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index b33215b3db..cec395a8e9 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -16,7 +16,7 @@ This module deploys a recovery service vault. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.RecoveryServices/vaults` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-04-01/vaults) | +| `Microsoft.RecoveryServices/vaults` | [2022-03-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-03-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2021-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-06-01/vaults/backupFabrics/protectionContainers/protectedItems) | From 644f6008f9f6fd7bd74f233c868ec5f7468b3ff1 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 19:45:18 +0530 Subject: [PATCH 15/28] Remove user assigned manageed identity. --- .../vaults/.parameters/parameters.json | 5 ----- arm/Microsoft.RecoveryServices/vaults/readme.md | 8 -------- 2 files changed, 13 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 07c601ffcd..066bd6614a 100644 --- a/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/arm/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -233,11 +233,6 @@ }, "systemAssignedIdentity": { "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } } } } diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index cec395a8e9..bab2cae1db 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -1319,11 +1319,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { }, "systemAssignedIdentity": { "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } } } } @@ -1599,9 +1594,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true - userAssignedIdentities: { - '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} - } } } ``` From 089b87eefaae75981778c8c8ed4edcfaa2360106 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 19:47:00 +0530 Subject: [PATCH 16/28] Update RSV API. --- arm/Microsoft.RecoveryServices/vaults/deploy.bicep | 2 +- arm/Microsoft.RecoveryServices/vaults/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index 6b0021a7eb..47301f603e 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -153,7 +153,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource rsv 'Microsoft.RecoveryServices/vaults@2022-03-01' = { +resource rsv 'Microsoft.RecoveryServices/vaults@2022-04-01' = { name: name location: location tags: tags diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index bab2cae1db..ad588a86bd 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -16,7 +16,7 @@ This module deploys a recovery service vault. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | -| `Microsoft.RecoveryServices/vaults` | [2022-03-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-03-01/vaults) | +| `Microsoft.RecoveryServices/vaults` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-04-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2021-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-06-01/vaults/backupFabrics/protectionContainers/protectedItems) | From ccf5d2538384dfc9e89df7aad8a993e32902b87b Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 19:58:43 +0530 Subject: [PATCH 17/28] Uncomment PE implementation, update readme and remove trigger for topic branch. --- .../workflows/ms.recoveryservices.vaults.yml | 1 - .../vaults/deploy.bicep | 38 +++++++++---------- .../vaults/readme.md | 2 + 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ms.recoveryservices.vaults.yml b/.github/workflows/ms.recoveryservices.vaults.yml index 65cd7214fe..15e09441c3 100644 --- a/.github/workflows/ms.recoveryservices.vaults.yml +++ b/.github/workflows/ms.recoveryservices.vaults.yml @@ -16,7 +16,6 @@ on: push: branches: - main - - ismalik/recoveryServicesVaults_addPrivateEndpoint paths: - '.github/actions/templates/**' - '.github/workflows/ms.recoveryservices.vaults.yml' diff --git a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep index 47301f603e..fa012eaeba 100644 --- a/arm/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/arm/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -264,25 +264,25 @@ resource rsv_diagnosticSettings 'Microsoft.Insights/diagnosticSettings@2021-05-0 scope: rsv } -// module rsv_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { -// name: '${uniqueString(deployment().name, location)}-RSV-PrivateEndpoint-${index}' -// params: { -// groupIds: [ -// privateEndpoint.service -// ] -// name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(rsv.id, '/'))}-${privateEndpoint.service}-${index}' -// serviceResourceId: rsv.id -// subnetResourceId: privateEndpoint.subnetResourceId -// enableDefaultTelemetry: enableReferencedModulesTelemetry -// location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location -// lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock -// privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] -// roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] -// tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} -// manualPrivateLinkServiceConnections: contains(privateEndpoint, 'manualPrivateLinkServiceConnections') ? privateEndpoint.manualPrivateLinkServiceConnections : [] -// customDnsConfigs: contains(privateEndpoint, 'customDnsConfigs') ? privateEndpoint.customDnsConfigs : [] -// } -// }] +module rsv_privateEndpoints '../../Microsoft.Network/privateEndpoints/deploy.bicep' = [for (privateEndpoint, index) in privateEndpoints: { + name: '${uniqueString(deployment().name, location)}-RSV-PrivateEndpoint-${index}' + params: { + groupIds: [ + privateEndpoint.service + ] + name: contains(privateEndpoint, 'name') ? privateEndpoint.name : 'pe-${last(split(rsv.id, '/'))}-${privateEndpoint.service}-${index}' + serviceResourceId: rsv.id + subnetResourceId: privateEndpoint.subnetResourceId + enableDefaultTelemetry: enableReferencedModulesTelemetry + location: reference(split(privateEndpoint.subnetResourceId, '/subnets/')[0], '2020-06-01', 'Full').location + lock: contains(privateEndpoint, 'lock') ? privateEndpoint.lock : lock + privateDnsZoneGroups: contains(privateEndpoint, 'privateDnsZoneGroups') ? privateEndpoint.privateDnsZoneGroups : [] + roleAssignments: contains(privateEndpoint, 'roleAssignments') ? privateEndpoint.roleAssignments : [] + tags: contains(privateEndpoint, 'tags') ? privateEndpoint.tags : {} + manualPrivateLinkServiceConnections: contains(privateEndpoint, 'manualPrivateLinkServiceConnections') ? privateEndpoint.manualPrivateLinkServiceConnections : [] + customDnsConfigs: contains(privateEndpoint, 'customDnsConfigs') ? privateEndpoint.customDnsConfigs : [] + } +}] module rsv_roleAssignments '.bicep/nested_roleAssignments.bicep' = [for (roleAssignment, index) in roleAssignments: { name: '${uniqueString(deployment().name, location)}-RSV-Rbac-${index}' diff --git a/arm/Microsoft.RecoveryServices/vaults/readme.md b/arm/Microsoft.RecoveryServices/vaults/readme.md index ad588a86bd..733d5a4dfb 100644 --- a/arm/Microsoft.RecoveryServices/vaults/readme.md +++ b/arm/Microsoft.RecoveryServices/vaults/readme.md @@ -16,6 +16,8 @@ This module deploys a recovery service vault. | `Microsoft.Authorization/locks` | [2017-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2017-04-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2020-10-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-10-01-preview/roleAssignments) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | +| `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | +| `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | | `Microsoft.RecoveryServices/vaults` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-04-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | From 43b4a40d93c90eddf4a2db662efd3c97fb9a4361 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 21:06:21 +0530 Subject: [PATCH 18/28] Undo changes to global var file. --- global.variables.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/global.variables.yml b/global.variables.yml index bb4f48d171..0eb147422b 100644 --- a/global.variables.yml +++ b/global.variables.yml @@ -7,7 +7,7 @@ variables: # Validation deployment settings ###################################### - location: 'WestEurope' # The default location to test deploy resources to + location: 'West Europe' # The default location to test deploy resources to resourceGroupName: 'validation-rg' # The default resource group to test deployment resources into ###################################### @@ -16,15 +16,15 @@ variables: templateSpecsDoPublish: true # Set to true, if you would like to publish module templates as template specs templateSpecsRGName: 'artifacts-rg' # The name of the resource group to publish to. If the resource group does not exist, it will be created. - templateSpecsRGLocation: 'WestEurope' # The location of the resource group to publish to - templateSpecsDescription: 'modules from CARML' # The description to add to template specs published by this platform + templateSpecsRGLocation: 'West Europe' # The location of the resource group to publish to + templateSpecsDescription: 'components' # The description to add to template specs published by this platform ###################################### # Publish: Private Bicep Registry settings ###################################### bicepRegistryDoPublish: true # Set to true, if you would like to publish module templates to a bicep registry - bicepRegistryName: adpismalik001 # The name of the bicep registry (ACR) to publish to. If it does not exist, it will be created. + bicepRegistryName: adpsxxazacrx001 # The name of the bicep registry (ACR) to publish to. If it does not exist, it will be created. bicepRegistryRGName: 'artifacts-rg' # The resource group that hosts the private bicep registry (ACR) bicepRegistryRgLocation: 'West Europe' # The location of the resource group to publish to @@ -53,7 +53,7 @@ variables: # Publish: Universal packages settings ###################################### - artifactsFeedDoPublish: false # Set to true, if you would like to publish modules as Universal Packages (in Azure DevOps Artifacts) + artifactsFeedDoPublish: true # Set to true, if you would like to publish modules as Universal Packages (in Azure DevOps Artifacts) vstsFeedName: 'ResourceModules' # The name of the Azure DevOps universal packages feed to publish to vstsFeedProject: '$(System.TeamProject)' # The project that hosts the feed vstsFeedToken: $(System.AccessToken) # The token used to publish universal packages into the feed above From efc7ee98e5fbe592c9ec7e814deb9559c4cd1203 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 21:08:24 +0530 Subject: [PATCH 19/28] Undo change to global var file. --- global.variables.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.variables.yml b/global.variables.yml index 0eb147422b..7fed8d13f9 100644 --- a/global.variables.yml +++ b/global.variables.yml @@ -17,7 +17,7 @@ variables: templateSpecsDoPublish: true # Set to true, if you would like to publish module templates as template specs templateSpecsRGName: 'artifacts-rg' # The name of the resource group to publish to. If the resource group does not exist, it will be created. templateSpecsRGLocation: 'West Europe' # The location of the resource group to publish to - templateSpecsDescription: 'components' # The description to add to template specs published by this platform + templateSpecsDescription: components # The description to add to template specs published by this platform ###################################### # Publish: Private Bicep Registry settings From 3dbffeab2b52a1169645b0229ffc2c4e9d9d4b29 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 21:17:18 +0530 Subject: [PATCH 20/28] Undo indentation changes to depedency KV param file. --- .../vaults/parameters/parameters.json | 90 +++++++++++-------- 1 file changed, 53 insertions(+), 37 deletions(-) diff --git a/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json b/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json index d89fa105ae..11d69c2acd 100644 --- a/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json +++ b/utilities/pipelines/dependencies/Microsoft.KeyVault/vaults/parameters/parameters.json @@ -1,43 +1,59 @@ { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "adp-<>-az-kv-x-001" - }, - "accessPolicies": { - "value": [ - { - "tenantId": "<>", - "objectId": "bab643ad-2988-4560-9f2b-c8282ba345f0", // Backup Management Service needs access to back up the keys and secrets, along with the associated VMs - "permissions": { - "keys": ["Get", "List", "Backup"], - "secrets": ["Get", "List", "Backup"], - "certificates": [] - } + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "adp-<>-az-kv-x-001" }, - { - "tenantId": "<>", - "objectId": "<>", // The object ID of the deployed MSI. Replaced by the pipeline - "permissions": { - "keys": [], - "secrets": ["Get"], - "certificates": [] - } + "accessPolicies": { + "value": [ + { + "tenantId": "<>", + "objectId": "bab643ad-2988-4560-9f2b-c8282ba345f0", // Backup Management Service needs access to back up the keys and secrets, along with the associated VMs + "permissions": { + "keys": [ + "Get", + "List", + "Backup" + ], + "secrets": [ + "Get", + "List", + "Backup" + ], + "certificates": [] + } + }, + { + "tenantId": "<>", + "objectId": "<>", // The object ID of the deployed MSI. Replaced by the pipeline + "permissions": { + "keys": [], + "secrets": [ + "Get" + ], + "certificates": [] + } + }, + { + "tenantId": "<>", + "objectId": "<>", // dependency access + "permissions": { + "keys": [ + "all" + ], + "secrets": [ + "all" + ], + "certificates": [ + "all" + ] + } + } + ] }, - { - "tenantId": "<>", - "objectId": "<>", // dependency access - "permissions": { - "keys": ["all"], - "secrets": ["all"], - "certificates": ["all"] - } + "enablePurgeProtection": { + "value": false } - ] - }, - "enablePurgeProtection": { - "value": false } - } } From 614fe8893bc01dcd2e41720ebcda3577f87ebb92 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 22:08:16 +0530 Subject: [PATCH 21/28] Update RSV. --- .../vaults/.parameters/parameters.json | 427 ++++++++--------- .../vaults/deploy.bicep | 2 +- .../vaults/readme.md | 436 +++++++++--------- 3 files changed, 445 insertions(+), 420 deletions(-) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 066bd6614a..fe9849ae90 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -1,238 +1,247 @@ { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-rsv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backupConfig": { - "value": { - "enhancedSecurityState": "Disabled", - "softDeleteFeatureState": "Disabled" - } - }, - "backupPolicies": { - "value": [ - { - "name": "VMpolicy", - "properties": { - "backupManagementType": "AzureIaasVM", - "instantRPDetails": {}, - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": ["2019-11-07T07:00:00Z"], - "scheduleWeeklyFrequency": 0 + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-rsv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "backupConfig": { + "value": { + "enhancedSecurityState": "Disabled", + "softDeleteFeatureState": "Disabled" + } + }, + "backupPolicies": { + "value": [ + { + "name": "VMpolicy", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRPDetails": {}, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T07:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 180, + "durationType": "Days" + } }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 180, - "durationType": "Days" - } - }, - "weeklySchedule": { + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + } + }, + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { "daysOfTheWeek": ["Sunday"], - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "weeksOfTheMonth": ["First"] }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": ["January"], - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 60, + "durationType": "Months" } }, - "instantRpRetentionRangeInDays": 2, + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 10, + "durationType": "Years" + } + } + }, + "instantRpRetentionRangeInDays": 2, + "timeZone": "UTC", + "protectedItemsCount": 0 + } + }, + { + "name": "sqlpolicy", + "properties": { + "backupManagementType": "AzureWorkload", + "workLoadType": "SQLDataBase", + "settings": { "timeZone": "UTC", - "protectedItemsCount": 0 - } - }, - { - "name": "sqlpolicy", - "properties": { - "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", - "settings": { - "timeZone": "UTC", - "issqlcompression": true, - "isCompression": true - }, - "subProtectionPolicy": [ - { - "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": ["Sunday"], - "scheduleRunTimes": ["2019-11-07T22:00:00Z"], - "scheduleWeeklyFrequency": 0 + "issqlcompression": true, + "isCompression": true + }, + "subProtectionPolicy": [ + { + "policyType": "Full", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Sunday"], + "scheduleRunTimes": ["2019-11-07T22:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 104, + "durationType": "Weeks" + } }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { "daysOfTheWeek": ["Sunday"], - "retentionTimes": ["2019-11-07T22:00:00Z"], - "retentionDuration": { - "count": 104, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T22:00:00Z"], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "weeksOfTheMonth": ["First"] }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": ["January"], - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T22:00:00Z"], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - } - }, - { - "policyType": "Differential", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": ["Monday"], - "scheduleRunTimes": ["2017-03-07T02:00:00Z"], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", + "retentionTimes": ["2019-11-07T22:00:00Z"], "retentionDuration": { - "count": 30, - "durationType": "Days" + "count": 60, + "durationType": "Months" } - } - }, - { - "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 120 }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T22:00:00Z"], "retentionDuration": { - "count": 15, - "durationType": "Days" + "count": 10, + "durationType": "Years" } } } - ], - "protectedItemsCount": 0 - } - }, - { - "name": "filesharepolicy", - "properties": { - "backupManagementType": "AzureStorage", - "workloadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": ["2019-11-07T04:30:00Z"], - "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": ["2019-11-07T04:30:00Z"], + { + "policyType": "Differential", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Monday"], + "scheduleRunTimes": ["2017-03-07T02:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", "retentionDuration": { "count": 30, "durationType": "Days" } } }, - "timeZone": "UTC", - "protectedItemsCount": 0 - } - } - ] - }, - "backupStorageConfig": { - "value": { - "storageModelType": "GeoRedundant", - "crossRegionRestoreFlag": true - } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureSiteRecovery" + { + "policyType": "Log", + "schedulePolicy": { + "schedulePolicyType": "LogSchedulePolicy", + "scheduleFrequencyInMins": 120 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", + "retentionDuration": { + "count": 15, + "durationType": "Days" + } + } + } + ], + "protectedItemsCount": 0 } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": ["<>"] + }, + { + "name": "filesharepolicy", + "properties": { + "backupManagementType": "AzureStorage", + "workloadType": "AzureFileShare", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T04:30:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T04:30:00Z"], + "retentionDuration": { + "count": 30, + "durationType": "Days" + } + } + }, + "timeZone": "UTC", + "protectedItemsCount": 0 } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true + } + ] + }, + "backupStorageConfig": { + "value": { + "storageModelType": "GeoRedundant", + "crossRegionRestoreFlag": true + } + }, + "privateEndpoints": { + "value": [ + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "AzureSiteRecovery" + }, + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "AzureSiteBackup" + } + ] + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": ["<>"] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } } + } } diff --git a/modules/Microsoft.RecoveryServices/vaults/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/deploy.bicep index fa012eaeba..0c57676c14 100644 --- a/modules/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/modules/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -153,7 +153,7 @@ resource defaultTelemetry 'Microsoft.Resources/deployments@2021-04-01' = if (ena } } -resource rsv 'Microsoft.RecoveryServices/vaults@2022-04-01' = { +resource rsv 'Microsoft.RecoveryServices/vaults@2022-02-01' = { name: name location: location tags: tags diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 733d5a4dfb..89494848b7 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -18,7 +18,7 @@ This module deploys a recovery service vault. | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | | `Microsoft.Network/privateEndpoints` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints) | | `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2021-05-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.Network/2021-05-01/privateEndpoints/privateDnsZoneGroups) | -| `Microsoft.RecoveryServices/vaults` | [2022-04-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-04-01/vaults) | +| `Microsoft.RecoveryServices/vaults` | [2022-02-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2022-02-01/vaults) | | `Microsoft.RecoveryServices/vaults/backupconfig` | [2021-10-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-10-01/vaults/backupconfig) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers` | [2021-08-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-08-01/vaults/backupFabrics/protectionContainers) | | `Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems` | [2021-06-01](https://docs.microsoft.com/en-us/azure/templates/Microsoft.RecoveryServices/2021-06-01/vaults/backupFabrics/protectionContainers/protectedItems) | @@ -1087,242 +1087,251 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { ```json { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-rsv-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "backupConfig": { - "value": { - "enhancedSecurityState": "Disabled", - "softDeleteFeatureState": "Disabled" - } - }, - "backupPolicies": { - "value": [ - { - "name": "VMpolicy", - "properties": { - "backupManagementType": "AzureIaasVM", - "instantRPDetails": {}, - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": ["2019-11-07T07:00:00Z"], - "scheduleWeeklyFrequency": 0 + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "name": { + "value": "<>-az-rsv-x-001" + }, + "lock": { + "value": "CanNotDelete" + }, + "backupConfig": { + "value": { + "enhancedSecurityState": "Disabled", + "softDeleteFeatureState": "Disabled" + } + }, + "backupPolicies": { + "value": [ + { + "name": "VMpolicy", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRPDetails": {}, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T07:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 180, + "durationType": "Days" + } }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 180, - "durationType": "Days" - } - }, - "weeklySchedule": { + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + } + }, + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { "daysOfTheWeek": ["Sunday"], - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + "weeksOfTheMonth": ["First"] }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } - }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": ["January"], - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T07:00:00Z"], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 60, + "durationType": "Months" } }, - "instantRpRetentionRangeInDays": 2, + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T07:00:00Z"], + "retentionDuration": { + "count": 10, + "durationType": "Years" + } + } + }, + "instantRpRetentionRangeInDays": 2, + "timeZone": "UTC", + "protectedItemsCount": 0 + } + }, + { + "name": "sqlpolicy", + "properties": { + "backupManagementType": "AzureWorkload", + "workLoadType": "SQLDataBase", + "settings": { "timeZone": "UTC", - "protectedItemsCount": 0 - } - }, - { - "name": "sqlpolicy", - "properties": { - "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", - "settings": { - "timeZone": "UTC", - "issqlcompression": true, - "isCompression": true - }, - "subProtectionPolicy": [ - { - "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": ["Sunday"], - "scheduleRunTimes": ["2019-11-07T22:00:00Z"], - "scheduleWeeklyFrequency": 0 + "issqlcompression": true, + "isCompression": true + }, + "subProtectionPolicy": [ + { + "policyType": "Full", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Sunday"], + "scheduleRunTimes": ["2019-11-07T22:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": ["Sunday"], + "retentionTimes": ["2019-11-07T22:00:00Z"], + "retentionDuration": { + "count": 104, + "durationType": "Weeks" + } }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { + "monthlySchedule": { + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { "daysOfTheWeek": ["Sunday"], - "retentionTimes": ["2019-11-07T22:00:00Z"], - "retentionDuration": { - "count": 104, - "durationType": "Weeks" - } - }, - "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T22:00:00Z"], - "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "weeksOfTheMonth": ["First"] }, - "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", - "monthsOfYear": ["January"], - "retentionScheduleWeekly": { - "daysOfTheWeek": ["Sunday"], - "weeksOfTheMonth": ["First"] - }, - "retentionTimes": ["2019-11-07T22:00:00Z"], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } - } - } - }, - { - "policyType": "Differential", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": ["Monday"], - "scheduleRunTimes": ["2017-03-07T02:00:00Z"], - "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", + "retentionTimes": ["2019-11-07T22:00:00Z"], "retentionDuration": { - "count": 30, - "durationType": "Days" + "count": 60, + "durationType": "Months" } - } - }, - { - "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 120 }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", + "yearlySchedule": { + "retentionScheduleFormatType": "Weekly", + "monthsOfYear": ["January"], + "retentionScheduleWeekly": { + "daysOfTheWeek": ["Sunday"], + "weeksOfTheMonth": ["First"] + }, + "retentionTimes": ["2019-11-07T22:00:00Z"], "retentionDuration": { - "count": 15, - "durationType": "Days" + "count": 10, + "durationType": "Years" } } } - ], - "protectedItemsCount": 0 - } - }, - { - "name": "filesharepolicy", - "properties": { - "backupManagementType": "AzureStorage", - "workloadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": ["2019-11-07T04:30:00Z"], - "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": ["2019-11-07T04:30:00Z"], + { + "policyType": "Differential", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Weekly", + "scheduleRunDays": ["Monday"], + "scheduleRunTimes": ["2017-03-07T02:00:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", "retentionDuration": { "count": 30, "durationType": "Days" } } }, - "timeZone": "UTC", - "protectedItemsCount": 0 - } - } - ] - }, - "backupStorageConfig": { - "value": { - "storageModelType": "GeoRedundant", - "crossRegionRestoreFlag": true - } - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureSiteRecovery" + { + "policyType": "Log", + "schedulePolicy": { + "schedulePolicyType": "LogSchedulePolicy", + "scheduleFrequencyInMins": 120 + }, + "retentionPolicy": { + "retentionPolicyType": "SimpleRetentionPolicy", + "retentionDuration": { + "count": 15, + "durationType": "Days" + } + } + } + ], + "protectedItemsCount": 0 } - ] - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": ["<>"] + }, + { + "name": "filesharepolicy", + "properties": { + "backupManagementType": "AzureStorage", + "workloadType": "AzureFileShare", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": ["2019-11-07T04:30:00Z"], + "scheduleWeeklyFrequency": 0 + }, + "retentionPolicy": { + "retentionPolicyType": "LongTermRetentionPolicy", + "dailySchedule": { + "retentionTimes": ["2019-11-07T04:30:00Z"], + "retentionDuration": { + "count": 30, + "durationType": "Days" + } + } + }, + "timeZone": "UTC", + "protectedItemsCount": 0 } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "systemAssignedIdentity": { - "value": true + } + ] + }, + "backupStorageConfig": { + "value": { + "storageModelType": "GeoRedundant", + "crossRegionRestoreFlag": true + } + }, + "privateEndpoints": { + "value": [ + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "AzureSiteRecovery" + }, + { + "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", + "service": "AzureSiteBackup" + } + ] + }, + "roleAssignments": { + "value": [ + { + "roleDefinitionIdOrName": "Reader", + "principalIds": ["<>"] + } + ] + }, + "diagnosticLogsRetentionInDays": { + "value": 7 + }, + "diagnosticStorageAccountId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + }, + "diagnosticWorkspaceId": { + "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + }, + "diagnosticEventHubAuthorizationRuleId": { + "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + }, + "diagnosticEventHubName": { + "value": "adp-<>-az-evh-x-001" + }, + "systemAssignedIdentity": { + "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} } } + } } ``` @@ -1581,6 +1590,10 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' service: 'AzureSiteRecovery' } + { + subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + service: 'AzureSiteBackup' + } ] roleAssignments: [ { @@ -1596,6 +1609,9 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true + userAssignedIdentities: { + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + } } } ``` From f490cd89e12901bdc2ea5a3bfcdce2b4e3ae7862 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 22:17:08 +0530 Subject: [PATCH 22/28] Update PE service. --- .../vaults/.parameters/parameters.json | 2 +- modules/Microsoft.RecoveryServices/vaults/readme.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index fe9849ae90..803f8bda77 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -208,7 +208,7 @@ }, { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureSiteBackup" + "service": "AzureBackup" } ] }, diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 89494848b7..2c5b4e422b 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -1296,7 +1296,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { }, { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureSiteBackup" + "service": "AzureBackup" } ] }, @@ -1592,7 +1592,7 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { } { subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'AzureSiteBackup' + service: 'AzureBackup' } ] roleAssignments: [ From e2e28af05aa583ee18d0d83c9884c2ce37a556fd Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Mon, 27 Jun 2022 22:25:44 +0530 Subject: [PATCH 23/28] Remove userAssignedIdentities. --- .../vaults/.parameters/parameters.json | 5 ----- modules/Microsoft.RecoveryServices/vaults/readme.md | 8 -------- 2 files changed, 13 deletions(-) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 803f8bda77..139baeb0e2 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -237,11 +237,6 @@ }, "systemAssignedIdentity": { "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } } } } diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 2c5b4e422b..6928d1933f 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -1325,11 +1325,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { }, "systemAssignedIdentity": { "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } } } } @@ -1609,9 +1604,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true - userAssignedIdentities: { - '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} - } } } ``` From 4ead99f843689bcd2585306e8fa822e0ff079707 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Tue, 28 Jun 2022 17:39:26 +0530 Subject: [PATCH 24/28] Add userAssignedIdentities and update readme. --- .../vaults/.parameters/parameters.json | 5 +++++ modules/Microsoft.RecoveryServices/vaults/readme.md | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 139baeb0e2..803f8bda77 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -237,6 +237,11 @@ }, "systemAssignedIdentity": { "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } } } } diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 6928d1933f..2c5b4e422b 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -1325,6 +1325,11 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { }, "systemAssignedIdentity": { "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } } } } @@ -1604,6 +1609,9 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true + userAssignedIdentities: { + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + } } } ``` From 229b929f9acb91a28006dfe702915fd686a9ca44 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Tue, 28 Jun 2022 19:26:48 +0530 Subject: [PATCH 25/28] Remove user assigned identities. --- .../vaults/.parameters/parameters.json | 5 ----- modules/Microsoft.RecoveryServices/vaults/readme.md | 8 -------- 2 files changed, 13 deletions(-) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 803f8bda77..139baeb0e2 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -237,11 +237,6 @@ }, "systemAssignedIdentity": { "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } } } } diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 2c5b4e422b..6928d1933f 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -1325,11 +1325,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { }, "systemAssignedIdentity": { "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } } } } @@ -1609,9 +1604,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true - userAssignedIdentities: { - '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} - } } } ``` From d3e4181467750c3deda9605c9130c598b1c229e8 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Tue, 28 Jun 2022 20:51:17 +0530 Subject: [PATCH 26/28] Remove AzureBackup PE and update readme. --- .../vaults/.parameters/parameters.json | 4 ---- modules/Microsoft.RecoveryServices/vaults/readme.md | 8 -------- 2 files changed, 12 deletions(-) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 139baeb0e2..1f09239aa6 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -205,10 +205,6 @@ { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", "service": "AzureSiteRecovery" - }, - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureBackup" } ] }, diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 6928d1933f..4ba5676f6a 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -1293,10 +1293,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { { "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", "service": "AzureSiteRecovery" - }, - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "AzureBackup" } ] }, @@ -1585,10 +1581,6 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' service: 'AzureSiteRecovery' } - { - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' - service: 'AzureBackup' - } ] roleAssignments: [ { From 57b35104a14d785bcf6c197ec465aaae89e24d57 Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Tue, 28 Jun 2022 21:14:00 +0530 Subject: [PATCH 27/28] Add userAssignedIdentities and update readme. --- .../vaults/.parameters/parameters.json | 5 +++++ modules/Microsoft.RecoveryServices/vaults/readme.md | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json index 1f09239aa6..9993cc4485 100644 --- a/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json +++ b/modules/Microsoft.RecoveryServices/vaults/.parameters/parameters.json @@ -233,6 +233,11 @@ }, "systemAssignedIdentity": { "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } } } } diff --git a/modules/Microsoft.RecoveryServices/vaults/readme.md b/modules/Microsoft.RecoveryServices/vaults/readme.md index 4ba5676f6a..f86387494b 100644 --- a/modules/Microsoft.RecoveryServices/vaults/readme.md +++ b/modules/Microsoft.RecoveryServices/vaults/readme.md @@ -1321,6 +1321,11 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { }, "systemAssignedIdentity": { "value": true + }, + "userAssignedIdentities": { + "value": { + "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + } } } } @@ -1596,6 +1601,9 @@ module vaults './Microsoft.RecoveryServices/vaults/deploy.bicep' = { diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' diagnosticEventHubName: 'adp-<>-az-evh-x-001' systemAssignedIdentity: true + userAssignedIdentities: { + '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + } } } ``` From b462058291b18f049046b6d084f5b2dd5cb572ac Mon Sep 17 00:00:00 2001 From: Kavish Shivhare Date: Tue, 28 Jun 2022 22:59:01 +0530 Subject: [PATCH 28/28] Undo non PE related changes. --- modules/Microsoft.RecoveryServices/vaults/deploy.bicep | 2 +- settings.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/Microsoft.RecoveryServices/vaults/deploy.bicep b/modules/Microsoft.RecoveryServices/vaults/deploy.bicep index 0c57676c14..81cc3f8193 100644 --- a/modules/Microsoft.RecoveryServices/vaults/deploy.bicep +++ b/modules/Microsoft.RecoveryServices/vaults/deploy.bicep @@ -132,7 +132,7 @@ var diagnosticsMetrics = [for metric in diagnosticMetricsToEnable: { } }] -var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned, UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') +var identityType = systemAssignedIdentity ? (!empty(userAssignedIdentities) ? 'SystemAssigned,UserAssigned' : 'SystemAssigned') : (!empty(userAssignedIdentities) ? 'UserAssigned' : 'None') var identity = identityType != 'None' ? { type: identityType diff --git a/settings.json b/settings.json index 0e28567fd9..9198a0f7d0 100644 --- a/settings.json +++ b/settings.json @@ -5,7 +5,7 @@ "localTokens": [ { "name": "namePrefix", - "value": "malik", + "value": "carml", "metadata": { "description": "A 3-5 character length string, included in the resources names" }