azure - Azure 容器注册表 - 401 未经授权的错误
问题描述
我一直在尝试将我的 docker 映像推送到我组织的 Azure 容器注册表中,但它一次又一次地失败并出现 401 错误。我知道 401 错误与身份验证/授权有关,但我尝试同时提供“ Azure 服务主体 ID ”,该 ID 具有对 ACR 的贡献者访问权限以及“ Azure 容器注册表管理员访问密钥”。最终结果是一样的,得到 401 未经授权的错误。
我认为 ACR 的“贡献者”角色足以玩弄它,因为它几乎拥有所有特权。
即使我使用我相信将拥有所有足够权限的ACR Admin 访问密钥,更让我感到困惑的是得到 401 错误。
我试图用我自己的 azure 帐户复制相同的场景,但我没有收到此错误。我尝试了所有可能性,并且在我的帐户中一切都像魅力一样。
我是否遗漏了什么或哪里出了问题?
解决方案
似乎是有线的。通常,管理员访问密钥具有管理 ACR 的所有权限。所以它必须具有将图像推送到 ACR 中的能力。
通常,获得身份验证的可能原因如下:
- 服务主体没有来自 ACR 的足够权限,这包括分配错误的角色或错误的范围。因此,如果角色和范围正确,您可以检查角色分配。
- 不要使用正确的服务器 URL 登录 ACR,因此这需要您使用正确的服务器 URL 和凭据再次登录
- 图片名称和标签与您有权推送的ACR不匹配,因此您需要检查图片名称是否正确。例如,
myacr.azurecr.io/image:tag
推荐阅读
- javascript - 如何单元测试使用 yargs 的应用程序在多种语言环境/语言中提供正确的响应?
- npm - 清理纱线中旧的中间依赖项的可靠方法是什么?
- laravel - 无法使用 PayPal PHP SDK 从 PayPal 获取所有交易
- node.js - 使用 Cloud Functions 在 GCP 上调度 Node.js 脚本
- graphql - 结合 GraphQL 查询
- mysql - 尝试编写 SQL 过程的语法错误
- jquery - 使用复选框插件时预先选择数据表的行
- spring-boot - Spring Boot:违反参照完整性约束
- c# - Simple Injector - 在运行时基于指定的泛型类型注入服务
- mysql - mySQL:从不同的表中选择和计数(*)?