我在 Google Cloud 中有两个项目。在第一个项目中,我在容器注册表中有一些图像,我在 gke 中使用它。
当我尝试在第二个项目中创建容器时,它给了我一个错误:
错误:状态 403 试图提取存储库 project-1/image-x:“访问被拒绝。”
我如何在 gke 但在不同的项目中使用这些图像?我不想在第二个项目中创建相同的图像。
我在 Google Cloud 中有两个项目。在第一个项目中,我在容器注册表中有一些图像,我在 gke 中使用它。
当我尝试在第二个项目中创建容器时,它给了我一个错误:
错误:状态 403 试图提取存储库 project-1/image-x:“访问被拒绝。”
我如何在 gke 但在不同的项目中使用这些图像?我不想在第二个项目中创建相同的图像。
在您的第二个项目(GKE 项目)中,查看 IAM 权限,您将看到类似于以下内容的用户:123456789-compute@developer.gserviceaccount.com。
然后在您的第一个项目(容器注册表项目)中,授予该用户Storage Object Viewer permission以允许 GKE 拉取图像。
您可以使用存储图像的 Google Cloud Storage 存储分区上可用的访问控制设置来修改对哪些人可见图像。
参考:https ://cloud.google.com/container-registry/docs/access-control
如果您只想让所有图像对全世界都可读,那么来自其他 StackOverflow 答案的命令应该会有所帮助:
gsutil -m acl -r set public-read gs://bucket-name
gsutil -m defacl set public-read gs://bucket-name
我在此处的回答中对此进行了详细讨论:Access google container registry without the gcloud client
如果您无法正常工作,也请随时通过 gcr-contact@google.com 与我们联系,我们很乐意为您提供帮助。