VPC Service Controls 是一项 Google Cloud 功能,可让您设置安全的边界以防数据渗漏。本指南介绍了如何将 Cloud Scheduler 作业纳入 VPC Service Controls 边界。
限制
以下限制适用于 VPC Service Controls 对 Cloud Scheduler 的支持。
强制执行的操作
仅对以下操作执行 VPC Service Controls:
- 创建 Cloud Scheduler 作业
- 更新 Cloud Scheduler 作业
这一点为什么非常重要?
由于 VPC Service Controls 仅在创建作业和更新作业时强制执行,因此对于在您将 Cloud Scheduler 添加到 VPC Service Controls 边界之前创建的作业,VPC Service Controls 不会自动强制执行。即使作业目标不在 VPC Service Controls 边界内或不是受支持的目标,作业也会继续执行。如需针对所有 Cloud Scheduler 作业强制执行 VPC Service Controls,请执行以下操作:
- 定位目标不受支持或超出您的周边范围的作业:删除相应作业。在本文档中,请参阅删除不合规的作业。
- 目标受支持且位于安全边界内的作业:在将 Cloud Scheduler 添加到安全边界后,对每个作业运行更新。在本文档中,请参阅对预先存在的作业强制执行 VPC Service Controls。
支持的目标
Cloud Scheduler 与 VPC Service Controls 的集成支持以下目标。如果列出了 HTTP 端点,则支持这些端点;不过,不支持任意 HTTP 端点。
- Cloud Run functions - 位于
functions.net
网址 - Cloud Run - 在 Cloud Run 服务的
run.app
网址上。不支持 Cloud Run 作业目标。如需了解 Cloud Run 服务资源和作业资源之间的区别,请参阅服务和作业:运行代码的两种方式。 - Dataflow API - 必须与 Cloud Scheduler 作业位于同一 Google Cloud 项目中
- Data Pipelines - 必须与 Cloud Scheduler 作业位于同一 Google Cloud 项目中
- Pub/Sub - 必须与 Cloud Scheduler 作业位于同一 Google Cloud 项目中
删除不合规的作业
推荐。删除目标为以下任一对象的 Cloud Scheduler 作业:
- 不支持(请参阅支持的目标)
- 您计划使用的 VPC Service Controls 边界之外
如需了解如何删除作业,请参阅删除作业。
如果您未在将 Cloud Scheduler 添加到 VPC Service Controls 边界之前删除这些作业,则这些作业会继续运行,但 VPC Service Controls 不会对其强制执行。在本文档中,请参阅强制执行的操作。
例如,如果您有一个 Cloud Scheduler 作业,其目标是不受支持的目标(例如 Cloud Run 自定义网域),那么在您将 Cloud Scheduler 添加到 VPC Service Controls 边界后,该作业会继续运行,但不受 VPC Service Controls 保护。对于目标位于 VPC Service Controls 边界之外的现有作业,情况也是如此。
添加必需的 IAM 角色
必需。如需使用 VPC Service Controls,Cloud Scheduler 服务账号必须具有 Cloud Scheduler Service Agent IAM 角色。系统会自动为您的项目创建 Cloud Scheduler 服务账号。如需验证该项目是否具有 Cloud Scheduler 服务代理 IAM 角色,或授予此角色,请执行以下步骤:
在 Google Cloud 控制台中,前往 IAM。
选中包括 Google 提供的角色授权复选框。
在过滤条件中,输入 Cloud Scheduler 服务账号,然后选择此正文。
查看 Cloud Scheduler 服务账号主账号的角色列。如果列出了以下角色,您可以继续操作:
- Cloud Scheduler Service Agent
如果未列出 Cloud Scheduler 服务账号角色,请点击修改图标,然后向 Cloud Scheduler 服务账号主账号授予 Cloud Scheduler Service Agent 角色。
指定 VPC Service Controls 边界
必需。您可以使用现有安全边界,也可以创建新的安全边界来保护具有受支持目标的 Cloud Scheduler 作业。这两种方法都允许您指定要限制的服务。指定 Cloud Scheduler API。
现有边界:如需更新现有 VPC Service Controls 边界以纳入 Cloud Scheduler,请按照更新服务边界的步骤操作。
新边界:如需为 Cloud Scheduler 创建新边界,请按照创建服务边界的步骤操作。
对预先存在的作业强制执行 VPC Service Controls
推荐。如需对在将 Cloud Scheduler 添加到 VPC Service Controls 边界之前创建的 Cloud Scheduler 作业强制执行 VPC Service Controls,请对该作业运行 update
。您无需更改作业,但必须运行更新,以便 VPC Service Controls 应用于作业及其未来的执行。
您可以使用 Google Cloud 控制台(选择作业并使用修改按钮)、API 或 gcloud CLI 运行作业更新。
如需使用 gcloud CLI 对预先存在的作业强制执行 VPC Service Controls,请运行以下命令:
HTTP 目标
gcloud scheduler jobs update http JOB_ID
替换以下内容:
JOB_ID
:作业的 ID
Pub/Sub 目标
gcloud scheduler jobs update pubsub JOB_ID
替换以下内容:
JOB_ID
:作业的 ID