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 ジョブを削除します。
- サポート対象外(サポートされているターゲットを参照)
- 使用する予定の VPC Service Controls の外側
ジョブを削除する手順については、ジョブを削除するをご覧ください。
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 ロールがあることを確認する手順、またはこのロールを付与する手順は次のとおりです。
Google Cloud コンソールで、[IAM] に移動します。
[Google 提供のロール付与を含みます] チェックボックスをオンにします。
フィルタに「Cloud Scheduler サービス アカウント」と入力し、このプリンシパルを選択します。
Cloud Scheduler サービス アカウント プリンシパルの [ロール] 列を確認します。次のロールが表示されている場合は、続行できます。
- Cloud Scheduler サービス エージェント
Cloud Scheduler サービス アカウントの役割が表示されていない場合は、[編集] アイコンをクリックして Cloud Scheduler Service Agent の役割を Cloud Scheduler サービス アカウント プリンシパルに付与します。
VPC Service Controls の境界を指定する
必須。サポートされているターゲットを持つ Cloud Scheduler ジョブを保護するには、既存の境界を使用するか、新しい境界を作成します。両方の方法で、制限するサービスを指定できます。Cloud Scheduler API を指定します。
既存の境界: Cloud Scheduler を含むように既存の VPC Service Controls の境界を更新するには、サービス境界を更新する手順に従います。
新しい境界: 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 に置き換えます。