在受 VPC Service Controls 保护的项目中运行 Workload Manager 评估时,您必须为附加到运行 Agent for Compute Workloads 的 Compute Engine 实例的服务帐号配置入站流量和出站流量规则。借助这些规则,服务帐号可以访问 VPC Service Controls 边界内的必需 API。如果您未配置这些规则,代理将无法向 Workload Manager 发送数据,并且您的评估会失败。
如需了解详情,请参阅 VPC Service Controls 概览。
准备工作
在为项目设置 VPC Service Controls 之前,请执行以下操作:
- 设置 VPC Service Controls 边界。
- 确定附加到运行 Agent for Compute Workloads 的 Compute Engine 实例的服务帐号。例如,
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com。您可以在控制台的虚拟机实例详情 页面上找到此信息。 Google Cloud - 验证服务帐号是否具有所需角色。例如,请参阅代理和 SAP 工作负载所需角色。
所需角色
如需获得在 VPC Service Controls 边界内使用 Workload Manager 所需的权限,请让管理员向您授予项目的Access Context Manager Editor (roles/accesscontextmanager.policyEditor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
为服务边界创建入站和出站规则
如需让 Agent for Compute Workloads 与所需服务通信,您必须在 VPC Service Controls 边界中配置入站和出站规则。
如需详细了解如何创建入站规则,请参阅配置入站和出站政策。
控制台
在 Google Cloud 控制台中,前往 VPC Service Controls 页面。
选择您的项目。
点击服务边界的名称,然后点击修改 。
点击入站流量政策 或出站流量政策 。
点击添加入站流量规则 。
在来源 部分中,指定服务代理的身份:
- 对于身份 ,选择选择身份和群组 。
- 点击添加身份 。
- 输入代理服务帐号的电子邮件地址。例如,
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com。
在目标 部分中,指定允许的操作:
- 对于资源 ,选择所有项目 。
- 对于操作 ,选择选择操作 。
- 点击添加操作 ,然后添加以下服务并选择所有方法 :
compute.googleapis.comworkloadmanager.googleapis.comsecretmanager.googleapis.com
点击完成 ,然后点击保存 。
gcloud
如需添加入站规则,请创建一个包含入站规则的 YAML 文件,并使用 gcloud access-context-manager perimeters update 命令与 --set-ingress-policies 标志。
创建一个名为
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 实例的服务帐号的电子邮件地址。将入站政策添加到边界:
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 问题。