首页 > 解决方案 > Azure 容器注册表 - 401 未经授权的错误

问题描述

我一直在尝试将我的 docker 映像推送到我组织的 Azure 容器注册表中,但它一次又一次地失败并出现 401 错误。我知道 401 错误与身份验证/授权有关,但我尝试同时提供“ Azure 服务主体 ID ”,该 ID 具有对 ACR 的贡献者访问权限以及“ Azure 容器注册表管理员访问密钥”。最终结果是一样的,得到 401 未经授权的错误。

我认为 ACR 的“贡献者”角色足以玩弄它,因为它几乎拥有所有特权。

即使我使用我相信将拥有所有足够权限的ACR Admin 访问密钥,更让我感到困惑的是得到 401 错误。

我试图用我自己的 azure 帐户复制相同的场景,但我没有收到此错误。我尝试了所有可能性,并且在我的帐户中一切都像魅力一样。

我是否遗漏了什么或哪里出了问题?

标签: azureauthenticationazure-container-registry

解决方案


似乎是有线的。通常,管理员访问密钥具有管理 ACR 的所有权限。所以它必须具有将图像推送到 ACR 中的能力。

通常,获得身份验证的可能原因如下:

  1. 服务主体没有来自 ACR 的足够权限,这包括分配错误的角色或错误的范围。因此,如果角色和范围正确,您可以检查角色分配。
  2. 不要使用正确的服务器 URL 登录 ACR,因此这需要您使用正确的服务器 URL 和凭据再次登录
  3. 图片名称和标签与您有权推送的ACR不匹配,因此您需要检查图片名称是否正确。例如,myacr.azurecr.io/image:tag

推荐阅读