Как добавить роли в элемент управления доступом 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.

Другие вопросы по тегам