このドキュメントでは、Managed Service for Apache Spark のネットワーク構成の要件について説明します。
Virtual Private Cloud サブネットワークの要件
このドキュメントでは、Managed Service for Apache Spark バッチ ワークロードとインタラクティブ セッションの Virtual Private Cloud ネットワーク要件について説明します。
限定公開の Google アクセス
Managed Service for Apache Spark のバッチ ワークロードとインタラクティブ セッションは、内部 IP アドレスのみを持つ VM と、サブネットで プライベート Google アクセス(PGA)が自動的に有効になっているリージョン サブネットで実行されます。
サブネットを指定しない場合、Managed Service for Apache Spark は、バッチ ワークロードまたはセッションのリージョンの default サブネットをバッチ ワークロードまたはセッションのサブネットとして選択します。
ワークロードで外部ネットワークまたはインターネット アクセスが必要な場合(たとえば、PyTorch Hub や Hugging Face から ML モデルなどのリソースをダウンロードする場合)、Cloud NAT を設定して、VPC ネットワークで内部 IP を使用してアウトバウンド トラフィックを許可できます。
オープン サブネット接続
Managed Service for Apache Spark バッチ ワークロードまたはインタラクティブ セッション用に選択されたリージョンの VPC サブネットでは、サブネット内の VM インスタンス間のすべてのポートでの内部通信を許可する必要があります。
1 つのワークロードの悪意のあるスクリプトが他のワークロードに影響を与えないように、Managed Service for Apache Spark はデフォルトのセキュリティ対策をデプロイします。
次の Google Cloud CLI コマンドは、すべてのポートですべてのプロトコルを使用して VM 間の内部上り(内向き)通信を許可するサブネットにネットワーク ファイアウォールを接続します。
gcloud compute firewall-rules create allow-internal-ingress \ --network=NETWORK_NAME \ --source-ranges=SUBNET_RANGES \ --destination-ranges=SUBNET_RANGES \ --direction=ingress \ --action=allow \ --rules=all
注:
SUBNET_RANGES: VM 間の内部上り(内向き)接続を許可するをご覧ください。
default-allow-internalファイアウォール ルールを使用したプロジェクトのdefaultVPC ネットワークがオープン サブネット接続の要件を満たしており、すべてのポート(tcp:0-65535、udp:0-65535、icmp protocols:portsなど)で上り(内向き)通信が許可されています。ただし、このルールでは、ネットワーク上の任意の VM インスタンスからの上り(内向き)も許可されます。
自動的に作成されたリージョン システム ファイアウォール ポリシー
オープン サブネット接続の要件を満たすため、ランタイム バージョン 3.0 以降を使用する Managed Service for Apache Spark バッチ ワークロードとインタラクティブ セッションは、バッチまたはセッションの VPC サブネットにリージョン システム ファイアウォール ポリシー dataproc-firewall-policy-[network-id]-region または dataproc-fw-[network-id]-region を自動的に作成します。このポリシーには、次の上り(内向き)ルールと下り(外向き)ルールが含まれています。
| 名前 | 目的 | 優先度 | 方向 | アクション | 移行元と移行先 | プロトコルとポート |
|---|---|---|---|---|---|---|
dataproc-allow-internal-ingress-rule-[subnetworkId] |
同じサブネット内のタグ付けされた他の Managed Service for Apache Spark VM からのみ、必要なすべての内部通信を許可します。 | 4 | INGRESS | 許可 |
srcSecureTag: このサブネットのセキュアタグの値。targetSecureTags:このサブネットのセキュアタグの値。 |
tcp:0-65535、udp:0-65535、icmp プロトコル:ポート |
dataproc-allow-internal-egress-rule-[subnetworkId] |
Managed Service for Apache Spark VM が、プライベート Google アクセスを使用してパッケージ(pip や apt-get など)をダウンロードし、Google API にアクセスできるようにします。 | 5 | EGRESS | 許可 |
destIpRanges: 0.0.0.0/0。targetSecureTags:このサブネットのセキュアタグの値。 |
tcp:0-65535、udp:0-65535、icmp プロトコル:ポート |
注:
Managed Service for Apache Spark は、ユーザー プロジェクトに関連付けられたテナント プロジェクトをプロビジョニングして、安全なタグを保存します。Managed Service for Apache Spark は、テナント プロジェクトのサブネットにセキュアタグを作成し、Managed Service for Apache Spark VM に関連付けます。これにより、作成されたシステム ファイアウォール ポリシーは Managed Service for Apache Spark VM にのみ適用されます。
自動的に作成されるシステム ファイアウォール ポリシーは、共有 VPC ではサポートされていません。
Managed Service for Apache Spark と VPC-SC ネットワーク
VPC Service Controls を使用すると、ネットワーク管理者は Google マネージド サービスのリソースにセキュリティ境界を定義し、これらのサービス間の通信を制御できます。
Managed Service for Apache Spark で VPC-SC ネットワークを使用する場合は、次の戦略を検討してください。
VPC-SC 境界の外部に依存関係をプリインストールするカスタム コンテナ イメージを作成し、カスタム コンテナ イメージを使用する Spark バッチ ワークロードを送信します。
詳細については、VPC Service Controls - Managed Service for Apache Spark をご覧ください。