设置可信映像政策


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

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

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

准备工作

  • 请参阅使用限制条件页面,了解如何在组织级层管理政策。
  • 阅读了解层次结构评估页面,了解组织政策的传播方式。
  • 如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

限制

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

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

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

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

设置映像访问限制

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

您可以对 Compute Engine 上的所有可用公共映像设置限制条件。 如需映像项目名称的列表,请参阅操作系统详细信息。 您还可以使用 ml-images 项目来限制 Compute Engine 上的可用机器学习映像。如果您使用无服务器 VPC 访问通道,请向项目授予使用 serverless-vpc-access-images 项目中的 Compute Engine 虚拟机映像的权限。

使用 Google Cloud 控制台或 Google Cloud CLI 设置映像访问权限限制条件。

控制台

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

  1. 转到组织政策页面。

    转到组织政策

  2. 在政策列表中,点击定义可信映像项目。系统随即会显示政策详情页面。

  3. 政策详情页面上,点击管理政策。系统随即会显示修改政策页面。

  4. 修改政策页面上,选择自定义

  5. 对于强制执行,请选择强制执行选项。如需了解继承机制与资源层次结构,请参阅了解层次结构评估

  6. 点击添加规则

  7. 政策值列表中,您可以选择该组织政策是允许访问所有映像项目、拒绝访问所有映像项目,还是指定一组自定义项目来允许或拒绝访问。

    如需设置政策规则,请完成以下任一选项:

    • 如需允许用户使用所有公开映像创建启动磁盘,请选择全部允许
    • 如需限制用户使用所有公共映像创建启动磁盘,请选择全部拒绝
    • 如需指定用户可以用来创建启动磁盘的一组精选公共映像,请选择自定义。系统会显示政策类型自定义值字段。

      1. 政策类型列表中,选择允许拒绝
      2. 自定义值字段中,使用 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。

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

后续步骤