GKE集群如何从另一个项目中托管的Container Registry中提取容器图像?
我在项目<reader-project>
中有一个GKE群集,试图访问项目<registry-project>
中的GCR图像。
我已尝试在<reader-project>
的存储桶中添加<registry-project>
的GCE服务帐户电子邮件作为具有读者访问权限的用户,但我仍然收到错误:
<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>
答案 0 :(得分:4)
尝试将GCE服务帐户电子邮件添加为具有存储对象查看器角色的用户。它为服务帐户提供了对项目中GCS对象(容器映像)的只读访问权限。
答案 1 :(得分:0)
您是否可以运行以下命令来检查两个存储桶的权限:
gsutil acl get gs://us.artifacts..appspot.com
gsutil acl get gs://artifacts..appspot.com
artifacts..appspot.com是默认存储桶。将服务帐户添加为存储对象查看器时,将授予默认存储桶的只读权限。
以下是有关gsutil工具的链接: https://cloud.google.com/storage/docs/gsutil/commands/acl
答案 2 :(得分:0)
查看您拥有GKE的项目的IAM权限,您将看到类似于123456789-compute@developer.gserviceaccount.com
的用户。
然后在容器注册表项目中,为该用户授予Storage Object Viewer permission
。然后,您的GKE将被允许从