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-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
角色确实授予了该权限。