部署到 Compute Engine

Compute Engine 可以直接从 Artifact Registry 代码库拉取容器。

所需权限

Compute Engine 服务账号需要访问 Artifact Registry,才能拉取容器映像。

根据您的组织政策配置,默认服务账号可能会自动获得项目的 Editor 角色。我们强烈建议您通过强制执行 iam.automaticIamGrantsForDefaultServiceAccounts 组织政策限制条件来停用自动角色授予功能。如果您的组织是在 2024 年 5 月 3 日之后创建的,则默认情况下会强制执行此限制条件。

如果您停用自动角色授予功能,则必须决定向默认服务账号授予哪些角色,然后自行授予这些角色

如果默认服务账号已具有 Editor 角色,我们建议您将 Editor 角色替换为权限较少的角色。如需安全地修改服务账号的角色,请使用 Policy Simulator 查看更改的影响,然后授予和撤消相应的角色

以下是不同场景中所需的访问范围和所需角色的一些示例:

  • 如需从 Artifact Registry 仓库拉取容器映像,您必须向 Compute Engine 服务账号授予 Artifact Registry Reader 角色 (roles/artifactregistry.reader)。此外,请确保为 Cloud Storage 存储分区设置了 read-only 访问范围
  • 您希望虚拟机实例上传到代码库。在这种情况下,您必须配置具有对存储空间写入权限的访问权限范围read-writecloud-platformfull-control
  • 虚拟机实例与您要访问的代码库不在同一项目中。在包含代码库的项目中,为该实例的服务账号授予所需权限。
  • 代码库位于同一个项目中,但您不希望默认服务账号在所有代码库中都拥有相同级别的访问权限。在这种情况下,您必须在代码库级层授予适当的权限,并在项目级层撤消 Artifact Registry 权限。
  • 虚拟机与自定义服务账号相关联。确保服务账号具有所需权限和访问权限范围。
  • 您使用自定义角色授予权限,但自定义角色不包含所需的工件注册库权限。向角色添加所需的权限