首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理组级别的RoleAssignment的ARM模板

管理组级别的RoleAssignment的ARM模板
EN

Stack Overflow用户
提问于 2021-02-05 02:42:15
回答 1查看 218关注 0票数 0

我正在尝试创建一个arm模板,该模板将RBAC角色分配给管理组级别的组。我可以通过命令行界面和PowerShell来实现,但是不能通过ARM模板来实现

代码语言:javascript
复制
{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "roleDefinitionId": {
            "type": "string",
            "defaultValue": "xxxx",
            "metadata": {
                "description": "roleDefinition for the assignment - default is reader"
            }
        }
    },
    "variables": {
        "roleAssignmentName": "[guid('/', variables('xxx'), parameters('roleDefinitionId'))]"
    },
    "resources": [
        {
            "name": "[variables('roleAssignmentName')]",
            "type": "Microsoft.Authorization/roleAssignments",
            "apiVersion": "2020-04-01-preview",
            "scope": "/providers/Microsoft.Management/managementGroups/xxxx",
            "properties": {
                "mode": "Incremental",
                "roleDefinitionId": "xxx",
                "principalId": "xxxx",
                "principalType": "Group"
            }
        }
    ]
}

有没有人知道是否支持MGMT组,如果是,我做错了什么?

这是ARM角色分配https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-template的官方文档,它显示了如何为Subs和资源组执行此操作

EN

回答 1

Stack Overflow用户

发布于 2021-02-06 05:21:03

从资源定义中删除作用域属性...

TLDR;roleAssignments只能部署在它们被分配到的作用域中,因此该属性是无关的。此外,作用域属性不适用于managementGroup扩展资源(令人困惑,我知道),这只是一个时间点。scope属性通常用于将资源定位到不同的作用域(即与模板部署本身不同),但是由于roleAssignments不能被重定目标,所以您不需要它,在这种情况下它会给您带来问题。

下面是我的示例(注意,我没有principalType属性,所以它使用默认值):

代码语言:javascript
复制
{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "principalId": {
        "type": "string",
        "metadata": {
          "description": "principalId if the user that will be given contributor access to the resourceGroup"
        }
      },
      "roleDefinitionId": {
        "type": "string",
        "defaultValue": "b24988ac-6180-42a0-ab88-20f7382dd24c",
        "metadata": {
          "description": "roleDefinition for the assignment - default is contributor"
        }
      },
      "managementGroupName": {
        "type": "string",
        "metadata": {
          "description": "Name of the managementGroup for the roleAssignment"
        }
      }
    },
    "variables": {
      // this creates an idempotent GUID for the role assignment
      "roleAssignmentName": "[guid(parameters('managementGroupName'), parameters('principalId'), parameters('roleDefinitionId'))]"
     },
    "resources": [
      {
        "type": "Microsoft.Authorization/roleAssignments",
        "apiVersion": "2020-04-01-preview",
        "name": "[variables('roleAssignmentName')]",
        "properties": {
          "roleDefinitionId": "[tenantResourceId('Microsoft.Authorization/roleDefinitions', parameters('roleDefinitionId'))]",
          "principalId": "[parameters('principalId')]"
        }
      }
    ]
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66051827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档