首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从gcr.io提取权限失败

从gcr.io提取权限失败
EN

Stack Overflow用户
提问于 2020-02-26 16:32:41
回答 1查看 872关注 0票数 0

我有两个虚拟机运行在谷歌电脑引擎。它们是相同的,除非它们在不同的服务帐户下运行。

据我所知,这两个服务帐户对gcr.io使用的存储桶具有相同的权限。

当VM启动时运行的init脚本从data-dev-dp@project-id.iam.gserviceaccount.com上从gcr.io中提取一个停靠容器,在VM上运行时,拉成功:

代码语言:javascript
复制
Unable to find image 'gcr.io/project-id/gdp/jupyterlab-py2-spark-notebook:1.9' locally
1.9: Pulling from project-id/gdp/jupyterlab-py2-spark-notebook
bc51dd8edc1b: Pulling fs layer
b56e3f6802e3: Pulling fs layer

在以data-dev-cmp@project-id.iam.gserviceaccount.com方式运行的VM上,拉失败:

代码语言:javascript
复制
Unable to find image 'gcr.io/project-id/gdp/jupyterlab-py2-spark-notebook:1.9' locally
/usr/bin/docker: Error response from daemon: pull access denied for gcr.io/project-id/gdp/jupyterlab-py2-spark-notebook, repository does not exist or may require 'docker login': denied: Permission denied for "1.9" from request "/v2/project-id/gdp/jupyterlab-py2-spark-notebook/manifests/1.9"

我的印象是,拥有相同的权限就足够了,因此,我想知道还需要哪些权限才能完成这项工作。有人能提点建议吗?

最新消息。我使用工具箱(https://cloud.google.com/container-optimized-os/docs/how-to/toolbox)来验证对于这两个帐户存储桶的权限是否相同:

代码语言:javascript
复制
# gsutil ls gs://artifacts.project-id.appspot.com
gs://artifacts.project-id.appspot.com/containers/
代码语言:javascript
复制
# gsutil ls gs://artifacts.project-id.appspot.com
AccessDeniedException: 403 data-dev-cmp@project-id.iam.gserviceaccount.com does not have storage.objects.list access to artifacts.project-id.appspot.com.

显然,这就是问题的原因,尽管我觉得很奇怪,我上面的GCP控制台截图显示不同的地方。我正在继续调查。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-26 23:41:19

事实证明,这是一个我们非常熟悉的问题,因为我们不断地建立基础设施,拆除基础设施,并重新站起来。当这样做时,特别是当这些操作不干净地发生时(就像今天的情况一样),我们可以发现自己处于一个位置,角色被分配给服务帐户的旧实例。控制台会告诉您帐户有分配给它的角色,但实际上并非如此。我们经常遇到这个问题。

在这种情况下,解决方案是彻底拆除所有基础设施,然后再重新创建它,包括显示问题的服务帐户。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60418469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档