Secure Web Proxy をネクストホップとしてデプロイする

このページでは、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 ポリシーを作成する

  1. 必要な前提条件の手順をすべて完了します。
  2. Secure Web Proxy ポリシーを作成します。
  3. Secure Web Proxy ルールを作成する。

Secure Web Proxy インスタンスをネクストホップとしてデプロイする

コンソール

  1. Google Cloud コンソールで、[ウェブ プロキシ] ページに移動します。

    [ウェブ プロキシ] に移動

  2. [ 安全なウェブプロキシを作成] をクリックします。

  3. 作成するウェブプロキシの名前を入力します(例: myswp)。

  4. ウェブプロキシの説明を入力します(例: My new swp)。

  5. [ルーティング モード] で、[ネクストホップ] オプションを選択します。

  6. [リージョン] リストで、ウェブプロキシを作成するリージョンを選択します。

  7. [ネットワーク] リストで、ウェブプロキシを作成するネットワークを選択します。

  8. [サブネットワーク] リストで、ウェブプロキシを作成するサブネットワークを選択します。

  9. 省略可: Secure Web Proxy の IP アドレスを入力します。前の手順で作成したサブネットワークに存在する Secure Web Proxy IP アドレスの範囲から IP アドレスを入力できます。IP アドレスを入力しない場合、Secure Web Proxy インスタンスは選択したサブネットワークから IP アドレスを自動的に選択します。

  10. [証明書] リストで、ウェブプロキシの作成に使用する証明書を選択します。

  11. [ポリシー] リストで、ウェブプロキシに関連付けるために作成したポリシーを選択します。

  12. [作成] をクリックします。

Cloud Shell

  1. テキスト エディタを使用して gateway.yaml ファイルを作成します。

  2. 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: true
    
  3. Secure 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 インスタンスを同時にデプロイすることはできません。