Azure active directory 使用JSON定义更新NSG。NSG资源上只有参与者权限

Azure active directory 使用JSON定义更新NSG。NSG资源上只有参与者权限,azure-active-directory,arm-template,azure-cli,azure-nsg,Azure Active Directory,Arm Template,Azure Cli,Azure Nsg,我有一个名为nsg properties.json的文件,如下所示: { "securityRules": [ <twenty NSG rules are here> ] } { “安全规则”:[ ] } 我有一个服务主体,只有一个角色分配,它是范围/subscriptions/$SUBSCRIPTION\u ID/resourceGroups/$VNET\u RESOURCE\u GROUP/providers/Microso

我有一个名为
nsg properties.json
的文件,如下所示:

{
    "securityRules": [
        <twenty NSG rules are here>
    ]
}
{
“安全规则”:[
]
}
我有一个服务主体,只有一个角色分配,它是范围
/subscriptions/$SUBSCRIPTION\u ID/resourceGroups/$VNET\u RESOURCE\u GROUP/providers/Microsoft.Network/networkSecurityGroups/$NSG\u NAME
上的
参与者,它是我的NSG的资源ID

如何使用
NSG properties.json
中的属性定义以编程方式更新NSG?我尝试过的事情:

  • 使用手臂模板。无法工作,因为我的服务主体在我的资源组的作用域上没有Microsoft.Resources/subscriptions/resourcegroups/write
  • 使用az资源创建--id$NSG\u id--properties@NSG properties.json。无法工作,因为我的服务主体在我的资源组的作用域上没有Microsoft.Resources/subscriptions/resourcegroups/read
  • 这里有
    az-network-nsg-update
    API,但我不知道如何使用JSON定义作为输入

    你有什么建议吗?

    它不能这样工作。您需要向您的服务原则授予
    网络参与者
    Microsoft.Network/networkSecurityGroups/write
    权限才能更新NSG。退房:

    编辑:
    在第二种情况下,您提到:

    使用az资源创建--id$NSG_id--properties@NSG-properties.json。 没有工作,因为我的服务负责人没有 Microsoft.Resources/subscriptions/resourcegroups/read的范围 我的资源组


    如果不将
    Microsoft.Resources/subscriptions/resourcegroups/read
    角色授予您的SP,这是不可能的。这就是设计的方式。

    My SP在NSG上有
    Contributor
    ,这确实赋予了
    Microsoft.Network/networkSecurityGroups/write
    对作用域的权限
    /subscriptions/$SUBSCRIPTION\u ID/resourceGroups/$VNET\u RESOURCE\u GROUP/providers/Microsoft.Network/networkSecurityGroups/$NSG\u NAME
    。我遇到的障碍是,出于某种原因,我的SP也需要RG范围上的Microsoft.Resources/subscriptions/resourcegroups/read如果您使用
    az resource create
    在RG中创建资源,您还必须在RG上为您的SP指定贡献者角色。这不太正确。。。我昨天发现,在RG上,读者角色已经足够了。我会把这写为一个答案,但它并没有解决我的问题。你能分享这个链接吗?没有链接,只有我自己的实验。不过,这是有道理的,正如我的错误所说,我在RG作用域上缺少
    Microsoft.Resources/subscriptions/resourcegroups/read
    ,而
    Reader
    角色确实授予了该权限。