子网上的 Azure 自定义权限

子网上的 Azure 自定义权限

我们有一个与 Express 路由耦合的 VNET,通过它我们将允许用户访问特定的子网。

这些子网是为每个资源组创建的,目的是让这些用户只能在其子网中添加机器。
为了允许用户将机器添加到子网,我给了他们以下权限:

  • 在虚拟网络上阅读
  • 子网上的贡献者

但是这允许用户选择虚拟网络上的所有子网。
当您尝试在缺少贡献者的子网上部署机器时,它只会抛出一个错误。

我尝试创建自定义角色,但如果我要创建一个仅不允许读取的角色,则如下:

{
    "Name":  "Not Reader",
    "Description":  "Denies Reader priviliges on the assigned resource.",
    "Actions":  [
                ],
    "NotActions":  [
                    "Microsoft.Network/*/read"
                   ],
    "AssignableScopes":  [
                             "/subscriptions/theguidwashere"
                         ]
}

我收到错误:

New-AzureRmRoleDefinition : Invalid value for Actions
At line:1 char:1
+ New-AzureRmRoleDefinition -InputFile C:\temp\customroles\NotReader.json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureRmRoleDefinition], ArgumentException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureRoleDefinitionCommand

我认为这是因为操作值不能为空。
我不确定我应该/可以安全地在操作中添加什么,此时我开始觉得我正在将本来应该很简单的东西组合成复杂的东西。

那么我应该如何设置/创建角色以允许用户仅查看和使用更大的 VNET 中的单个子网?

答案1

我们不能对特定子网进行限制。我遇到了同样的问题。

自定义规则只能应用于 1) 资源组 2) 资源(vnet 是资源而不是子网,子网是资源的结果)3) 订阅

如上所述,子网不是资源,您将无法通过 RBAC/自定义角色功能来限制哪些子网可以使用和不能使用。

您可能需要研究 Azure 蓝图或 Azure 策略。

相关内容