我正在使用高级网络选项在Azure中创建kubernetes服务,其中我已为其选择了特定的vNet和子网。
我收到如下错误:
{"code":"InvalidTemplateDeployment","message":"The template deployment failed with error: 'Authorization failed for template resource '<vnetid>/<subnetid>/Microsoft.Authorization/xxx' of type 'Microsoft.Network/virtualNetworks/subnets/providers/roleAssignments'. The client '<emailid>' with object id 'xxx' does not have permission to perform action 'Microsoft.Authorization/roleAssignments/write' at scope '/subscriptions/<subid>/resourceGroups/<rgid>/providers/Microsoft.Network/virtualNetworks/<vnetid>/subnets/<subnetid>/providers/Microsoft.Authorization/roleAssignments/xxx'.'."}
我有贡献者角色。
根据下面的文章,您将需要具有对vNet的所有者特权才能更改对其的访问。
现有答案并不完全正确,显然,您可以摆脱Owner
角色,但在子网范围内只需要Microsoft.Authorization/roleAssignments/write
(可能是vnet,没有对此进行测试)。这有助于降低安全性。您需要一个自定义角色来执行此操作。如果您不想担任自定义角色,则现有答案就可以了。
实际上,您只需要在vNet范围内为您的帐户分配一个Owner
角色。
在这种情况下,别人提到的自定义角色是没有意义的。用户获得Microsoft.Authorization/roleAssignments/write
权限后,便可以为他分配所需的任何角色,包括Owner
角色。因此对于安全性问题,它无济于事。