az acr列表-永远不会为服务主体返回任何值

时间:2019-04-26 18:29:18

标签: azure azure-kubernetes

我有一个现有的服务主体,为新创建的ACR分配了“ acrpull”角色。我是通过以下命令执行此操作的:

az role assignment create --assignee {application id} --role acrpull --scope {id value as returned by the command az acr list}

我得到答复:

  

角色分配已经存在。 (这是因为我在重复   此步骤)

现在,我使用服务主体凭据登录:

az login --service-principal -u {application id} -p {password} --tenant {tenant ID}

现在,如果我执行:az acr list,我希望看到列出我的ACR。相反,我总是看到'[]'。任何想法,可能是什么问题?

2 个答案:

答案 0 :(得分:0)

您应在指定用户/组时指定应用程序ID为--assignee,而不指定--scope参数,在该参数中,您将以/ subscriptions / 1234 /的形式传递应用程序ID resourceGroups / MyResourceGroup / providers / Microsoft.ContainerRegistry / registries / MyRegistry。看一下参数here

这在门户网站中更加直观。

enter image description here

答案 1 :(得分:0)

那是因为您需要读取权限才能列出资源,所以您仅具有从ACR中提取图像的权限,而没有读取它的权限。如果您尝试使用此证书从该ACR中提取图像-它会起作用。如果要列出它们,请为该ACR分配读取权限。