想要限制用户访问存储帐户 - 创建 RBAC 角色以拒绝访问存储帐户

想要限制用户访问存储帐户 - 创建 RBAC 角色以拒绝访问存储帐户

我们在订阅中有几个存储帐户,并希望将访问权限限制为仅少数用户和一个应用程序。因此,除了订阅所有者和具有应用程序 ID 的备份应用程序“ComVault”之外,任何人都不应访问这些存储帐户。最初,所有用户都已获得订阅级别的访问权限,并且默认情况下会继承对存储帐户的访问权限。我们尝试了以下方法:

  1. 创建了一个 AD 组并添加了我们不想访问存储帐户的所有用户和应用程序,然后对其应用了以下自定义角色:

{

“名称”:“自定义 - Microsoft.Storage.DenyAccess”,

“ID”: ””,

“IsCustom”:true,

“描述”:“拒绝对 Commvault 存储帐户 v20190409 的权限。”,

“操作”:[

“*”

],

“非操作”:[

“Microsoft.Storage/*/读取”

“Microsoft.Storage/*/Write”

“Microsoft.Storage/*/删除”

],

“非数据操作”:[

“Microsoft.Storage/*/读取”

“Microsoft.Storage/*/Write”

“Microsoft.Storage/*/删除”

],

“可分配范围”:[

“/订阅/”

]

}

从逻辑上讲这应该可行,但实际上却不行。请建议我们可以做些什么来实现上述要求。

答案1

好的,所以您想在顶层(订阅)分配访问权限,但阻止对特定资源的访问。不幸的是,没有简单的方法可以使用访问控制(IAM)来实现这一点,而且这很糟糕。

无论如何,我认为你已经走在正确的轨道上,但我认为这还取决于该组中的用户可以访问什么。例如,这是我几个月前做的一个示例,其中组中的所有用户都可以读取 Azure 中的所有内容(所有资源),除了一些资源类型*。

{
    "Name":  "Limited_Reader",
    "IsCustom":  true,
    "Description":  "Gives you READ-ONLY access to everything, except a few resource types.",
    "Actions":  [
                    "*/read"
                ],
    "NotActions": [
                    "Microsoft.Storage/*",
                    "Microsoft.KeyVault/*",
                    "Microsoft.Network/networkSecurityGroups/*"
                   ],
    "DataActions":  [

                    ],
    "NotDataActions":  [

                       ],
    "AssignableScopes":  [
                             "/subs/*****
                         ]
}

因此,这赋予了他们对 Azure 中所有内容的只读访问权限,但他们无法对上述资源类型执行任何操作。如果您需要对其他所有内容进行写访问,只需找到适当的权限(我认为这是您已经拥有的 - */write 和 */delete)。

旁注:微软对此问题的官方解决方案似乎是称为 Azure Blueprints 的东西,他们几周前刚刚发布,但我对该工具并不了解。

相关内容