Batch ネットワーキングの概要

このドキュメントでは、ネットワーキング オプション、ネットワーキングを構成するタイミング、ネットワーキングの仕組みなど、Batch のネットワーキング コンセプトについて説明します。

ネットワーク オプション

ネットワーキング オプションは、Batch と他のソース(インターネットや他の Google Cloud リソースやサービスなど)との接続方法を制御します。

Batch には、次のネットワーキング オプションがあります。

  • ジョブのネットワークを指定するか、デフォルト ネットワークを使用する。
  • 追加のネットワーク制限を使用する。
    • ジョブのランタイム環境(すべての VM または特定のコンテナ)に対する外部接続をブロックする。
    • VPC Service Controls を使用して Batch リソースとデータを保護する。

Batch に使用するネットワーキング オプションの決定方法については、このドキュメントのネットワーキングを構成するタイミングをご覧ください。各オプションに関するネットワーキング コンセプトの詳細については、このドキュメントのネットワーキングの仕組みをご覧ください。

ネットワーキングを構成するタイミング

Batch を使用するときにネットワークを構成するか、デフォルトのネットワーク構成を使用するかを決定ために、このセクションを確認してください。

次の場合は、Batch 用のネットワーキングを構成する必要があります。

  • プロジェクトまたはネットワークで VPC Service Controls を使用して Batch のネットワーク アクセスを制限する場合は、Batch で VPC Service Controls を使用するドキュメントに従ってネットワーキングを構成する必要があります。
  • compute.vmExternalIpAccess(組織のポリシーの制約)により、プロジェクトで外部 IP アドレスを持たない VM を作成する必要がある場合や、ネットワークが限定公開の Google アクセスを使用している場合は、すべての VM に対する外部アクセスをブロックするジョブを作成する必要があります。
  • デフォルトのネットワークを使用しない場合(できない場合を含む)は、ジョブのネットワークを指定する必要があります。

    ジョブにデフォルト ネットワークが使用できるかどうかを判断するには、次の点を確認します。

    • プロジェクトにデフォルト ネットワークが存在する。compute.skipDefaultNetworkCreation(組織のポリシーの制約)が有効になっていない限り、新しい Google Cloud プロジェクトにはデフォルトのネットワークが自動的に含まれます。
    • デフォルト ネットワークで、ネットワーク固有の要件がサポートされている。特に、プロジェクトのデフォルト ネットワークが変更されると、ご自身または他のユーザーに問題が発生する可能性があります。デフォルト ネットワークの詳細については、このドキュメントのデフォルトのネットワーキング構成をご覧ください。

必須ではありませんが、Batch リソースとデータのセキュリティを高めるためにネットワーキングを構成することをおすすめします。たとえば、コンテナを使用するジョブのセキュリティを向上させ、すべての VM に対する外部アクセスをブロックしない場合は、必要に応じて 特定のコンテナだけに対する外部アクセスをブロックするジョブを作成できます。デフォルト以外のネットワーク制限や追加のネットワーク制限を使用すると、最小権限の原則を実装しやすくなります。Batch のネットワーキングを構成するために使用できるオプションの詳細については、このドキュメントのネットワーキングの仕組みをご覧ください。

ネットワーキングの構成を行わない場合(不要の場合を含む)は、ネットワーキング オプションを指定せずにジョブを作成してデフォルトのネットワーキング構成を使用できます。

ネットワーキングの仕組み

以下のセクションでは、Batch のネットワーキング コンセプトについて説明します。

ジョブ ネットワーク

すべてのジョブは Compute Engine 仮想マシン(VM)で実行されます。この VM は、Google Cloud Virtual Private Cloud(VPC)ネットワークに入り、そのネットワークのサブネットでなければなりません。

VPC ネットワークは、VM を他のソース(インターネットや他の Google Cloud リソースやサービスなど)に接続します。各ネットワークは少なくとも 1 つのサブネットワーク(サブネットとも呼ばれます)で構成されます。サブネットワークは、1 つのリージョンに関連付けられた IP アドレスの 1 つ以上の範囲です。各 VM には、内部 IP アドレスと、サブネットから割り振られたオプションの外部 IP アドレスを持つネットワーク インターフェースがあります。VPC ファイアウォール ルールを構成することで、ネットワーク内の VM の接続を許可または拒否できます。すべてのネットワークには、すべての受信接続をブロックし、すべての送信接続を許可する暗黙のファイアウォール ルールがあります。通常、VPC ネットワークはプロジェクト内でのみ使用できますが、同じプロジェクトを複数のプロジェクトで使用する場合は共有 VPC を使用します。

まとめると、すべてのジョブは VM 上で実行され、それぞれが IP アドレスを使用してネットワークのファイアウォール ルールによって制御される接続を行います。

ネットワーキング コンセプトの詳細については、Compute Engine ドキュメントの VM のネットワーキングの概要と、VPC ドキュメントの Virtual Private Cloud(VPC)の概要をご覧ください。

追加のネットワーキングの制限

セキュリティ強化のため、ネットワーキング構成には、そのネットワークのファイアウォール ルールだけでなく、より多くの制限を加える場合があります。たとえば、プロジェクトや組織では、組織のポリシーの制約や他の Google Cloud サービスを使用して、ネットワークを制限できます。

以降のセクションでは、ネットワークをさらに制限するための一般的なオプションについて説明します。

ジョブ ランタイム環境に対する外部接続をブロックする

次のいずれかのオプションを使用することで、ジョブのランタイム環境との外部接続を直接ブロックできます。

  • ジョブのすべての VM に対する外部アクセスをブロックする。ジョブの VM に対する外部アクセスをブロックして、外部 IP アドレスを持たない VM で実行されるジョブを作成します。このオプションは、ネットワークやプロジェクトで必須になることが多く、またオプションでセキュリティ強化のために使用されます。

    外部 IP アドレスを持たない VM には、同じネットワーク上の別のノードのみが内部 IP アドレスでアクセスできるため、次の手順を実行してこうした VM へのアクセスを構成する必要があります。

    • 外部 IP アドレスを持たない VM でジョブを実行するには、Cloud NAT または限定公開の Google アクセスを使用して、API のドメインへのアクセスを許可します。たとえば、すべての Batch ジョブは Batch API と Compute Engine API を使用し、多くの場合 Cloud Logging API を使用します。

    • 外部 IP アドレスを持たない VM に接続する必要がある場合は、Compute Engine ドキュメントの内部専用 VM の接続オプションを選択するをご覧ください。

  • ジョブの特定のコンテナに対する外部アクセスをブロックする。ジョブでコンテナを使用し、すべての VM に対する外部アクセスをまだブロックしていない場合は、各コンテナについて外部アクセスをブロックするかどうかを選択できます。このオプションは任意です。これは、ジョブのネットワークを指定する場合や、デフォルトのネットワーク構成を使用するジョブを作成する場合に、セキュリティを強化できます。

VPC Service Controls を使用して Batch リソースとデータを保護する

ジョブのすべての VM に対する外部アクセスをブロックすることに加え、必要に応じて VPC Service Controls を使用してネットワーキングをさらに制限できます。

このドキュメントで説明している他のネットワーキング オプションでは、ジョブを実行する VM またはコンテナに対してのみネットワークを制限できますが、VPC Service Controls を使用すると Google Cloud サービスのリソースやデータ(Batch ジョブやデータなど)に対してネットワーク アクセスを制限できます。

VPC Service Controls を使用すると、指定した Google Cloud サービスのリソースとデータを保護する境界を作成できます。サービス境界により、選択したサービスとリソースが分離され、境界外の Google Cloud サービスとの接続と、明示的に許可されていないインターネットからの接続がブロックされます。詳細については、VPC Service Controls のドキュメントと Batch で VPC Service Controls を使用するをご覧ください。

デフォルトのネットワーキング構成

ジョブを作成するときに、ネットワーキング オプションを指定しない場合、ジョブの VM はデフォルトのネットワークと VM のロケーションのサブネットを使用します。

各プロジェクトには、ネットワークを削除するか、compute.skipDefaultNetworkCreation 組織のポリシーの制約を使用して無効にしない限り、default という名前のデフォルト ネットワークがあります。デフォルト ネットワークは、自動モードのネットワークであるため、リージョンごとに 1 つのサブネットがあります。default ネットワークには、すべてのネットワークの暗黙のファイアウォール ルールに加えて、一般的なユースケースへのアクセスを許可するファイアウォール ルールが事前に設定されています。詳細については、VPC のドキュメントのデフォルト ネットワークに事前設定されたルールをご覧ください。

ジョブのネットワーキング要件がなく、ネットワーキングを構成しない場合は、デフォルトのネットワーキング構成の使用を検討してください。デフォルトのネットワーキング構成を使用するタイミングの詳細については、このドキュメントのネットワーキングを構成するタイミングをご覧ください。

次のステップ