设置可信映像政策

默认情况下,项目中的用户可以使用任何公共映像以及主帐号可以通过 IAM 角色进行访问的任何映像来创建永久性磁盘或复制映像。但在某些情况下,您可能希望限定主帐号只能通过包含符合政策或安全要求的获准软件的映像来创建启动磁盘。

使用可信映像功能定义组织政策,仅允许主帐号通过特定项目中的映像创建永久性磁盘。

如要限制可以使用映像的位置,请参阅限制共享映像、磁盘和快照的使用

准备工作

限制

  • 可信映像政策不限制对以下映像的访问:

    • 本地项目中的自定义映像

    • Cloud Storage 存储分区中的映像文件。

  • 可信映像政策不会阻止用户在其本地项目中创建映像资源。

设置映像访问限制

通过对项目、文件夹或组织设置 compute.trustedImageProjects 限制可制定映像访问政策。您必须具有修改组织政策的权限才能设置这些限制。例如,roles/orgpolicy.policyAdmin 具有设置这些限制的权限。 如需详细了解如何在项目、文件夹或组织级层管理政策,请参阅使用限制条件

您可以对 Compute Engine 上的所有可用公共映像设置限制条件。如需映像项目名称的列表,请参阅操作系统详细信息。 您还可以使用 ml-images 项目来限制 Compute Engine 上的可用机器学习映像。

使用 Google Cloud Console 或 gcloud 命令行工具设置映像访问限制条件。

控制台

例如,如需在项目级层设置限制条件,请执行以下操作:

  1. 转到组织政策页面。

    转到组织政策

  2. 在政策列表中,点击定义可信映像项目
  3. 点击修改以自定义现有的可信映像限制。
  4. 修改页面,选择自定义
  5. 政策值下拉列表中,选择自定义以设置对特定映像项目的限制条件。
  6. 政策类型下拉列表中,指定如下所示的一个值:
    • 如需限制指定的映像项目,请选择拒绝
    • 如需移除指定映像项目的限制,请选择允许
  7. 自定义值字段中,使用 projects/IMAGE_PROJECT 格式输入映像项目的名称。将 IMAGE_PROJECT 替换为要设置限制条件的映像项目。

    如果您要设置项目级限制条件,它们可能与现有的组织级或文件夹级限制条件冲突。

  8. 点击新政策值以添加多个映像项目。

  9. 点击保存以应用该限制条件。

如需详细了解如何创建组织政策,请参阅创建和管理组织政策

gcloud

例如,如需在项目级层设置限制条件,请执行以下操作:

  1. 使用 resource-manager org-policies describe 命令获取项目的现有政策设置。

    gcloud resource-manager org-policies describe \
       compute.trustedImageProjects --project=PROJECT_ID \
       --effective > policy.yaml
    

    PROJECT_ID 替换为您的项目 ID。

  2. 在文本编辑器中打开 policy.yaml 文件并修改 compute.trustedImageProjects 限制。添加所需的限制并移除不再需要的限制。修改完此文件后,请保存更改。例如,您可以在政策文件中设置以下限制条目:

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
     allowedValues:
        - projects/debian-cloud
        - projects/cos-cloud
     deniedValues:
        - projects/IMAGE_PROJECT
    

    IMAGE_PROJECT 替换为您要在项目中限制的映像项目的名称。

    或者,您也可能希望拒绝访问项目中除自定义映像之外的所有映像。对于这种情况,请使用以下示例:

    constraint: constraints/compute.trustedImageProjects
    listPolicy:
     allValues: DENY
    

  3. policy.yaml 文件应用于您的项目。如果组织或文件夹已有现有限制,则这些限制可能与您设置的项目级层限制冲突。 如需应用限制条件,请使用 resource-manager org-policies set-policy 命令。

    gcloud resource-manager org-policies set-policy \
       policy.yaml --project=PROJECT_ID
    

    PROJECT_ID 替换为您的项目 ID。

在配置完限制条件后,请进行测试以确保这些条件会创建您所需要的限制。

后续步骤