对资源的权限 "artifactregistry.repositories.downloadArtifacts" 被拒绝

Permission "artifactregistry.repositories.downloadArtifacts" denied on resource

虽然成功创建了工件存储库,但 运行 将图像推送到 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)


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

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

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

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

快速提示:当您在 console,然后点击 SETUP INSTRUCTIONS