Skip to content

Commit 94bca37

Browse files
committed
wip
1 parent 12a7d43 commit 94bca37

2 files changed

Lines changed: 54 additions & 0 deletions

File tree

infrastructure/bootstrap/hub.bicep

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,19 @@ resource networkContributorAssignment 'Microsoft.Authorization/roleAssignments@2
173173
}
174174
}
175175

176+
@description('Let the managed identity assign RBAC roles (required for Azure Virtual Desktop)')
177+
resource userAccessAdministratorAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
178+
name: guid(subscription().subscriptionId, hubType, 'UserAccessAdministrator')
179+
properties: {
180+
roleDefinitionId: subscriptionResourceId(
181+
'Microsoft.Authorization/roleDefinitions',
182+
roleID.rbacAdmin
183+
)
184+
principalId: managedIdentiyADOtoAZ.outputs.miPrincipalID
185+
description: '${miADOtoAZname} User Access Administrator access to subscription'
186+
}
187+
}
188+
176189
@description('Let the managed identity configure Front door and its resources')
177190
resource CDNContributorAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
178191
name: guid(subscription().subscriptionId, hubType, 'CDNContributor')

infrastructure/terraform/hub/virtual_desktop.tf

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,47 @@ resource "azurerm_resource_group" "avd_green" {
155155
# principal_id = local.principal_id
156156
# }
157157

158+
159+
data "azuread_service_principal" "avd_ms_sp" {
160+
application_id = local.principal_id # this is your "9cdead84-..." appId
161+
}
162+
163+
164+
resource "azurerm_role_definition" "avd_autoscale_operator" {
165+
name = "AVD Autoscale Operator"
166+
scope = data.azurerm_subscription.current.id
167+
description = "Allows Azure Virtual Desktop Autoscale to manage session host power state"
168+
169+
permissions {
170+
actions = [
171+
"Microsoft.DesktopVirtualization/hostPools/read",
172+
"Microsoft.DesktopVirtualization/hostPools/sessionHosts/read",
173+
"Microsoft.DesktopVirtualization/hostPools/sessionHosts/write",
174+
"Microsoft.Compute/virtualMachines/start/action",
175+
"Microsoft.Compute/virtualMachines/deallocate/action",
176+
"Microsoft.Compute/virtualMachines/read",
177+
"Microsoft.Insights/autoscalesettings/*"
178+
]
179+
not_actions = []
180+
}
181+
182+
assignable_scopes = [
183+
data.azurerm_subscription.current.id
184+
]
185+
}
186+
187+
resource "azurerm_role_assignment" "avd_autoscale_blue_sp" {
188+
for_each = local.deploy_blue_avd ? var.regions : {}
189+
190+
scope = azurerm_resource_group.avd_blue[each.key].id
191+
role_definition_id = azurerm_role_definition.avd_autoscale_operator.id
192+
principal_id = data.azuread_service_principal.avd_ms_sp.object_id
193+
principal_type = "ServicePrincipal"
194+
195+
# ensure role definition exists first
196+
depends_on = [azurerm_role_definition.avd_autoscale_operator]
197+
}
198+
158199
# Green AVD deployment
159200
module "virtual-desktop-green" {
160201
for_each = (local.deploy_green_avd ? var.regions : {})

0 commit comments

Comments
 (0)