Как добавить роли в элемент управления доступом AppInsight с помощью шаблона ARM
Я пытаюсь добавить назначение ролей в элемент управления доступом AppInsight, используя шаблон ARM. Я могу создать AppInsight с помощью шаблона ARM, но не могу двигаться вперед с добавлением назначения ролей в элементе управления App Insight Access. Ниже приведен мой код для создания App Insight с использованием шаблона ARM
"resources": [
{
"type": "Microsoft.Insights/components",
"kind": "web",
"name": "[parameters('components_AppInsightPoc_name')]",
"apiVersion": "2015-05-01",
"location": "westus2",
"scale": null,
"properties": {
"Application_Type": "web",
"Flow_Type": "Redfield",
"Request_Source": "IbizaAIExtension",
"HockeyAppId": null,
"SamplingPercentage": null
}
}
]
2 ответа
Вы можете использовать этот фрагмент для добавления ролей RBAC к ресурсу:
{
"type": "Microsoft.Insights/components/providers/roleAssignments",
"apiVersion": "2017-05-01",
"name": "[concat(parameters('components_AppInsightPoc_name'), '/Microsoft.Authorization/', guid('something'))]",
"properties": {
"roleDefinitionId": "[concat(subscription().Id, '/providers/Microsoft.Authorization/roleDefinitions/', 'role_guid')]",
"principalId": "user_guid",
"scope": "[resourceId('Microsoft.Insights/components', parameters('components_AppInsightPoc_name'))"
}
}
вы можете получить ролевые руководства с powershell:
Get-AzRoleDefinition
Возможность добавить RBAC для App Insights с помощью следующего кода
"resources": [
{
"type": "Microsoft.Insights/components/providers/roleAssignments",
"apiVersion": "2017-05-01",
"name": "[concat(parameters('AppInsightName'),'/Microsoft.Authorization/',guid('AppInsightName'))]",
"properties": {
"roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
"principalId": "[parameters('principalId')]"
}
}
]
Я опубликовал ответ на этот вопрос: Применить Azure RBAC к ресурсу с помощью ARM
У меня есть массив идентификаторов ролей, которые я хотел добавить в качестве владельцев на ресурсе App Insight, не делая пользователей владельцами на уровне группы ресурсов. Я не хотел использовать подход с вложенными ресурсами, так как хотел перебирать массив объектов для динамического создания ролей, поэтому после настройки атрибутов типа, имени и области действия следующий блок ресурсов - это то, что в итоге сработало для меня.:
{
"comments": "Add the Application Insights resource",
"apiVersion": "2014-04-01",
"name": "[variables('appInsightsName')]",
"type": "Microsoft.Insights/components",
"location": "[resourceGroup().location]",
"properties": {
"ApplicationId": "[variables('appInsightsName')]"
}
},
{
"comments": "Add the IAM roles to the App Insights resource",
"condition": "[parameters('isProduction')]",
"type": "Microsoft.Insights/components/providers/roleAssignments",
"name": "[concat(variables('appInsightsName'),'/Microsoft.Authorization/',guid(parameters('roleAssignments')[copyIndex()].principalId))]",
"apiVersion": "2017-05-01",
"location": "[resourceGroup().location]",
"properties": {
"roleDefinitionId": "[concat(subscription().Id, '/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]", // Owner Role
"principalId": "[parameters('roleAssignments')[copyIndex()].principalId]",
"scope": "[resourceId('Microsoft.Insights/components', variables('appInsightsName'))]"
},
"copy": {
"name": "appInsightsRoleAssignments",
"count": "[length(parameters('roleAssignments'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Insights/components', variables('appInsightsName'))]"
]
}
Обратите особое внимание на сегменты в свойствах типа, имени и области ресурса Microsoft.Insights / components / sizes / roleAssignments.