【问题标题】:Azure custom RM role definition with special AssignableScopes具有特殊 AssignableScopes 的 Azure 自定义 RM 角色定义
【发布时间】:2018-11-14 09:51:39
【问题描述】:

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

为此,我使用 PowerShell cmdlet

New-AzureRmRoleDefinition -InputFile .\new-role.json 

JSON 在哪里

{
  "Name": "RoleAssignmentsWriter",
  "Description": "Allow to perform role assignment",
  "Actions": [
    "Microsoft.Authorization/roleAssignments/write"
  ],
  "AssignableScopes": [
    "/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/prefix*"
  ]
} 

其中 prefix 是已存在和功能资源组名称的前缀。

如果AssignableScopes: [“/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx”] – 整个订阅或AssignableScopes: ["/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/ResourceGroupName”] 则有效

但如果我指定AssignableScopes: ["/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/prefix*"] 甚至AssignableScopes: ["/subscriptions/xxxxx-xxxxx-xxxx-xxx-xxxxxxx/resourceGroups/*"] 则不起作用。

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

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

非常感谢您。

【问题讨论】:

  • 我认为它不支持通配符匹配

标签: azure powershell rbac


【解决方案1】:

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

AFAIK,你不能在assignableScopes 中使用通配符,New-AzureRmRoleDefinition powershell 命令本质上调用了Role Definitions - Create Or Update REST API,assignableScopes 只接受三种类型,参考这个link。

如果您只想为订阅资源组的一部分子集指定AssignableScopes,则需要在assignableScopes中一一指定,如

 "assignableScopes": [
      "subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1",
      "subscriptions/{subscriptionId}/resourceGroups/myresourcegroup2",
      "subscriptions/{subscriptionId}/resourceGroups/myresourcegroup3",
    ]

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

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

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 2021-07-26
    • 2021-07-24
    • 2020-04-03
    • 2021-08-09
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多