このページでは、Secure Web Proxy ポリシーを作成する方法の概要を説明し、Secure Web Proxy インスタンスのネクストホップ ルーティングを構成する方法について説明します。また、このページでは、ネクストホップに静的ルーティングまたはポリシーベース ルーティングを構成する方法についても説明します。
デフォルトでは、SecureWebProxy インスタンスの RoutingMode 値は EXPLICIT_ROUTING_MODE です。つまり、HTTP(S) トラフィックを Secure Web Proxy に明示的に送信するようにワークロードを構成する必要があります。Secure Web Proxy インスタンスを参照するように個々のクライアントを構成する代わりに、Secure Web Proxy インスタンスの RoutingMode を NEXT_HOP_ROUTING_MODE に設定できます。これにより、Secure Web Proxy インスタンスにトラフィックを転送するルートを定義できます。
Secure Web Proxy インスタンスをネクストホップとしてデプロイする場合、ゲートウェイですべてのポート(1~65535)をリッスンするように有効にできます。これにより、複数のポートを使用する動的環境やサービスの構成が簡素化されます。
Secure Web Proxy のネクストホップ ルーティングを構成する
このセクションでは、Secure Web Proxy ポリシーを作成する手順と、Secure Web Proxy インスタンスをネクストホップとしてデプロイする手順について説明します。
Secure Web Proxy ポリシーを作成する
Secure Web Proxy インスタンスをネクストホップとしてデプロイする
コンソール
Google Cloud コンソールで、[ウェブ プロキシ] ページに移動します。
[ 安全なウェブプロキシを作成] をクリックします。
作成するウェブプロキシの名前を入力します(例:
myswp)。ウェブプロキシの説明を入力します(例:
My new swp)。[ルーティング モード] で、[ネクストホップ] オプションを選択します。
[リージョン] リストで、ウェブプロキシを作成するリージョンを選択します。
[ネットワーク] リストで、ウェブプロキシを作成するネットワークを選択します。
[サブネットワーク] リストで、ウェブプロキシを作成するサブネットワークを選択します。
省略可: Secure Web Proxy の IP アドレスを入力します。前の手順で作成したサブネットワークに存在する Secure Web Proxy IP アドレスの範囲から IP アドレスを入力できます。IP アドレスを入力しない場合、Secure Web Proxy インスタンスは選択したサブネットワークから IP アドレスを自動的に選択します。
[証明書] リストで、ウェブプロキシの作成に使用する証明書を選択します。
[ポリシー] リストで、ウェブプロキシに関連付けるために作成したポリシーを選択します。
[作成] をクリックします。
Cloud Shell
テキスト エディタを使用して
gateway.yamlファイルを作成します。gateway.yamlファイルに次のコードを追加します。name: projects/PROJECT_ID/locations/REGION/gateways/swp1 type: SECURE_WEB_GATEWAY addresses: ["IP_ADDRESS"] ports: [443, 80] gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 network: projects/PROJECT_ID/global/networks/NETWORK subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK routingMode: NEXT_HOP_ROUTING_MODE省略可: すべてのポート(
1~65535)でリッスンするようにゲートウェイを構成するには、gateway.yamlファイルにall_portsフィールドを追加して、trueに設定します。この機能はプレビュー版でサポートされています。all_ports機能の使用に関する制限事項については、制限事項をご覧ください。name: projects/PROJECT_ID/locations/REGION/gateways/swp1 type: SECURE_WEB_GATEWAY addresses: ["IP_ADDRESS"] all_ports: true gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 network: projects/PROJECT_ID/global/networks/NETWORK subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK routingMode: NEXT_HOP_ROUTING_MODE省略可: 他の Google Cloud リージョンのクライアント アプリケーションがプロキシに接続できるようにするには、Secure Web Proxy インスタンスの作成 時にグローバル アクセスを有効にします。
gateway.yamlファイルにallowGlobalAccessフィールドを追加し、trueに設定します。重要:
allowGlobalAccessを有効にできるのは、Secure Web Proxy インスタンスを作成するときだけです。この設定は後で構成できません。name: projects/PROJECT_ID/locations/REGION/gateways/swp1 type: SECURE_WEB_GATEWAY addresses: ["IP_ADDRESS"] ports: [443, 80] gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 network: projects/PROJECT_ID/global/networks/NETWORK subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK routingMode: NEXT_HOP_ROUTING_MODE allowGlobalAccess: trueSecure Web Proxy インスタンスを作成します。
gcloud network-services gateways import swp1 \ --source=gateway.yaml \ --location=REGION
Secure Web Proxy インスタンスのデプロイには数分かかる場合があります。
ネクストホップのルートを作成する
Secure Web Proxy インスタンスを作成したら、ネクストホップに静的ルーティングまたはポリシーベース ルーティングを構成できます。
- 静的ルートは、ネットワーク内のトラフィックを同じリージョンの Secure Web Proxy インスタンスに転送します。Secure Web Proxy をネクストホップとして静的ルートを設定するには、ネットワーク タグを構成する必要があります。
- ポリシーベースのルートを使用すると、送信元 IP アドレス範囲から Secure Web Proxy インスタンスにトラフィックを転送できます。ポリシーベースのルートを初めて構成する場合は、別のポリシーベースのルートをデフォルト ルートとして構成する必要があります。
次の 2 つのセクションでは、静的ルートとポリシーベースのルートの作成方法について説明します。
静的ルートを作成する
トラフィックを Secure Web Proxy インスタンスにルーティングするには、gcloud compute routes create コマンドを使用して静的ルートをセットアップします。静的ルートをネットワーク タグに関連付け、すべての送信元リソースで同じネットワーク タグを使用して、トラフィックが Secure Web Proxy インスタンスにリダイレクトされるようにする必要があります。静的ルートでは、送信元 IP アドレス範囲を定義できません。
Google Cloudでの静的ルートの仕組みの詳細については、静的ルートをご覧ください。
gcloud
静的ルートを作成するには、次のコマンドを使用します。
gcloud compute routes create STATIC_ROUTE_NAME \
--network=NETWORK_NAME \
--next-hop-ilb=SWP_IP \
--destination-range=DESTINATION_RANGE \
--priority=PRIORITY \
--tags=TAGS \
--project=PROJECT
次のように置き換えます。
STATIC_ROUTE_NAME: 静的ルートの名前NETWORK_NAME: ネットワークの名前SWP_IP:gateway.yamlファイルで指定されたサブネットワーク内のSecureWebProxyインスタンスの IP アドレスDESTINATION_RANGE: トラフィックをリダイレクトする IP アドレスの範囲。たとえば、0.0.0.0/0を使用して、すべてのインターネット トラフィックを Secure Web Proxy インスタンスに転送します。PRIORITY: ルートの優先度。数値が大きいほど優先度が低くなります。ルートの優先度が、デフォルトのインターネット ルート(通常は1000)よりも数値的に低いことを確認します。TAGS: Secure Web Proxy インスタンスで使用するタグのカンマ区切りリストPROJECT: プロジェクトの ID
ルートで指定されたネットワーク タグを使用して、適切なサブネットに VM を作成する
gcloud compute instances create swp-nexthop-test-vm \
--subnet=SUBNETWORK \
--zone=ZONE \
--image-project=debian-cloud \
--image-family=debian-11 \
--tags=TAGS次のように置き換えます。
SUBNETWORK: ウェブ プロキシ用に構成したサブネットワークZONE: テスト用 VM インスタンスのゾーンTAGS: Secure Web Proxy インスタンスで使用するタグのカンマ区切りのリスト
ポリシーベースのルートを作成する
静的ルーティングの代わりに、network-connectivity policy-based-routes create コマンドを使用してポリシーベースのルートを設定できます。また、デフォルト ルートとなるポリシーベースのルートを作成する必要があります。これにより、ネットワーク内の仮想マシン(VM)インスタンス間のトラフィックのデフォルト ルーティングが有効になります。Google Cloudでのポリシーベースのルートの仕組みについて詳しくは、ポリシーベース ルーティングをご覧ください。
デフォルトのルーティングを有効にするルートの優先度は、トラフィックを Secure Web Proxy インスタンスに転送するポリシーベースのルートの優先度よりも高く(数値を小さく)する必要があります。デフォルト ルーティングを有効にするルートよりも高い優先度でポリシーベースのルートを作成すると、他のすべての VPC ルートよりも優先されます。
次の例を使用して、トラフィックを Secure Web Proxy インスタンスに転送するポリシーベースのルートを作成します。
gcloud
次のコマンドを使用して、ポリシーベースのルートを作成します。
gcloud network-connectivity policy-based-routes create POLICY_BASED_ROUTE_NAME \
--network="projects/PROJECT/global/networks/NETWORK_NAME" \
--next-hop-ilb-ip=SWP_IP \
--protocol-version="IPV4" \
--destination-range=DESTINATION_RANGE \
--source-range=SOURCE_RANGE \
--priority=2 \
--project=PROJECT
次のように置き換えます。
POLICY_BASED_ROUTE_NAME: ポリシーベースのルートの名前NETWORK_NAME: ネットワークの名前SWP_IP: Secure Web Proxy インスタンスの IP アドレスDESTINATION_RANGE: トラフィックをリダイレクトする IP アドレスの範囲SOURCE_RANGE: トラフィックをリダイレクトする IP アドレスの範囲PROJECT: プロジェクトの ID
次に、次の手順で default-routing ポリシーベースのルートを作成します。
gcloud
次のコマンドを使用して、デフォルト ルーティング ポリシーベースのルートを作成します。
gcloud network-connectivity policy-based-routes create DEFAULT_POLICY_BASED_ROUTE_NAME \
--network="projects/PROJECT/global/networks/NETWORK_NAME" \
--next-hop-other-routes="DEFAULT_ROUTING" \
--protocol-version="IPV4" \
--destination-range=DESTINATION_RANGE \
--source-range=SOURCE_RANGE \
--priority=1 \
--project=PROJECT
次のように置き換えます。
DEFAULT_POLICY_BASED_ROUTE_NAME: ポリシーベースのルートの名前NETWORK_NAME: ネットワークの名前DESTINATION_RANGE: トラフィックをリダイレクトする IP アドレスの範囲SOURCE_RANGE: トラフィックをリダイレクトする IP アドレスの範囲PROJECT: プロジェクトの ID
デプロイ後のチェックリスト
Secure Web Proxy インスタンスをネクストホップとして静的ルートまたはポリシーベース ルートを構成したら、次のタスクを完了してください。
- インターネット ゲートウェイへのデフォルト ルートがあることを確認します。
- ネクストホップとして Secure Web Proxy インスタンスを指す静的ルートに、正しいネットワーク タグを追加します。
- ネクストホップとして Secure Web Proxy インスタンスへのデフォルト ルートに適切な優先度を定義します。
- Secure Web Proxy はリージョン サービスであるため、クライアント トラフィックが Secure Web Proxy インスタンスと同じリージョンで発生していることを確認してください。
制限事項
RoutingModeがNEXT_HOP_ROUTING_MODEに設定されているSecureWebProxyインスタンスは、HTTP(S) と TCP プロキシ トラフィックをサポートします。リージョン間トラフィックなどの他のタイプのトラフィックは、通知なしでドロップされます。next-hop-ilbを使用する場合、宛先ネクストホップが Secure Web Proxy インスタンスである場合、内部パススルー ネットワーク ロードバランサに適用される制限がネクストホップに適用されます。詳細については、静的ルートのネクストホップと機能の表をご覧ください。- ネクストホップ ルートが一致する仮想マシン(VM)からのすべてのトラフィック(バックグラウンド トラフィックや更新を含む)は、Secure Web Proxy インスタンスに転送されます。
- リージョンの VPC ネットワークには、ネクストホップ(SWPaNH)インスタンスとして Secure Web Proxy を 1 つだけデプロイできます。
all_ports機能を使用する場合は、次の制限が適用されます。all_ports機能は、type: SECURE_WEB_GATEWAYを含むゲートウェイにのみ適用されます。all_ports: true構成は、routingModeがNEXT_HOP_ROUTING_MODEに設定されている場合にのみ使用できます。- 同じゲートウェイ リソースに対して、
all_ports: true構成とポート フィールドで個々のポートの両方を指定することはできません。両方ではなく、1 種類のポート構成のみを使用する必要があります。 - 特定のネットワークとリージョン内で、
all_ports: true構成でネクストホップ モードの Secure Web Proxy インスタンスと、他のモードの Secure Web Proxy インスタンスを同時にデプロイすることはできません。