使用 JSON 定义更新 NSG。只有权限是 NSG 资源的贡献者

Update NSG with JSON definition. Only permission is contributor on the NSG resource

我有一个名为 nsg-properties.json 的文件,它看起来像这样:

{
    "securityRules": [
        <twenty NSG rules are here>
    ]
}

我有一个只有一个角色分配的服务主体,它在范围 /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$VNET_RESOURCE_GROUP/providers/Microsoft.Network/networkSecurityGroups/$NSG_NAME 上是 Contributor,这是我的 NSG 的资源 ID。

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

az network nsg update API,但我不知道如何使用 JSON 定义作为输入。

你有什么建议吗?

这样不行。 您需要向您的服务原则授予 Network ContributorMicrosoft.Network/networkSecurityGroups/write 权限才能更新 NSG。 查看 Permissions required to make changes to NSG:

编辑:


你提到的第二种情况:

Use az resource create --id $NSG_ID --properties @nsg-properties.json. Didn't work, because my service principal doesn't have Microsoft.Resources/subscriptions/resourcegroups/read on the scope of my resource group.

如果不向您的 SP 赋予 Microsoft.Resources/subscriptions/resourcegroups/read 角色,这是不可能的。设计是这样的