ワークロード VM のインターネット アクセスを構成する
Google Cloud VMware Engine では、VMware ワークロードのインターネット アクセス ネットワーク サービスをリージョン単位で構成します。Google Cloud のインターネット エッジまたはオンプレミス接続を使用して、ワークロード VM からインターネットに向かうトラフィックを転送できます。
インターネットにアクセスできるワークロード VM も、限定公開の Google アクセスを使用して Google Cloud サービスにアクセスできます。限定公開の Google アクセスを使用して Google Cloud サービスへアクセスしても、Google Cloud ネットワーク内に留まり、インターネットに接続することはできません。
インターネット アクセス ネットワーク サービスは、以下をサポートしています。
- リージョンごとに最大 100 個のパブリック IP アドレス
- ファイアウォール テーブルあたり最大 300 個のファイアウォール ルール
- リージョンごとに 128k の同時接続で最大 2 Gbps のスループット
- TCP、UDP、ICMP プロトコル
インターネット アクセス ネットワーク サービスは、アプリケーション レベル ゲートウェイ(ALG)機能をサポートしていません。
始める前に
プライベート クラウドのインターネット アクセス設定を変更するには、VMware Engine に対する管理者権限が必要です。
インターネット アクセスを有効にするには、Edge サービスの CIDR アドレス範囲が必要です。インターネット アクセスまたはパブリック IP ネットワーク サービスを有効にすると、サービス テナント コンテキストの中でゲートウェイがデプロイされます。
VMware Engine のインターネット ゲートウェイとパブリック IP ゲートウェイのアドレスには、Edge サービスの CIDR アドレス範囲を使用します。アドレス範囲は、次の要件を満たしている必要があります。
- プライベート範囲として RFC 1918 に準拠する。
- 他の VMware Engine アドレス範囲(管理アプライアンスや NSX-T セグメントに使用されるアドレス範囲など)と重複しない。
- Virtual Private Cloud(VPC)ネットワーク サブネットやオンプレミス ネットワークに使用されるような、VMware Engine にアドバタイズされるアドレス範囲と重複しない。
- 26 サブネット マスク ビット(/26)を IP アドレス範囲専用にする。
gcloud と API の要件
gcloud
コマンドライン ツールまたは API を使用して VMware Engine リソースを管理するには、以下で説明するようにツールを構成することをおすすめします。
gcloud
デフォルトのプロジェクト ID を設定します。
gcloud config set project PROJECT_ID
デフォルトのリージョンとゾーンを設定します。
gcloud config set compute/region REGION
gcloud config set compute/zone ZONE
gcloud vmware
ツールの詳細については、Cloud SDK リファレンス ドキュメントをご確認ください。
API
このドキュメント セットの API の例では、cURL
コマンドライン ツールを使用して API がクエリされています。cURL
リクエストには、有効なアクセス トークンが必要です。有効なアクセス トークンを取得するにはさまざまな方法があります。次の手順では、gcloud
ツールを使用してアクセス トークンを生成します。
Google Cloud にログインする
gcloud auth login
アクセス トークンを生成して TOKEN にエクスポートする
export TOKEN=`gcloud auth print-access-token`
TOKEN が正しく設定されていることを確認する
echo $TOKEN Output: TOKEN
API へのリクエストで認証トークンを使用します。次に例を示します。
curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations
Python
このドキュメントの Python コードサンプルは、VMware Engine ライブラリを使用して API と通信します。このアプローチを使用するには、ライブラリをインストールし、アプリケーションのデフォルト認証情報を構成する必要があります。
Python ライブラリをダウンロードしてインストールする
pip install google-cloud-vmwareengine
シェルで次のコマンドを実行して、アプリケーションのデフォルト認証情報を構成する
gcloud auth application-default login
または、サービス アカウント キー ファイルを使用する
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
ライブラリの詳細については、リファレンス ページまたは GitHub のコードサンプルをご覧ください。
インターネット アクセス サービスを構成する
インターネット アクセス ネットワーク サービスを有効にすると、ワークロード VM からインターネットにアクセスできるようになります。デフォルトでは、インターネット アクセス ネットワーク サービスは無効になっています。
リージョンでインターネット アクセス サービスを有効にする
コンソール
リージョンでインターネット アクセス サービスを有効にするには、次の操作を行います。
- VMware Engine ポータルにアクセスします。
- [ネットワーク] > [REGIONAL SETTINGS] に移動します。
- 目的のリージョンに対応する行で「編集」を選択します。リージョンがサマリー テーブルに表示されていない場合は、[Add Region] をクリックしてリージョンを追加します。
- [Internet Access] を有効に切り替えます。
- インターネット アクセスを有効にし、パブリック IP サービスを無効のままにすることができます。その場合、ポイント対サイト VPN とパブリック IP の割り振りは使用できません。
- [Edge Services CIDR] フィールドに、VMware Engine インターネット ゲートウェイのアドレス指定に使用するアドレス範囲(/26 アドレス範囲)を入力します。
- [送信] をクリックします。
オペレーションが完了すると、通常数分後に、サービスのステータスが「有効」に変わります。
gcloud
gcloud
ツールを使用して、ネットワーク ポリシーを作成します。
gcloud vmware network-policies create NETWORK_POLICY_NAME \ --vmware-engine-network projects/PROJECT_ID/locations/LOCATIONS/vmwareEngineNetworks/NETWORK_NAME \ --edge-services-cidr IP_RANGE \ --location REGION --internet-access
次のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前REGION-default
の形式にする必要があります。NETWORK_NAME
: このネットワーク ポリシーが適用されるネットワークIP_RANGE
: インターネット アクセス ゲートウェイと外部 IP アクセス ゲートウェイに使用する CIDR 範囲(CIDR 表記)。接頭辞が /26 の RFC 1918 CIDR ブロックが必要です。REGION
: ネットワークのリージョン
API
curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME -d "{ "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/NETWORK_NAME", "edgeServiceCidr":IP_RANGE, "internetAccess: { "enabled": true }, "externalIp": { "enabled": true } }"
次のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前REGION-default
の形式にする必要があります。PROJECT_ID
: このリクエストのプロジェクト IDREGION
: ネットワークのリージョンIP_RANGE
: インターネット アクセス ゲートウェイと外部 IP アクセス ゲートウェイに使用する CIDR 範囲(CIDR 表記)。接頭辞が /26 の RFC 1918 CIDR ブロックが必要です。NETWORK_NAME
: このネットワーク ポリシーが適用されるネットワーク。>REGION-default
の形式にする必要があります。
Python
リージョンでインターネット アクセス サービスを無効にする
リージョンでインターネット アクセス サービスを無効にするには、次の操作を行います。
コンソール
- VMware Engine ポータルにアクセスします。
- [ネットワーク] > [Regional Settings] に移動します。
- 目的のリージョンに対応する行で「編集」を選択します。
- [Internet access] を無効に切り替えます。
- インターネット アクセスを無効にする前に、パブリック IP サービスを無効にする必要があります。
- パブリック IP サービスを無効にする前に、割り振られたパブリック IP アドレスとポイント対サイト VPN ゲートウェイを削除する必要があります。
- [送信] をクリックします。
オペレーションが完了すると、通常数分後に、サービスのステータスが「無効」に変わります。
gcloud
gcloud
ツールを使用して、ネットワーク ポリシーを更新します。
gcloud vmware network-policies update NETWORK_POLICY_NAME \ --no-internet-access --location REGION
次のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前REGION
: ネットワークのリージョン
API
curl -X PATCH -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{ "internetAccess: { "enabled": false }, "externalIp": { "enabled": false } }"
次のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDREGION
: ネットワークのリージョンNETWORK_POLICY_NAME
: このネットワーク ポリシーの名前
Python
ワークロードのインターネット接続にオンプレミス接続を使用する
オンプレミス接続を介して、VMware Engine のワークロード VM からインターネットに向かうトラフィックを転送できます。トラフィックは、次の状態に基づいて転送されます。
- オンプレミスからのデフォルト ルート(
0.0.0.0/0
)のアドバタイズ - VMware Engine のパブリック IP サービス
- VMware Engine インターネット アクセス サービス
- VPC ネットワークと VMware Engine 間の VPC ピアリング接続での VPC Service Controls
オンプレミス接続を介したインターネット トラフィックのルーティングを有効にする
オンプレミス接続を介してワークロード VM からインターネットにアクセスするには、次の 2 つの手順を完了する必要があります。
- オンプレミス接続(Cloud VPN または Cloud Interconnect)を介して、オンプレミスからデフォルト ルート(
0.0.0.0/0
)をアドバタイズします。VPN へのオンプレミス接続が終端する Cloud VPN ゲートウェイまたは Cloud Router を確認します。 - VMware Engine ネットワークのインターネット アクセスとパブリック IP サービスを無効にします。
コンソール
- VMware Engine ポータルにアクセスします。
- [ネットワーク] > [Regional Settings] に移動します。
- オンプレミス接続を使用してインターネット アクセスを有効にするリージョンの編集アイコンをクリックします。
[Public IP] を [Disabled] に切り替えます。
[Internet access] を [Disabled] に切り替えます。
[Submit] をクリックします。
gcloud services vpc-peerings enable-vpc-service-controls
コマンドを使用して、VPC ネットワークと VMware Engine の間の VPC ピアリング接続で VPC Service Controls を有効にします。gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
gcloud
gcloud
ツールを使用して、ネットワーク ポリシーを更新します。
gcloud vmware network-policies update NETWORK_POLICY_NAME \ --no-internet-access --no-external-ip-address --location REGION
次のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前REGION
: ネットワークのリージョン
gcloud services vpc-peerings enable-vpc-service-controls
コマンドを使用して、VPC ネットワークと VMware Engine の間の VPC ピアリング接続で VPC Service Controls を有効にします。
gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
API
curl -X PATCH -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{ "internetAccess: { "enabled": false }, "externalIp: { "enabled": false } }"
gcloud services vpc-peerings enable-vpc-service-controls
コマンドを使用して、VPC ネットワークと VMware Engine の間の VPC ピアリング接続で VPC Service Controls を有効にします。
gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
Python
Internet_access と external_ip を False
に設定します。
gcloud services vpc-peerings enable-vpc-service-controls
コマンドを使用して、VPC ネットワークと VMware Engine の間の VPC ピアリング接続で VPC Service Controls を有効にします。
gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
オンプレミス接続を介したインターネット トラフィックのルーティングを無効にする
オンプレミス接続を介したワークロード VM からのインターネット トラフィックのルーティングを無効にするには、デフォルト ルート(0.0.0.0/0
)のアドバタイズを停止し、VPC ピアリング接続で VPC Service Controls を無効にします。
VPC ネットワークと VMware Engine の間の VPC ピアリング接続で VPC Service Controls を無効にするには、gcloud services vpc-peerings disable-vpc-service-controls
コマンドを実行します。
gcloud services vpc-peerings disable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
次のステップ
- プライベート クラウド内の VM にパブリック IP アドレスを割り振る方法を学習する。
- ファイアウォール テーブルとファイアウォール ルールで、プライベート クラウド リソースとの間のネットワーク トラフィックをフィルタする方法を学習する。