具有特殊AssignableScopes的Azure自定义RM角色定义

Vas*_*huk 3 powershell rbac azure

我正在尝试创建一个自定义 Azure RM 角色定义,其范围适用于一个订阅内的某些资源组。我不想提供对所有订阅或仅一个资源组的访问,并且我可以指定资源组列表,因为其中一些资源组尚未创建。我只想提供订阅资源组的某些子集的访问权限。

\n\n

为此,我使用 PowerShell cmdlet

\n\n
New-AzureRmRoleDefinition -InputFile .\\new-role.json \n
Run Code Online (Sandbox Code Playgroud)\n\n

JSON 在哪里

\n\n
{\n  "Name": "RoleAssignmentsWriter",\n  "Description": "Allow to perform role assignment",\n  "Actions": [\n    "Microsoft.Authorization/roleAssignments/write"\n  ],\n  "AssignableScopes": [\n    "/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/prefix*"\n  ]\n} \n
Run Code Online (Sandbox Code Playgroud)\n\n

其中prefix是现有资源组名称和功能资源组名称的前缀。

\n\n

如果AssignableScopes: [\xe2\x80\x9c/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx\xe2\x80\x9d]\xe2\x80\x93 整个订阅或者如果AssignableScopes: ["/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/ResourceGroupName\xe2\x80\x9d]

\n\n

AssignableScopes: ["/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/prefix*"]但如果我指定或什至 则不\xe2\x80\x99 不起作用AssignableScopes: ["/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/*"]

\n\n

一件重要的事情是,我想为尚不存在的资源组创建角色定义,稍后将创建它们。

\n\n

问题是:是否可以AssignableScopes仅指定订阅资源组的某些子集?也许我可以在其中使用某种通配符AssignableScopes?简单的星号标记不起作用。\n或者也许我可以使用资源组标签或其他东西?

\n\n

预先非常感谢您。

\n

Joy*_*ang 7

是否可以将AssignableScopes仅指定给订阅资源组的某些子集?也许我可以在AssignableScopes 中使用某种通配符?

AFAIK,你不能在里面使用通配符assignableScopesNew-AzureRmRoleDefinitionpowershell命令本质上是调用Role Definitions - Create Or UpdateREST API,assignableScopes只接受三种类型,参考这个链接

在此输入图像描述

如果您只想将AssignableScopes指定给订阅资源组的某些子集,则需要在 中一一指定它们assignableScopes,例如

 "assignableScopes": [
      "subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1",
      "subscriptions/{subscriptionId}/resourceGroups/myresourcegroup2",
      "subscriptions/{subscriptionId}/resourceGroups/myresourcegroup3",
    ]
Run Code Online (Sandbox Code Playgroud)

或者也许我可以使用资源组标签或其他东西?

不,可能的属性都列在 REST API 文档中,没有其他属性。