|
103 | 103 | "displayName": "Scope",
|
104 | 104 | "description": "Scope of the policy assignment"
|
105 | 105 | }
|
| 106 | + }, |
| 107 | + "platformScope": { |
| 108 | + "type": "String", |
| 109 | + "metadata": { |
| 110 | + "displayName": "Platform Scope", |
| 111 | + "description": "Scope of the reader role assignment" |
| 112 | + }, |
| 113 | + "defaultValue": "[parameters('scope')]" |
106 | 114 | }
|
107 | 115 | },
|
108 | 116 | "variables": {
|
|
124 | 132 | "rbacMonitoringContributor": "749f88d5-cbae-40b8-bcfc-e573ddc772fa",
|
125 | 133 | "rbacManagedIdentityOperator": "f1a07417-d97a-45cb-824c-7a7467783830",
|
126 | 134 | "rbacContributor": "b24988ac-6180-42a0-ab88-20f7382dd24c",
|
| 135 | + "rbacReader": "acdd72a7-3385-48ef-bd42-f606fba81ae7", |
127 | 136 | "roleAssignmentNames": {
|
128 | 137 | "roleAssignmentNameLogAnalyticsContributor": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,parameters('scope')))]",
|
129 | 138 | "roleAssignmentNameVmContributor": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,'-2',parameters('scope')))]",
|
130 | 139 | "roleAssignmentNameMonitoringContributor": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,'-3',parameters('scope')))]",
|
131 | 140 | "roleAssignmentNameManagedIdentityOperator": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,'-4',parameters('scope')))]",
|
132 |
| - "roleAssignmentNameContributor": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,'-5',parameters('scope')))]" |
| 141 | + "roleAssignmentNameContributor": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,'-5',parameters('scope')))]", |
| 142 | + "roleAssignmentNameReader": "[guid(concat(parameters('toplevelManagementGroupPrefix'),variables('policyAssignmentNames').azureDefenderSQL,'-6',parameters('scope')))]" |
133 | 143 | }
|
134 | 144 | },
|
135 | 145 | "resources": [
|
|
234 | 244 | "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').azureDefenderSQL), '2019-09-01', 'Full' ).identity.principalId)]"
|
235 | 245 | }
|
236 | 246 | },
|
237 |
| - { |
| 247 | + { |
238 | 248 | "type": "Microsoft.Authorization/roleAssignments",
|
239 | 249 | "apiVersion": "2022-04-01",
|
240 | 250 | "name": "[variables('roleAssignmentNames').roleAssignmentNameContributor]",
|
|
246 | 256 | "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacContributor'))]",
|
247 | 257 | "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').azureDefenderSQL), '2019-09-01', 'Full' ).identity.principalId)]"
|
248 | 258 | }
|
| 259 | + }, |
| 260 | + { |
| 261 | + "condition": "[not(equals(parameters('platformScope'), parameters('scope')))]", |
| 262 | + "type": "Microsoft.Authorization/roleAssignments", |
| 263 | + "apiVersion": "2022-04-01", |
| 264 | + "name": "[variables('roleAssignmentNames').roleAssignmentNameReader]", |
| 265 | + "scope": "[parameters('platformScope')]", |
| 266 | + "dependsOn": [ |
| 267 | + "[variables('policyAssignmentNames').azureDefenderSQL]" |
| 268 | + ], |
| 269 | + "properties": { |
| 270 | + "principalType": "ServicePrincipal", |
| 271 | + "roleDefinitionId": "[concat('/providers/Microsoft.Authorization/roleDefinitions/', variables('rbacReader'))]", |
| 272 | + "principalId": "[toLower(reference(concat('/providers/Microsoft.Authorization/policyAssignments/', variables('policyAssignmentNames').azureDefenderSQL), '2019-09-01', 'Full' ).identity.principalId)]" |
| 273 | + } |
249 | 274 | }
|
250 | 275 | ],
|
251 | 276 | "outputs": {}
|
|
0 commit comments