Azure容器注册表权限

时间:2018-02-12 19:42:51

标签: azure docker

我尝试使用Azure AD设置对Azure容器注册表的简单只读访问。

我设法设置了只读访问权限的服务主体,但是在创建AD帐户并在注册表中使用IAM时,我无法使用az acr登录。

我在Azure AD中创建了一个帐户,添加到了注册表IAM,为其分配了读者角色(这与给予服务主体的角色相匹配)但是收到以下错误使用az acr登录

update ITEM_PRICE_HISTORY SET line_price = 4
WHERE item_id IN (SELECT i.item_id FROM ITEM WHERE i.description = 'Spoon');

使用az acr登录的唯一方法是在资源组上分配IAM参与者权限。

有什么东西我不见了吗?

TIA

1 个答案:

答案 0 :(得分:1)

这是一个RBAC问题。

您可以尝试使用此docker login登录ACR吗?

您也可以使用service principal直接登录。将服务主体的应用程序ID 密码提供给docker login命令:

 docker login myregistry.azurecr.io -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p myPassword

使用az acr login登录时,CLI会使用您执行az login时创建的令牌来无缝验证您与注册表的会话。

请检查您的服务主体权限,您也可以创建新的服务主体并分配给此

az ad sp create-for-rbac -n "http://my-app" --role reader --scopes /subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/mygroup

可用的角色是:

读者:拉扯 贡献者:拉动和推动 所有者:拉动,推送和为其他用户分配角色

注意:

当您使用az acr login登录acr时,此命令将使用您执行az login时创建的令牌来登录它。此令牌等于您的服务主体(读者)。

相关问题