VPC Service Controls で cron ジョブを保護する

VPC Service Controls は、Google Cloud Platform の機能で、データの引き出しを防ぐためのセキュアな境界を設定できます。このガイドでは、VPC Service Controls の境界内に Cloud Scheduler ジョブを配置する方法について説明します。

制限事項

Cloud Scheduler の VPC Service Controls のサポートには、次の制限事項が適用されます。

適用されているアクション

VPC Service Controls は、次のアクションにのみ適用されます。

  • Cloud Scheduler ジョブの作成
  • Cloud Scheduler ジョブの更新

なぜこれが重要なのか

VPC Service Controls はジョブの作成とジョブの更新にのみ適用されるため、Cloud Scheduler を 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 サービス - run.app URL 上。
  • Cloud Run functions - functions.net URL 上。
  • Google Cloud VPC Service Controls に準拠している API(プレビュー版または一般提供版)は、Cloud Scheduler ジョブとは異なる Google Cloud プロジェクトに存在できます。ただし、Cloud Scheduler ジョブとターゲット プロジェクトの両方が同じ VPC Service Controls 境界内にある必要があります。 Google Cloud

    • Cloud Run ジョブの場合、サポートされている URI 形式は次のとおりです。 https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      Cloud Run サービスとジョブ リソースの違いについては、サービスとジョブ: コードを実行する 2 つの方法をご覧ください。

  • Pub/Sub

要件を満たしていないジョブを削除する

推奨。次のいずれかのターゲットを持つ Cloud Scheduler ジョブを削除します。

ジョブを削除する手順については、ジョブを削除するをご覧ください。

Cloud Scheduler を VPC Service Controls の境界に追加する前にこれらのジョブを削除しない場合、ジョブは引き続き実行されますが、VPC Service Controls はそれらには適用されません。このドキュメントの強制措置をご覧ください。

たとえば、サポートされていないターゲット(Cloud Run カスタム ドメインなど)をターゲットとする Cloud Scheduler ジョブがある場合、Cloud Scheduler を VPC Service Controls の境界に追加した後も、ジョブは継続して実行されますが、VPC Service Controls によって保護されていません。同様のことが、VPC Service Controls の境界の外側にあるターゲットを持つ既存のジョブに当てはまります。

必要な IAM ロールを追加する

必須。VPC Service Controls を使用するには、Cloud Scheduler サービス アカウントに Cloud Scheduler サービス エージェント IAM ロールが付与されている必要があります。Cloud Scheduler サービス アカウントは、プロジェクト用に自動的に作成されます。Cloud Scheduler サービス エージェントの IAM ロールがあることを確認する手順、またはこのロールを付与する手順は次のとおりです。

  1. Google Cloud コンソールで、[IAM] に移動します。

    IAM に移動

  2. [Google 提供のロール付与を含みます] チェックボックスをオンにします。

  3. フィルタに「Cloud Scheduler サービス アカウント」と入力し、このプリンシパルを選択します。

  4. Cloud Scheduler サービス アカウント プリンシパルの [ロール] 列を確認します。次のロールが表示されている場合は、続行できます。

    • Cloud Scheduler サービス エージェント

    Cloud Scheduler サービス アカウントの役割が表示されていない場合は、[編集] アイコンをクリックして Cloud Scheduler Service Agent の役割を Cloud Scheduler サービス アカウント プリンシパルに付与します。

VPC Service Controls の境界を指定する

必須。サポートされているターゲットを持つ Cloud Scheduler ジョブを保護するには、既存の境界を使用するか、新しい境界を作成します。両方の方法で、制限するサービスを指定できます。Cloud Scheduler API を指定します。

既存のジョブに 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 に置き換えます。