【发布时间】: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