My template is below along with an error which does not make sense since scope
seems to be in correct order and it's allowed to use this notation per (https://learn.microsoft.com/en-us/rest/api/authorization/roleassignments/create)
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2017-05-01",
"name": "[ guid(resourceGroup().id, 'windowsserverstorage')]",
"dependsOn": ["[variables('storageaccountname')]"],
"properties": {
"roleDefinitionId": "[variables('Contributor')]",
"principalId": "063fe2f0-7448-48e4-8661-dbb4e9f85d39",
"scope": "/subscriptions/24ba3e4c-45e3-4d55-8132-6731ca25547f/resourceGroups/MyDemo/providers/Microsoft.Storage/storageAccounts/wkstorage2pzpd"
}
} ,
Error is below
Resource Microsoft.Authorization/roleAssignments '1aed14fd-8f7c-5636-989b-7c134b353fcc' failed with message '{
"error": {
"code": "InvalidCreateRoleAssignmentRequest",
"message": "The request to create role assignment '1aed14fd-8f7c-5636-989b-7c134b353fcc' is not valid. Role assignment scope
'/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourceGroups/myDemo/providers/Microsoft.Storage/storageAccounts/wkstorage2pzpd' must match the scope specified on the URI
'/subscriptions/24ba3e4c-45e3-4d55-8132-6731cf25547f/resourcegroups/myDemo'."
}
}'
If I try to assign a different way like below then different error is being thrown
{
"type": "Microsoft.Storage/storageAccounts/providers/roleAssignments",
"apiVersion": "2017-05-01",
"name": "[concat('wkstorage2pzpd/blobServices/default/networkadmins', '/Microsoft.Authorization/', guid(resourceGroup().id, '1231'))]",
"dependsOn": [
"[variables('storageaccountname')]"
],
"properties": {
"roleDefinitionId": "[variables('Contributor')]",
"principalId": "063fe2f0-7448-48e4-8661-dbb4e9f85d39"
}
},
Error
The template resource
'wkstorage2pzpd/blobServices/default/Microsoft.Authorization/a4b69ebe-d58c-5309-9385-0a2e26d343a3' for type 'Microsoft.Storage/storageAccounts/providers/roleAssignments' at line '179' and column '9' has incorrect segment lengths.
A nested resource type must have identical number of segments as its resource name. A root resource type must have segment length one greater than its resource name. Please see https://aka.ms/arm-template/#resources for usage
details.'.