使用 VPC Service Controls 保护 Cron 作业

VPC Service Controls 是 Google Cloud 的一项功能,可让您设置安全边界以防止数据渗漏。本指南介绍如何在 VPC Service Controls 边界内添加 Cloud Scheduler 作业。

限制

以下限制适用于 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 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 Service Agent IAM 角色,或授予此角色,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,浏览到 IAM

    转到 IAM

  2. 选中包括 Google 提供的角色授权复选框。

  3. 在过滤器中,输入 Cloud Scheduler 服务帐号,然后选择此主帐号。

  4. 查看 Cloud Scheduler Service Account 主帐号的角色列。如果列出了以下角色,则可以继续操作:

    • Cloud Scheduler 服务代理

    如果 Cloud Scheduler 服务帐号角色未列出,请点击修改图标,然后将 Cloud Scheduler Service Agent 角色授予 Cloud Scheduler 服务帐号主帐号。

指定 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