具有特殊 AssignableScopes 的 Azure 自定义 RM 角色定义
Azure custom RM role definition with special AssignableScopes
我正在尝试创建一个自定义 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
中使用某种通配符?简单的星标不起作用。
或者也许我可以使用资源组标签或其他东西?
非常感谢您。
is it possible to specify AssignableScopes to only some subset of subscription resource groups? Maybe I can use some kind of wildcard within AssignableScopes?
AFAIK,您不能在 assignableScopes
中使用通配符,New-AzureRmRoleDefinition
powershell 命令本质上调用 Role Definitions - Create Or Update
REST API, the assignableScopes
only accept three types, refer to this link.
如果您只想将 AssignableScopes 指定给订阅资源组的某些子集,您需要在 assignableScopes
中一一指定它们,例如
"assignableScopes": [
"subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1",
"subscriptions/{subscriptionId}/resourceGroups/myresourcegroup2",
"subscriptions/{subscriptionId}/resourceGroups/myresourcegroup3",
]
Or maybe I can use resource group tags or something else?
没有,可能的属性都在 REST API 文档中列出,没有其他的。
我正在尝试创建一个自定义 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
中使用某种通配符?简单的星标不起作用。
或者也许我可以使用资源组标签或其他东西?
非常感谢您。
is it possible to specify AssignableScopes to only some subset of subscription resource groups? Maybe I can use some kind of wildcard within AssignableScopes?
AFAIK,您不能在 assignableScopes
中使用通配符,New-AzureRmRoleDefinition
powershell 命令本质上调用 Role Definitions - Create Or Update
REST API, the assignableScopes
only accept three types, refer to this link.
如果您只想将 AssignableScopes 指定给订阅资源组的某些子集,您需要在 assignableScopes
中一一指定它们,例如
"assignableScopes": [
"subscriptions/{subscriptionId}/resourceGroups/myresourcegroup1",
"subscriptions/{subscriptionId}/resourceGroups/myresourcegroup2",
"subscriptions/{subscriptionId}/resourceGroups/myresourcegroup3",
]
Or maybe I can use resource group tags or something else?
没有,可能的属性都在 REST API 文档中列出,没有其他的。