【问题标题】:How to assign an application role to a managed identity in the ARM template如何将应用程序角色分配给 ARM 模板中的托管标识
【发布时间】:2020-11-14 17:39:45
【问题描述】:

我有以下情况。
我的应用程序注册定义了一组应用程序角色
我通过 ARM 模板动态部署具有系统分配托管标识的规模集
在部署期间,我想将该身份分配给上面定义的特定应用程序角色之一

我使用以下资源更新我的部署模板

   {
            "type": "Microsoft.Authorization/roleAssignments",
            "apiVersion": "2017-09-01",
            "name": "<random Guid>",
            "dependsOn": [
                "[concat('Microsoft.Compute/virtualMachineScaleSets/', '<scaleset name>')]"
            ],
            "properties": {
                
                "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '<app role guid>')]",
                "principalId": "[reference(resourceId('Microsoft.Compute/virtualMachineScaleSets', '<scaleset name>'), '2019-07-01', 'Full').Identity.principalId]",
                "scope": "[resourceGroup().id]"
            }
}

但是部署失败并出现以下异常

The specified role definition with ID '<app role guid>' does not exist.

我的假设是应用程序角色定义 ID 的格式不正确,但我在 ARM 模板中找不到此类应用程序分配的任何示例。

这可能吗?

【问题讨论】:

    标签: azure-active-directory azure-resource-manager azure-rbac


    【解决方案1】:

    这里有一个示例,说明您将如何执行此操作 https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-template#new-service-principal

    您需要添加 Serviceprincipal 的 principalType,这是因为根据文档,创建新的 serviceprincipal 时很容易出现延迟,因此如果您不这样做,它将失败。

    编辑:对不起,我没有意识到您正在尝试进行应用角色分配。 我不相信这在 arm 模板中当前受支持。您可以使用 roleassignment 分配的 rbac 角色不是应用程序角色。例如。您目前无法在 arm 模板中为 azure 内置角色分配应用程序角色,用于 azure 资源,而不是应用程序或 azure 广告角色。 供参考https://github.com/MicrosoftDocs/azure-docs/issues/51914#issuecomment-612867662

    如果可能的话,您可能能够解决并执行此类操作的唯一方法可能是通过在 arm 模板中运行 powershell 命令的部署脚本。

    【讨论】:

    • 这并不能解决我在添加pringcipalType后得到完全相同的消息的问题。那么您有一个示例显示分配给应用程序角色?
    • 您是否也在同一个模板中创建应用注册和应用角色?
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 2021-06-14
    • 2021-10-04
    • 2020-10-27
    • 1970-01-01
    • 2020-08-09
    • 2020-11-18
    • 1970-01-01
    相关资源
    最近更新 更多