azure - VM 与 VM 规模集的 RBAC 有何区别?

标签 azure azure-virtual-machine azure-virtual-network azure-vm-scale-set azure-rbac

我有一个自定义角色,允许在特定 VNet 及其子网中创建虚拟机。我可以毫无问题地在此子网中部署单个虚拟机。但是,当我尝试将规模集部署到同一子网时,我遇到以下错误:

Missing write permissions {'Microsoft.Network/VirtualNetworks/subnets/write'} for the following subnet(s):'MySubnet'

授予 VNet 访问权限的角色具有加入虚拟网络。为什么此权限允许 VM 部署而不是规模集部署?部署 VM 和 VM 规模集之间的 RBAC 是否有区别?

编辑:添加角色定义

VNet 具有 RBAC 和自定义网络贡献者角色,可授予以下功能

"permissions": [
      {
        "actions": [
          "Microsoft.Network/publicIPAddresses/join/action",
          "Microsoft.Network/virtualNetworks/subnets/join/action",
          "Microsoft.Network/virtualNetworks/subnets/write",
          "Microsoft.Network/virtualNetworks/*/join/action",
          "Microsoft.Network/networkSecurityGroups/write",
          "Microsoft.Network/networkSecurityGroups/securityRules/write",
          "Microsoft.Network/networkSecurityGroups/securityRules/delete"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ]

资源组上的 RBAC 授予以下内容

"permissions": [
      {
        "actions": [
          "*",
          "Microsoft.Compute/virtualMachines/*",
          "Microsoft.Compute/virtualMachineScaleSets/*"
        ],
        "dataActions": [],
        "notActions": [
          "Microsoft.Authorization/*/Delete",
          "Microsoft.Authorization/*/Write",
          "Microsoft.Authorization/elevateAccess/Action",
          "Microsoft.Network/dnsZones/write",
          "Microsoft.Network/dnsZones/delete",
          "Microsoft.Network/dnsZones/*/write",
          "Microsoft.Network/dnsZones/*/delete",
          "Microsoft.Network/virtualNetworks/write",
          "Microsoft.Network/virtualNetworks/delete",
          "Microsoft.Network/virtualNetworks/peer/action",
          "Microsoft.Resources/subscriptions/resourceGroups/write",
          "Microsoft.Resources/subscriptions/resourceGroups/delete"
        ],
        "notDataActions": []
      }
    ]

最佳答案

Scale sets are built from virtual machines. With scale sets, the management and automation layers are provided to run and scale your applications.

因此,部署 VM 和 VM 规模集之间的 RBAC 没有区别。测试结果如下:

enter image description here

根据您发布的错误,子网没有写权限。我认为您应该检查一下您使用过的帐户。如果您对 Vnet 使用 RBAC,则至少需要贡献者权限。

您可以从此 link 获取有关虚拟机和规模集之间差异的更多详细信息.

关于azure - VM 与 VM 规模集的 RBAC 有何区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53012713/

相关文章:

azure - 使用章节或时间线标记在 Azure 媒体服务中对视频进行编码

node.js - 如何使用适用于 Node.js 的 bot builder sdk 在打字栏中添加“开始”按钮

azure - 如何在 Azure 中远程调试 net46 ASP.NET Core 应用程序?

linux - 重置 Azure Linux ARM VM 的密码出现错误

powershell - Azure ARM 模板部署中的 DSC ConfigurationData 参数

azure - 无法连接到 Azure 公共(public) IP/负载均衡器(连接被拒绝)

azure - 从虚拟网络网关中删除点到站点

.net - 我可以在 Azure 上为常规网站设置 SSL吗? (不是 WCF 或 MVC)

azure - Azure VM 中的 Thingsboard 未监听指定端口

azure - 跨 Azure 租户的 Azure SQL Server VNet 白名单