配置 Workload Manager 以便与 VPC Service Controls 搭配使用

本页面介绍如何配置入站流量和出站流量规则,以便在受 VPC Service Controls 保护的项目中运行 Workload Manager 评估。

在受 VPC Service Controls 保护的项目中运行 Workload Manager 评估时,您必须为附加到运行 Agent for Compute Workloads 的 Compute Engine 实例的服务帐号配置入站流量和出站流量规则。借助这些规则,服务帐号可以访问 VPC Service Controls 边界内的必需 API。如果您未配置这些规则,代理将无法向 Workload Manager 发送数据,并且您的评估会失败。

如需了解详情,请参阅 VPC Service Controls 概览

准备工作

在为项目设置 VPC Service Controls 之前,请执行以下操作:

  1. 设置 VPC Service Controls 边界
  2. 确定附加到运行 Agent for Compute Workloads 的 Compute Engine 实例的服务帐号。例如,sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com。您可以在控制台的虚拟机实例详情 页面上找到此信息。 Google Cloud
  3. 验证服务帐号是否具有所需角色。例如,请参阅代理和 SAP 工作负载所需角色

所需角色

如需获得在 VPC Service Controls 边界内使用 Workload Manager 所需的权限,请让管理员向您授予项目的Access Context Manager Editor (roles/accesscontextmanager.policyEditor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

为服务边界创建入站和出站规则

如需让 Agent for Compute Workloads 与所需服务通信,您必须在 VPC Service Controls 边界中配置入站和出站规则。

如需详细了解如何创建入站规则,请参阅配置入站和出站政策

控制台

  1. 在 Google Cloud 控制台中,前往 VPC Service Controls 页面。

    转到 VPC Service Controls

  2. 选择您的项目。

  3. 点击服务边界的名称,然后点击修改

  4. 点击入站流量政策出站流量政策

  5. 点击添加入站流量规则

  6. 来源 部分中,指定服务代理的身份:

    1. 对于身份 ,选择选择身份和群组
    2. 点击添加身份
    3. 输入代理服务帐号的电子邮件地址。例如,sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
  7. 目标 部分中,指定允许的操作:

    1. 对于资源 ,选择所有项目
    2. 对于操作 ,选择选择操作
    3. 点击添加操作 ,然后添加以下服务并选择所有方法
      • compute.googleapis.com
      • workloadmanager.googleapis.com
      • secretmanager.googleapis.com
  8. 点击完成 ,然后点击保存

gcloud

如需添加入站规则,请创建一个包含入站规则的 YAML 文件,并使用 gcloud access-context-manager perimeters update 命令与 --set-ingress-policies 标志。

  1. 创建一个名为 ingress_policy.yaml 的入站政策 YAML 文件,其中包含以下内容:

    - ingressFrom:
        identities:
         - serviceAccount:SERVICE_ACCOUNT_EMAIL
        sources:
        - accessLevel: '*'
      ingressTo:
        operations:
        - serviceName: compute.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: workloadmanager.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: secretmanager.googleapis.com
          methodSelectors:
          - method: "*"
        resources:
        - "*"
    

    SERVICE_ACCOUNT_EMAIL 替换为附加到运行 Agent for Compute Workloads 的 Compute Engine 实例的服务帐号的电子邮件地址。

  2. 将入站政策添加到边界:

       gcloud access-context-manager perimeters update PERIMETER_NAME \
         --set-ingress-policies=ingress_policy.yaml
    

    PERIMETER_NAME 替换为服务边界的名称。例如,accessPolicies/1234567890/servicePerimeters/example_perimeter

排查 VPC Service Controls 违规问题

如需查看项目中的 VPC Service Controls 违规情况并排查问题,请使用 Logs Explorer。

如需了解详情,请参阅排查 VPC Service Controls 问题

后续步骤