Azure kubernetes 服务创建问题
Azure kubernetes service creation issue
我正在使用高级网络选项在 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,没有测试这个)。这有助于锁定安全性。你需要一个自定义角色来做到这一点。如果您不想担任自定义角色,现有答案就可以了。
有两种方法可以解决此问题:
1.You 只需在 vnet 范围内为您的帐户分配一个 Owner
角色。
让您的管理员用户(登录门户的帐户需要 vnet 中的 Owner
角色),导航到门户错误中提到的 vnet -> Access control (IAM)
-> Add
-> Add role assignment
-> 将错误中的帐户添加为 Owner
,有关详细信息,请参阅此 link。
将您的帐户分配给 vnet 后,您将能够创建 aks。
在这种情况下,其他人提到的custom role是毫无意义的。一旦用户获得 Microsoft.Authorization/roleAssignments/write
权限,他就可以为自己分配任何他想要的角色,包括 Owner
角色。所以对于安全问题,也于事无补。
2.If 不允许您将您的帐户作为 Owner
分配给您的 vnet,这里有一个更好的方法。您可以让您的管理员用户(该帐户在 vnet 中有一个 Owner
)添加您在 Authentication
步骤中配置的服务主体(而不是 select create new
选项)作为 vnet 的 Network Contributor
,然后当您创建 aks 时,它也可以正常工作。
如果您没有服务主体,请参阅此 link 创建它。
我正在使用高级网络选项在 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,没有测试这个)。这有助于锁定安全性。你需要一个自定义角色来做到这一点。如果您不想担任自定义角色,现有答案就可以了。
有两种方法可以解决此问题:
1.You 只需在 vnet 范围内为您的帐户分配一个 Owner
角色。
让您的管理员用户(登录门户的帐户需要 vnet 中的 Owner
角色),导航到门户错误中提到的 vnet -> Access control (IAM)
-> Add
-> Add role assignment
-> 将错误中的帐户添加为 Owner
,有关详细信息,请参阅此 link。
将您的帐户分配给 vnet 后,您将能够创建 aks。
在这种情况下,其他人提到的custom role是毫无意义的。一旦用户获得 Microsoft.Authorization/roleAssignments/write
权限,他就可以为自己分配任何他想要的角色,包括 Owner
角色。所以对于安全问题,也于事无补。
2.If 不允许您将您的帐户作为 Owner
分配给您的 vnet,这里有一个更好的方法。您可以让您的管理员用户(该帐户在 vnet 中有一个 Owner
)添加您在 Authentication
步骤中配置的服务主体(而不是 select create new
选项)作为 vnet 的 Network Contributor
,然后当您创建 aks 时,它也可以正常工作。
如果您没有服务主体,请参阅此 link 创建它。