【问题标题】:Permission "artifactregistry.repositories.downloadArtifacts" denied on resource资源上的权限“artifactregistry.repositories.downloadArtifacts”被拒绝
【发布时间】:2022-07-25 23:04:09
【问题描述】:

虽然工件存储库成功创建,但运行 docker push 以将映像推送到 google 工件注册表会失败并出现权限错误,即使在授予我在 gcloud cli 上使用的所有工件权限后也是如此。

用于推送图片的命令:

docker push us-central1-docker.pkg.dev/project-id/repo-name:v2

错误信息:

The push refers to repository [us-central1-docker.pkg.dev/project-id/repo-name]
6f6f4a472f31: Preparing
bc096d7549c4: Preparing
5f70bf18a086: Preparing
20bed28d4def: Preparing
2a3255c6d9fb: Preparing
3f5d38b4936d: Waiting
7be8268e2fb0: Waiting
b889a93a79dd: Waiting
9d4550089a93: Waiting
a7934564e6b9: Waiting
1b7cceb6a07c: Waiting
b274e8788e0c: Waiting
78658088978a: Waiting
denied: Permission "artifactregistry.repositories.downloadArtifacts" denied on resource "projects/project-id/locations/us-central1/repositories/repo-name" (or it may not exist)


【问题讨论】:

  • 你能分享你用来将你的图像推送到工件注册表的命令/代码吗?您遇到的确切错误信息是什么?
  • @ScottB:我已在问题文本中添加了推送命令和错误消息。谢谢。
  • 您是否已将 Docker (!) 验证到 Artifact Registry?它需要通过Setting up authentication for Docker 中描述的方法之一进行配置

标签: python google-cloud-platform google-cloud-ml google-cloud-vertex-ai docker-push


【解决方案1】:

我能够重新创建您的用例。当您尝试在 repository 上推送图像时,会发生这种情况,其中其特定主机名(与其存储库位置关联)尚未添加到凭据帮助程序配置以进行身份​​验证。您可以参考 @DazWilkin 在 cmets 中提供的 Setting up authentication for Docker 了解更多详情。

在我的示例中,我试图将图像推送到位置为 us-east1 的存储库中,但由于尚未将其添加到凭据帮助程序配置中,因此出现了相同的错误。

在我使用以下命令运行身份验证后(特别是对于 us-east1,因为它是我的存储库的 location),图像被成功推送:

gcloud auth configure-docker us-east1-docker.pkg.dev

快速提示:当您在console 中打开所需的存储库时,您可能会获得特定于您的存储库的身份验证命令,然后单击SETUP INSTRUCTIONS .

【讨论】:

  • 我遇到了同样的问题,但我的不是来自我的计算机的命令。 Cloudbuild 试图访问 atifact 存储库。关于可能是什么问题的任何想法?
  • 大卫找到解决方案了吗?我的情况类似,但来自 GKE 中运行的应用程序。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2022-08-18
    • 2021-09-19
    • 2020-01-11
    • 2021-12-29
    • 2021-08-11
    • 2021-10-03
    • 2015-05-03
    • 2019-04-09
    • 2020-11-23
    相关资源
    最近更新 更多