ワークロード 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 アドレス範囲専用にする。
Google Cloud CLI と 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
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
シェルで次のコマンドを実行して、ADC 情報を構成します。
gcloud auth application-default login
または、サービス アカウント キー ファイルを使用します。
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
ライブラリの詳細については、リファレンス ページまたは GitHub のコードサンプルをご覧ください。
インターネット アクセス サービスを構成する
ネットワーク ポリシーを作成または更新すると、ワークロード VM からインターネットにアクセスできるようになります。
デフォルトでは、インターネット アクセス ネットワーク サービスは無効になっています。
リージョンでインターネット アクセス サービスを有効にする
コンソール
リージョンでインターネット アクセス サービスを有効にするには、次の操作を行います。
Google Cloud コンソールで [ネットワーク ポリシー] ページに移動します。
[作成] をクリックして、新しいポリシーを作成します。既存のネットワーク ポリシーを編集する場合は、行の最後にある [その他
] アイコンをクリックして、[編集] を選択します。ポリシーを適用するネットワークとリージョンの選択といった、ネットワーク ポリシーの詳細を入力します。
[Internet access] を [Enabled] に切り替え、必要に応じて [External IP address service] を有効にします。
[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_ID \ --edge-services-cidr=IP_RANGE \ --location=LOCATION \ --internet-access
以下のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前NETWORK_ID
: このネットワーク ポリシーが適用されるネットワークIP_RANGE
: インターネット アクセス ゲートウェイと外部 IP アクセス ゲートウェイに使用する CIDR 範囲(CIDR 表記)。接頭辞が /26 の RFC 1918 CIDR ブロックが必要です。LOCATION
: レガシー ネットワークまたは標準ネットワークのリージョンの場合はglobal
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/LOCATION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME '{ "vmwareEngineNetwork":"projects/PROJECT_ID/locations/LOCATION/vmwareEngineNetworks/NETWORK_ID", "edgeServiceCidr":IP_RANGE, "internetAccess: { "enabled": true }, "externalIp": { "enabled": true } }"
以下のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前REGION-default
の形式にする必要があります。PROJECT_ID
: このリクエストのプロジェクト IDLOCATION
: レガシー ネットワークまたは標準ネットワークのリージョンの場合はglobal
IP_RANGE
: インターネット アクセス ゲートウェイと外部 IP アクセス ゲートウェイに使用する CIDR 範囲(CIDR 表記)。接頭辞が /26 の RFC 1918 CIDR ブロックが必要です。NETWORK_ID
: このネットワーク ポリシーのネットワーク
Python
リージョンでインターネット アクセス サービスを無効にする
リージョンでインターネット アクセス サービスを無効にするには、次の操作を行います。
コンソール
Google Cloud コンソールで [ネットワーク ポリシー] ページに移動します。
関連するネットワーク ポリシーに対応する行で、[その他
] アイコンをクリックします。[Internet access] を [Disabled] に切り替えます。
- インターネット アクセスを無効にする前に、パブリック IP サービスを無効にする必要があります。
- パブリック IP サービスを無効にする前に、割り振られたパブリック IP アドレスとポイント対サイト VPN ゲートウェイを削除する必要があります。
[保存] をクリックします。
オペレーションが完了すると、通常数分後に、サービスのステータスが「無効」に変わります。
gcloud
gcloud
ツールを使用して、ネットワーク ポリシーを更新します。
gcloud vmware network-policies update NETWORK_POLICY_NAME \ --no-internet-access \ --location LOCATION
以下のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前LOCATION
: レガシー ネットワークまたは標準ネットワークのリージョンの場合はglobal
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/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{ "internetAccess: { "enabled": false }, "externalIp": { "enabled": false } }"
以下のように置き換えます。
PROJECT_ID
: このリクエストのプロジェクト IDLOCATION
: レガシー ネットワークまたは標準ネットワークのリージョンの場合はglobal
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 サービスを無効にします。
コンソール
Google Cloud コンソールで [ネットワーク ポリシー] ページに移動します。
関連するネットワーク ポリシーに対応する行で、[その他
] アイコンをクリックします。[Public IP] を [Disabled] に切り替えます。
[Internet access] を [Disabled] に切り替えます。
[保存] をクリックします。
レガシー VMware Engine ネットワークを使用する場合:
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 LOCATION
以下のように置き換えます。
NETWORK_POLICY_NAME
: このネットワーク ポリシーの名前LOCATION
: レガシー ネットワークまたは標準ネットワークのリージョンの場合はglobal
レガシー VMware Engine ネットワークを使用する場合: 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/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled "{ "internetAccess: { "enabled": false }, "externalIp: { "enabled": false } }"
レガシー VMware Engine ネットワークを使用する場合: 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_NAME \ --service=servicenetworking.googleapis.com
Python
Internet_access と external_ip を False
に設定します。
レガシー VMware Engine ネットワークを使用する場合: 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
VPC Service Controls を有効にすることは、プロジェクト内のオンプレミス接続または VPC を介してインターネット トラフィックを転送するために不可欠です。
VPC Service Controls が有効になっている場合、Google Cloud はサービス プロデューサーの VPC ネットワーク(この場合は VMware Engine とピアリングされたサービス テナント プロジェクト)で次のルーティング変更を行います。
- IPv4 デフォルト ルート(宛先
0.0.0.0/0
、ネクストホップ デフォルト インターネット ゲートウェイ)を削除します。 - VPC ピアリングのデフォルト ルートを使用してインターネット トラフィックの転送を開始します。
例:
現在のプロジェクトで「my-network」という名前のネットワークをピアリングする接続で VPC Service Controls を有効にするには、gcloud services vpc-peerings enable-vpc-service-controls
コマンドを使用します。
gcloud services vpc-peerings enable-vpc-service-controls \ --network=my-network \ --service=servicenetworking.googleapis.com
オンプレミス接続を介したインターネット トラフィックのルーティングを無効にする
オンプレミス接続を介したワークロード VM からのインターネット トラフィックのルーティングを無効にするには、デフォルト ルート(0.0.0.0/0
)のアドバタイズを停止し、VPC ピアリング接続で VPC Service Controls を無効にします。
レガシー VMware Engine ネットワークを使用する場合: gcloud services vpc-peerings disable-vpc-service-controls
コマンドを使用して、VPC ネットワークと VMware Engine の間の VPC ピアリング接続の VPC Service Controls を無効にします。
gcloud services vpc-peerings disable-vpc-service-controls \ --network=VPC_NETWORK_NAME \ --service=servicenetworking.googleapis.com
次のステップ
- プライベート クラウド内の VM にパブリック IP アドレスを割り振る方法を学習する。
- ファイアウォール テーブルとファイアウォール ルールでプライベート クラウド リソースとの間のネットワーク トラフィックをフィルタする方法について説明します。