IBM Cloud Docs
为什么我在 Container Registry中收到 Authorization required 错误?

为什么我在 Container Registry中收到 Authorization required 错误?

您正在尝试访问 IBM Cloud® Container Registry,但收到 Authorization required 个错误。

当您尝试访问 Container Registry 时,会收到以下信息之一。

  • Authorization required. See https://cloud.ibm.com/docs/Registry?topic=Registry-troubleshoot-auth-req
  • You were not authorized to complete this operation.
  • CRG0014E An error occurred when authenticating your request with IBM Cloud. Clear your browser cookies, log in to IBM Cloud, and try your request again.
  • Status code 401 Unauthorized,如果您正在使用 IBM Cloud Code Engine,那么可能会看到此消息,请参阅 为什么在使用 Code Engine时收到 Unauthorized 错误? 以获取帮助。
  • UNAUTHORIZED: Authorization required,如果您正在将 cosign 与 Podman配合使用,那么可能会看到此消息,请参阅 为什么在使用 Podman时尝试使用 cosign 拉取映像时迂到问题? 以获取帮助。

下列替代方法是可能的原因:

场景 A. 您正在尝试推送或拉取映像,但您没有有效的凭证。

  • 您尝试使用无效的 API 密钥登录到 Container Registry。
  • 您尝试在未登录的情况下访问 Container Registry。
  • 客户机尝试在没有不记名令牌的情况下访问 Container Registry。
  • 客户机尝试使用已到期的 OAuth 令牌访问 Container Registry。

有关如何解决此问题的更多信息,请参阅 场景 A. 您正在尝试推送或拉取映像

方案 B. 您已登录到 Container Registry的错误区域。 要检查您登录到的区域,请运行 ibmcloud cr region 命令。

有关如何解决此问题的更多信息,请参阅 方案 B. 您已登录到错误的区域

场景 C。 您正在尝试使用 API。

  • 您尝试使用无效的 API 密钥向 Container Registry API 进行认证。
  • 您尝试使用无效的帐户标识向 Container Registry API 进行认证。

有关如何解决此问题的更多信息,请参阅 方案 C。您正在尝试使用 API

可以通过以下方式来解决此问题:

场景 A. 您正在尝试推送或拉取图像

您无法访问 Container Registry,因为您没有有效的凭证。

您可以通过以下方法解决这些问题:

  • 检查有关将客户机记录到 Container Registry中的信息,请参阅 将映像推送到名称空间
  • 使用用户名 iamapikey 和 API 密钥作为密码,创建并使用有效的 IAM API 密钥将客户机 (例如 Docker) 记录到 Container Registry 中。 有关更多信息,请参阅管理用户 API 密钥
  • 使用自动化访问 Container Registry 时,请设置服务标识和 API 密钥。 有关更多信息,请参阅 访问 Container Registry

方案 B. 您已登录到错误的区域

无法访问 Container Registry,因为您已登录到错误的区域。

要检查您登录到的区域,请运行 ibmcloud cr region 命令。

可以通过以下方式来解决此问题:

如果您的图像位于 Container Registry 的不同区域,则必须通过运行以下命令在正确的区域登录 IBM Cloud。

  1. ibmcloud cr region-set REGION,其中 REGION 是区域的名称,请参阅 本地区域
  2. ibmcloud cr login

有关更多信息,请参阅 以本地区域为目标

场景 C. 您正在尝试使用 API

无法访问 Container Registry,因为您尝试使用无效的 API 密钥或帐户标识向 Container Registry API 进行认证。

可以通过以下方式来解决此问题:

  • 使用 ibmcloud CLI 或 IAM API 来检索有效 OAuth 令牌,以向 Container Registry API 进行认证。 有关更多信息,请参阅 IBM Cloud Container Registry API-认证
  • 向 Container Registry API 进行认证时,请确保使用有效的帐户标识。 您可以通过运行 ibmcloud account show 命令来检索帐户标识。