0

我有一个名为的文件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?我尝试过的事情:

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

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

你有什么建议吗?

4

1 回答 1

1

它不能像这样工作。您需要对您的服务原则授予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 角色,这是不可能的。设计就是这样。

于 2021-01-28T14:20:06.080 回答