如何提供对 gcloud gcr.io 中特定图像的访问?
How to provide access to a specific image in gcloud gcr.io?
我已经创建了名称为 us.gcr.io/my-project/my-image
的 docker 图像,我想创建服务帐户,该帐户将有权仅拉取和推送此特定的 docker 图像。
https://cloud.google.com/container-registry/docs/access-control
据我了解,我需要提供对存储所有图像的整个存储桶的访问权限。是否可以在不创建新的 google 项目的情况下设置特定图像的权限(我现在看到的唯一方法)?
您可以为存储桶内的特定图像(对象)提供服务帐户的权限,这可以通过 fine-grained access 完成,您必须授予 URL 中引用的权限你指出:
推送(读写)
- storage.buckets.create
- storage.buckets.delete
- storage.buckets.get
- storage.buckets.list
- storage.buckets.update
- storage.objects.create
- storage.objects.delete
- storage.objects.get
- storage.objects.list
- storage.objects.update
拉取(只读)
- storage.objects.get
- storage.objects.list
由于我假设您已经创建了存储桶,您可以按照以下步骤将默认(统一)权限更改为细粒度:
- 在 Google 云控制台中打开云存储浏览器。
- 单击与您要向其授予成员角色的存储桶关联的存储桶溢出菜单(三个点垂直对齐的菜单)。
- 选择编辑存储桶权限。
- 如果打开的右侧菜单显示“统一:未启用对象级 ACL”,请单击“切换到细粒度”,然后在打开的弹出窗口中 select“细粒度”并单击保存。
尽量在创建存储桶后 90 天之前完成,否则将永久统一权限,您将需要创建一个新存储桶。
您不能直接使用 Google Container Registry。如果您向服务帐户提供存储对象查看器角色,它可以看到您所有容器注册表中的所有图像。
但是,您可以使用 Artifact repository 来完成。为此
- 创建新存储库
- Select 您的存储库并单击添加成员
- 添加您的服务帐户并设置角色 Artifact Repository Reader
然后你可以访问你的图像(或者你可以推送它)到这个路径
<location>-docker.pkg.dev/<ProjectId>/<RepositoryName>/<ImageName>
我已经创建了名称为 us.gcr.io/my-project/my-image
的 docker 图像,我想创建服务帐户,该帐户将有权仅拉取和推送此特定的 docker 图像。
https://cloud.google.com/container-registry/docs/access-control
据我了解,我需要提供对存储所有图像的整个存储桶的访问权限。是否可以在不创建新的 google 项目的情况下设置特定图像的权限(我现在看到的唯一方法)?
您可以为存储桶内的特定图像(对象)提供服务帐户的权限,这可以通过 fine-grained access 完成,您必须授予 URL 中引用的权限你指出:
推送(读写)
- storage.buckets.create
- storage.buckets.delete
- storage.buckets.get
- storage.buckets.list
- storage.buckets.update
- storage.objects.create
- storage.objects.delete
- storage.objects.get
- storage.objects.list
- storage.objects.update
拉取(只读)
- storage.objects.get
- storage.objects.list
由于我假设您已经创建了存储桶,您可以按照以下步骤将默认(统一)权限更改为细粒度:
- 在 Google 云控制台中打开云存储浏览器。
- 单击与您要向其授予成员角色的存储桶关联的存储桶溢出菜单(三个点垂直对齐的菜单)。
- 选择编辑存储桶权限。
- 如果打开的右侧菜单显示“统一:未启用对象级 ACL”,请单击“切换到细粒度”,然后在打开的弹出窗口中 select“细粒度”并单击保存。
尽量在创建存储桶后 90 天之前完成,否则将永久统一权限,您将需要创建一个新存储桶。
您不能直接使用 Google Container Registry。如果您向服务帐户提供存储对象查看器角色,它可以看到您所有容器注册表中的所有图像。
但是,您可以使用 Artifact repository 来完成。为此
- 创建新存储库
- Select 您的存储库并单击添加成员
- 添加您的服务帐户并设置角色 Artifact Repository Reader
然后你可以访问你的图像(或者你可以推送它)到这个路径
<location>-docker.pkg.dev/<ProjectId>/<RepositoryName>/<ImageName>