GCR.IO 图像的权限被拒绝

问题描述 投票:0回答:1

我刚刚花了 2 天的时间尝试使用以下 docker 命令从 Google Cloud Artefact Registery 获取公共映像。这应该是一个公共图像,我是该帐户的所有者,但我收到下面的权限错误。

docker pull gcr.io/visionai-public-images/vaictl

错误:

Error response from daemon: Head "https://gcr.io/v2/visionai-public-images/vaictl/manifests/latest": denied: Permission "artifactregistry.repositories.downloadArtifacts" denied on resource "projects/visionai-public-images/locations/us/repositories/gcr.io" (or it may not exist)

我在本地计算机上运行 gcloud-cli,所以我认为在 cloud shell 中运行它可能会更清晰。同样的问题仍然存在。我还尝试在网上搜索可能对此特定图像有疑问的其他人,但一无所获。

当我尝试从浏览器访问 gcr.io/visionai-public-images 存储库时,我得到一个显示以下内容的页面:

缺少权限: ArtifactRegistry.repositories.get artifactregistry.versions.list

我已验证我在 IAM 的权限列表中拥有这些。

我还通过运行 gcloud auth configure-docker 在本地计算机上重新配置了 docker,但看起来我已经配置了它。 输出如下:

{
  "credHelpers": {
    "gcr.io": "gcloud",
    "us.gcr.io": "gcloud",
    "eu.gcr.io": "gcloud",
    "asia.gcr.io": "gcloud",
    "staging-k8s.gcr.io": "gcloud",
    "marketplace.gcr.io": "gcloud",
    "us-central1-docker.pkg.dev": "gcloud",
    "us-docker.pkg.dev": "gcloud"
  }
}

关于如何解决这个问题有什么建议吗?

我尝试添加权限,运行 gcloud configure-docker 并在网络上搜索解决方案。

docker cloud gcloud
1个回答
0
投票

gcr.io/visionai-public-images
不是可公开访问的工件注册表。如果是,您将能够使用以下方式列出图像:

gcloud container images list --repository=gcr.io/visionai-public-images

但是这个错误是:

ERROR: (gcloud.container.images.list) Bad status during token exchange: 403
b'{"errors":[{"code":"DENIED","message":"Permission \\"artifactregistry.repositories.downloadArtifacts\\" 
denied on resource \\"projects/visionai-public-images/locations/us/repositories/gcr.io\\" 
(or it may not exist)"}]}\n'

(对像

gcr.io/google-containers
这样的实际公开可用存储库尝试相同的操作,您将获得图像列表)。

如果您是为该工件注册表提供服务的 GCP 项目的所有者(您称您是“帐户的所有者”)并且希望图像公开可用,请将角色

Artifact Registry Reader
分配给
allUsers
组解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.