这只是一个概念,我无法理解通配符 * 及其含义,因此这里我们有两个角色“所有者”和“贡献者”。
"Name": "Contributor",
"Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"IsCustom": false,
"Description": "Lets you manage everything except access to resources.",
"Actions": ["*"],
"NotActions": [
"Microsoft.Authorization/*/Delete",
"Microsoft.Authorization/*/Write",
"Microsoft.Authorization/elevateAccess/Action'],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [],
"/"
Name : Owner
Id : 8e3af657-a8ff-443c-a75c-2fe8c4bcb635
IsCustom : False
Description : Grants full access to manage all resources, including the ability to assign roles in Azure RBAC.
Actions : {*}
NotActions : {}
DataActions : {}
NotDataActions : {}
AssignableScopes : {/}
所以我的挂断是使用星号,我知道所有者下的 * 意味着一切,但对于贡献者,为什么它在 NotActions 权限下使用?为什么是“Microsoft.Authorization/*/Delete”而不是“Microsoft.Authorization/Delete”。有问题的权限阻止贡献者删除用户。所以我知道这些角色和权限是如何工作的,我只是真的很难理解语法。我已阅读 microsoft learn 上的文档,但有一些关于 * 的内容我显然不明白。有任何知识的人是否知道解释此问题的方法以帮助清除它,或者也许有人可以向我指出一些更好的文档?有任何帮助吗?将不胜感激。
最佳答案
Why is it "Microsoft.Authorization/*/Delete" instead of Microsoft.Authorization/Delete".
要了解这一点,请参阅此 link
特别是Operations format
部分。
基本上每个操作都以 {Company}.{ProviderName}/{resourceType}/{action}
格式指定。
因此,当您将操作指定为 Microsoft.Authorization/*/Delete
时,实际上是允许对 Microsoft.Authorization
资源提供程序下的所有资源进行删除操作。
此格式还使您能够在资源提供程序下的每个资源级别精细地指定操作。
关于azure - 无法理解 Azure 的角色 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67341230/