このドキュメントでは、Batch で VPC Service Controls を使用する方法について説明します。VPC Service Controls を使用すると、特定のリソースをサービス境界に分離することで、Google Cloud サービスのリソースとデータを保護できます。サービス境界は、境界外の Google Cloud サービスとの接続と、明示的に許可されていないインターネットからの接続をブロックします。
- VPC Service Controls サービス境界を構成して Batch を使用するには、このドキュメントの Batch のサービス境界を構成するをご覧ください。
- プロジェクトまたはネットワークで VPC Service Controls を使用して Batch のネットワーク アクセスを制限する場合は、必要なサービス境界で実行されるように Batch ジョブを構成する必要があります。その方法については、このドキュメントのサービス境界で実行するジョブの作成をご覧ください。
ネットワーキングのコンセプトと、ネットワーキングを構成するタイミングについては、Batch ネットワーキングの概要をご覧ください。
準備
- Batch を以前に使用したことがない場合は、Batch を使ってみるを確認し、プロジェクトとユーザーの前提条件を完了して Batch を有効にします。
-
Batch で VPC Service Controls を使用するために必要な権限を取得するには、次の IAM ロールを付与するように管理者へ依頼してください。
- サービス境界を構成するには: プロジェクトに対する Access Context Manager 編集者 (
roles/accesscontextmanager.policyEditor
) -
ジョブを作成するには:
-
プロジェクトのバッチジョブ編集者(
roles/batch.jobsEditor
) -
ジョブのサービス アカウントのサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)。デフォルトでは Compute Engine のデフォルトのサービス アカウントです。
-
プロジェクトのバッチジョブ編集者(
- プロジェクトまたはネットワークのサービス境界を特定するには: プロジェクトに対する Access Context Manager リーダー(
roles/accesscontextmanager.policyReader
) - ジョブのネットワークとサブネットを識別する場合: プロジェクトの Compute ネットワーク閲覧者 (
roles/compute.networkViewer
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
- サービス境界を構成するには: プロジェクトに対する Access Context Manager 編集者 (
-
サービス境界で実行するジョブを作成する場合は、ジョブに使用するネットワークを特定する必要があります。サービス境界で実行するジョブに指定するネットワークは、次の要件を満たす必要があります。
- ネットワークは、ジョブと同じプロジェクトにある Virtual Private Cloud(VPC)ネットワークか、ジョブのプロジェクトがホストしているかプロジェクトと共有されている共有 VPC ネットワークである。
- ネットワークには、ジョブを実行するロケーションのサブネットワーク(サブネット)が含まれる。
- ネットワークが必要なサービス境界内にあり、限定公開の Google アクセスを使用して、ジョブで使用する API とサービスのドメインへのアクセスを許可している。詳細については、このドキュメントの Batch のサービス境界を構成するをご覧ください。
Batch のサービス境界を構成する
Batch のサービス境界を構成する手順は次のとおりです。
サービス境界の構成を計画します。サービス境界の構成ステージの概要については、サービス境界の詳細と構成に関する VPC Service Controls のドキュメントをご覧ください。
Batch を使用するには、サービス境界が次の要件を満たしている必要があります。
制限付きサービス: サービス境界内で Batch を保護するには、その境界に Batch ジョブに必要な Google Cloud サービス(次のサービスなど)を含める必要があります。
- Batch API(
batch.googleapis.com
) - Cloud Logging API(
logging.googleapis.com
): ジョブで Cloud Logging にログを書き込む場合は必須です。(推奨) - Container Registry API(
containerregistry.googleapis.com
): Container Registry のイメージを含むコンテナを使用するジョブを送信する場合に必要です。 - Artifact Registry API(
artifactregistry.googleapis.com
): Artifact Registry のイメージを含むコンテナを使用するジョブを送信する場合に必要です。 - Filestore API(
file.googleapis.com
): ジョブが Filestore ファイル共有を使用する場合に必要です。 - Cloud Storage API(
storage.googleapis.com
): Cloud Storage バケットを使用する一部のジョブに必要です。 Batch サービス エージェントがプリインストールされていないバッチジョブのイメージを使用する場合に必要です。
これらのサービスをサービス境界で有効にする方法については、VPC アクセス可能なサービスをご覧ください。
また、Batch 以外に含める各サービスについては、サービス境界が、VPC Service Controls でサポートされているプロダクトと制限事項のドキュメントに記載されているサービスの要件を満たしていることも確認する必要があります。
- Batch API(
VPC ネットワーク: 各 Batch ジョブには VPC ネットワークが必要なため、サービス境界には Batch ジョブを実行できる VPC ネットワークを含める必要があります。サービス境界内で Batch ジョブを実行できる VPC ネットワークを構成する方法については、次のドキュメントをご覧ください。
- サービス境界で VPC ネットワークを使用する概要については、サービス境界での VPC ネットワークの管理をご覧ください。
- VPC Service Controls で限定公開の Google アクセスを使用して、Batch ジョブに必要な Google Cloud サービスへのアクセスを構成する方法については、Google API とサービスへのプライベート接続を設定するをご覧ください。
- Batch ジョブのネットワーク要件の詳細については、ジョブ ネットワーキングの概要をご覧ください。
これらの要件を満たすために、新しいサービス境界を作成するか、既存のサービス境界を更新します。
サービス境界で実行されるジョブを作成する
サービス境界で実行するジョブを作成する場合は、ジョブが実行されるすべての VM に対する外部アクセスをブロックし、ジョブが必要な API にアクセスできるネットワークとサブネットを指定する必要もあります。
サービス境界で実行するジョブを作成するには、ドキュメントすべての VM に対する外部アクセスをブロックするジョブを作成するの手順に沿って、サービス境界で実行するジョブのネットワーク要件を満たすネットワークを指定します。
次のステップ
- ジョブの作成または実行に問題がある場合は、トラブルシューティングをご覧ください。
- ネットワーキングの詳細を確認する。
- ジョブの作成の詳細を確認する。
- ジョブとタスクを表示する方法を確認する。