无法创建Azure AKS群集:CreateRoleAssignmentError

时间:2019-07-14 12:36:54

标签: azure azure-active-directory azure-aks azure-rbac

我尝试在全新的订阅中创建AKS集群。通过Web界面创建集群时,最终会产生CreateRoleAssignmentError错误,并显示以下消息:

  

RoleAssignmentReconciler重试超时:autorest / azure:服务   返回错误。 Status = 403代码=“ AuthorizationFailed”消息=“ The   客户ID为'foo'的客户端'foo'没有授权   执行动作'Microsoft.Authorization / roleAssignments / write'over   范围   '/subscriptions/bar/resourceGroups/MC_MyResourceGroup_mycluster_region/providers/Microsoft.Authorization/roleAssignments/az

请注意,根据documentation,群集是使用手动创建的服务主体创建的。该服务主体在预订中的所有资源组上都具有“所有者”角色。

还请注意,我必须手动创建服务主体的原因是,首先无法创建集群。尝试在没有明确指定服务主体的情况下创建集群(即,请求自动创建一个新的集群)时,产生了另一个错误:

  

ServicePrincipalProfile中的凭据无效。请参阅   https://aka.ms/aks-sp-help了解更多详情。 (详细信息:adal:刷新   请求失败。状态码=“ 400”。响应主体:   {“错误”:“未授权的客户端”,“错误描述”:“ AADSTS700016:   标识符为“ foo”的应用为   在目录“ bar”中找不到。   如果应用程序尚未安装,则可能会发生这种情况。   租户的管理员或租户中任何用户的同意。   您可能发送了错误的身份验证请求   租户。\ r \ n跟踪ID:   9ec6ed81-892d-4592-b7b5-61842f5c1200 \ r \ n相关ID:   bffbb112-7348-4403-a36f-3010bf34e594 \ r \ n时间戳:2019-07-13   15:48:02Z“,”错误代码“:[700016],”时间戳“:” 2019-07-13   15:48:02Z“,” trace_id“:” 9ec6ed81-892d-4592-b7b5-61842f5c1200“,” correlation_id“:” bffbb112-7348-4403-a36f-3010bf34e594“,” error_uri“:” https://login.microsoftonline.com/error?code=700016“ })

我正在使用一个“初始”管理员用户对一个新帐户和一个预订执行这些操作,因此我想所有权限都应该就位。什么能解释以上错误?

2 个答案:

答案 0 :(得分:0)

按照OP的要求,这就是答案。为了在Azure中创建资源(与哪个资源无关),您需要类型为provider/resource/write的权限。编辑也一样。此基本原则适用于那里的所有资源。现在让我们比较所有者和贡献者:

enter image description here

我有一个AKS模板,需要贡献者角色才能工作,并且需要使用此自定义角色:

$role = Get-AzureRmRoleDefinition "Virtual Machine Contributor"
$role.Id = $null
$role.Name = "Assign AKS permissions to the vnet"
$role.Description = "Assign AKS permissions to the vnet for the inflation process"
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Authorization/roleAssignments/write")

使用此角色+贡献者的代码创建的AKS集群功能全面。

User Access Administrator是一个内置角色,当您是租户承认时,您将被授予该角色,并且您可以授予自己访问租户下所有内容的权限:https://docs.microsoft.com/en-us/azure/role-based-access-control/elevate-access-global-admin。因此,如果您授予自己这个角色,显然可以使用,但是您可以省去更少的权限。

答案 1 :(得分:0)

在我的情况下,我通过再次执行“ az登录”并移至正确的订阅来解决该问题,然后尝试再次运行该命令。有效。

另外,原因可能是您无权在该资源组上创建集群。我以前遇到过这种问题,因为您应该联系管理您的订阅的人来授予您权利。