3

GKE 集群如何从托管在另一个项目中的 Container Registry 中提取容器镜像?

我在项目中有一个 GKE 集群,<reader-project>试图访问项目中的 GCR 图像<registry-project>

我已尝试将 GCE 服务帐户电子邮件添加为<reader-project>对 中的存储桶具有读者访问权限的用户<registry-project>,但我仍然收到错误消息:

<Error><Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Caller does not have storage.objects.get access to object us.artifacts.<registry-project>.appspot.com/containers/images/sha256:<tag>.
</Details></Error>
4

3 回答 3

4

尝试将 GCE 服务帐户电子邮件添加为具有存储对象查看者角色的用户。它为服务帐户提供对项目中 GCS 对象(容器图像)的只读访问权限。

于 2016-07-27T19:26:06.083 回答
1

查看您拥有 GKE 的项目的 IAM 权限,您将看到类似于以下内容的用户:123456789-compute@developer.gserviceaccount.com

然后在您的容器注册表项目中,授予该用户Storage Object Viewer permission. 然后您的 GKE 将被允许从中提取图像

于 2017-08-07T17:48:41.467 回答
0

您可以运行以下命令来检查两个存储桶的权限:

gsutil acl 获取 gs://us.artifacts..appspot.com

gsutil acl 获取 gs://artifacts..appspot.com

artifacts..appspot.com 是默认存储桶。当您将服务帐户添加为存储对象查看器时,将授予默认存储桶的只读权限。

这是关于 gsutil 工具的链接: https ://cloud.google.com/storage/docs/gsutil/commands/acl

于 2016-07-27T20:42:42.473 回答