首页 > 解决方案 > 使用 JSON 定义更新 NSG。只有权限是 NSG 资源的贡献者

问题描述

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

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

我有一个只有一个角色分配的服务主体,它位于我的 NSG 资源 IDContributor的范围内。/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$VNET_RESOURCE_GROUP/providers/Microsoft.Network/networkSecurityGroups/$NSG_NAME

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

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

你有什么建议吗?

标签: azure-active-directoryarm-templateazure-cliazure-nsg

解决方案


它不能像这样工作。您需要对您的服务原则授予Network ContributorORMicrosoft.Network/networkSecurityGroups/write权限才能更新 NSG。 查看更改 NSG 所需的权限

在此处输入图像描述

编辑:


在您提到的第二种情况下:

使用 az resource create --id $NSG_ID --properties @nsg-properties.json。没用,因为我的服务主体在我的资源组范围内没有 Microsoft.Resources/subscriptions/resourcegroups/read。

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


推荐阅读