Azure kubernetes服务创建问题

时间:2019-10-31 11:06:49

标签: azure kubernetes azure-virtual-network azure-aks azure-kubernetes

我正在使用高级网络选项在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'.'."}

我有贡献者角色。

3 个答案:

答案 0 :(得分:2)

根据以下文章,您将需要对vNet拥有所有者权限才能更改对其的访问。

https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#built-in-role-descriptions

答案 1 :(得分:1)

现有答案并不完全正确,显然您可以摆脱Owner的角色,但在子网范围内只需要Microsoft.Authorization/roleAssignments/write(可能是vnet,没有对此进行测试) 。这有助于降低安全性。您需要一个自定义角色来执行此操作。如果您不想担任自定义角色,则现有的答案就可以了。

答案 2 :(得分:0)

有两种方法可以解决此问题:

1。您只需要在vnet范围内为您的帐户分配一个Owner角色。

让您的管理员用户(登录门户网站的帐户需要vnet中的Owner角色),导航到门户网站错误中提到的vnet-> Access control (IAM)-> {{1} }-> Add->将错误中的帐户添加为Add role assignment,有关更多详细信息,请参见此link。 将帐户分配给vnet之后,您将能够创建aks。

在这种情况下,别人提到的custom role毫无意义的。用户获得Owner权限后,便可以为自己分配所需的任何角色,包括Microsoft.Authorization/roleAssignments/write角色。因此,对于安全性问题,这无济于事。

2。如果不允许,则根据情况将帐户作为Owner分配给vnet,这是一种更好的方法。您可以让您的管理员用户(该帐户在vnet中有一个Owner)将您在Owner步骤(未选择Authentication选项)中配置的服务主体添加为{{ 1}}到vnet,然后在创建aks时,它也可以正常工作。

如果您没有服务主体,请参见此link进行创建。