部署到 Compute Engine

Compute Engine 可以直接从 Artifact Registry 代码库拉取容器,以便您在虚拟机 (VM) 实例上运行容器化工作负载。您可以配置服务账号角色和访问权限范围,以控制虚拟机如何跨项目访问或上传制品。

所需权限

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-write、cloud-platform 或 full-control。
  • 虚拟机实例与您要访问的代码库不在同一项目中。在包含代码库的项目中,为该实例的服务账号授予所需权限。
  • 代码库位于同一项目中,但您不希望默认服务账号对所有代码库都具有相同的访问权限级别。在这种情况下,您必须在代码库级层授予适当的权限,并在项目级层撤消 Artifact Registry 权限。
  • 虚拟机与自定义服务账号相关联。确保服务账号具有所需权限和访问权限范围。
  • 您正在使用自定义角色授予权限,但该自定义角色不包含所需的 Artifact Registry 权限。为角色添加所需的权限。