Secure Web Proxy を明示的なプロキシとしてデプロイする

このクイックスタートでは、Secure Web Proxy インスタンスをデプロイしてテストする方法について説明します。この手順では、明示的なプロキシとして機能する明示的なルーティング モードで Secure Web Proxy をデプロイする方法について説明します。

明示的なルーティング モードの Secure Web Proxy インスタンスは、Private Service Connect サービスとしてデプロイできます。または、ネクストホップ ルーティング モードで Secure Web Proxy をデプロイすることもできます。

明示的なルーティング モードで Secure Web Proxy をデプロイする手順は次のとおりです。

  1. Secure Web Proxy ポリシーを作成します。
  2. Secure Web Proxy ルールを作成してポリシーに追加します。
  3. 明示的なルーティング モードで Secure Web Proxy インスタンスを設定します。
  4. Linux 仮想マシン(VM)インスタンスからの接続性をテストして、プロキシとそのポリシーが正しく機能していることを確認します。
明示的なプロキシ ルーティング モードで Secure Web Proxy をデプロイする。
明示的なプロキシ ルーティング モードで Secure Web Proxy をデプロイする(クリックして拡大)

始める前に

  1. 初期設定手順を完了します。

  2. 省略可: このドキュメントで指定されている gcloud コマンドラインの例を実行するには、次のいずれかの開発環境に Google Cloud CLI をインストールします。

    Cloud Shell

    gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。

    このページの末尾で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。

    すでに gcloud CLI をインストールしている場合は、gcloud components update コマンドを実行して、最新のバージョンがインストールされていることを確認してください。

    ローカルシェル

    ローカル開発環境を使用する手順は次のとおりです。

    1. Google Cloud CLI をインストールする
    2. gcloud CLI を初期化する
  3. 既存の Google Cloud プロジェクトを作成または選択します。

    この手順で作成するリソースをそのまま保持する予定でない場合は、既存のプロジェクトを選択するのではなく、新しいプロジェクトを作成することをおすすめします。このクイックスタートの手順を完了したら、プロジェクトを削除して、プロジェクトに関連するすべてのリソースを削除できます。

    コンソール

    Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを作成 するか、既存のプロジェクトを選択します。

    プロジェクト セレクタに移動

    Cloud Shell

    1. Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID
      

      PROJECT_ID は、任意のプロジェクト ID に置き換えます。

    2. 作成した Google Cloud プロジェクトを選択します。

      gcloud config set project PROJECT_ID
      
  4. Linux VM インスタンスを作成する。

    gcloud compute instances create swp-test-vm \
        --subnet=default \
        --zone=ZONE \
        --image-project=debian-cloud \
        --image-family=debian-11
    

    ZONE は、テスト VM インスタンスのゾーンに置き換えます。

    Compute Engine によって、VM インスタンスを作成するユーザーに Compute インスタンス管理者ロール(roles/compute.instanceAdmin)が付与されます。Compute Engine は、そのユーザーを sudo グループに追加します。

  5. ファイアウォール ルールを作成します。

    gcloud compute firewall-rules create default-allow-ssh \
        --direction=INGRESS \
        --priority=1000 \
        --network=default \
        --action=ALLOW \
        --rules=tcp:22 \
        --source-ranges=0.0.0.0/0
    

必要なロール

このチュートリアルのタスクを完了するための、次のロールがあることを確認してください。

詳しくは以下をご覧ください。

Secure Web Proxy ポリシーを作成する

このセクションでは、Secure Web Proxy ポリシーを作成する手順について説明します。このポリシーは、Secure Web Proxy を通過するトラフィック フローを管理するすべてのセキュリティ ルールのコンテナとして機能します。ポリシーを作成したら、ルールを作成してポリシーに追加できます。

コンソール

  1. Google Cloud コンソールで、[SWP ポリシー] ページに移動します。

    [SWP ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. [名前] フィールドに、ポリシーの名前を入力します(例: myswppolicy)。

  4. [説明] フィールドに、ポリシーの説明(My new swp policy など)を入力します。

  5. [リージョン] で、ポリシーを作成するリージョン(us-central1 など)を選択します。

  6. ポリシーのルールを作成する場合は、[ルールを追加] をクリックします。詳細については、Secure Web Proxy ルールを作成するをご覧ください。

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

Cloud Shell

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

  2. policy.yaml ファイルに次のコードを追加します。

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/myswppolicy
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクトの ID
    • REGION: ポリシーが作成されるリージョン(us-central1 など)
  3. Secure Web Proxy ポリシーを作成します。

    gcloud network-security gateway-security-policies import myswppolicy \
        --source=policy.yaml \
        --location=REGION
    

Secure Web Proxy ルールを作成する

このセクションでは、Secure Web Proxy ルールを作成する手順について説明します。ルールは、ウェブ トラフィックの実際のアクセス制御を定義するのに役立ちます。

以前に作成したポリシー内で、allow-wikipedia-org などのルールを定義できます。これらのルールでは、ウェブ セッションを照合する条件(www.wikipedia.org などの特定のホストの照合など)を指定し、ウェブ トラフィックを許可または拒否します。

コンソール

  1. Google Cloud コンソールで、[SWP ポリシー] ページに移動します。

    [SWP ポリシー] に移動

  2. ポリシーの名前(myswppolicy など)をクリックします。

  3. [ルールを追加] をクリックします。

  4. ルールごとに次の操作を行います。

    1. [優先度] に、ルールの数値評価順序を入力します。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は 0)。

    2. [名前] フィールドに、ルールの名前を入力します(例: allow-wikipedia-org)。

    3. [説明] フィールドに、ルールの説明を入力します(例: Allow wikipedia.org)。

    4. [アクション] で、次のいずれかのオプションを選択します。

      • 許可: ルールに一致する接続リクエストを許可します。
      • 拒否: ルールに一致する接続リクエストを拒否します。
    5. [ステータス] フィールドで、ルール適用の次のいずれかのオプションを選択します。

      • 有効: Secure Web Proxy インスタンスにルールを適用します。
      • 無効: Secure Web Proxy インスタンスにルールを適用しません。
    6. [セッションの一致] セクションで、セッションの一致条件(host() == 'www.wikipedia.org' など)を指定します。

      SessionMatcher の構文の詳細については、CEL マッチャーの言語リファレンスをご覧ください。

    7. [アプリケーションの一致] セクションで、リクエストの一致条件を指定します。TLS インスペクションのルールを有効にしていないため、リクエストは HTTP トラフィックにのみ一致します。

      TCP トラフィックの照合の詳細については、TCP プロキシ ルールを構成するをご覧ください。

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

  5. 別のルールを追加するには、[ルールを追加] をクリックします。

Cloud Shell

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

  2. rule.yaml ファイルに次のコードを追加します。SessionMatcher の構文の詳細については、CEL マッチャーの言語リファレンスをご覧ください。

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
    description: Allow wikipedia.org
    enabled: true
    priority: 1
    basicProfile: ALLOW
    sessionMatcher: host() == 'www.wikipedia.org'
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクトの ID
    • REGION: ポリシーのリージョン
    • RULE_NAME: ルールの名前(allow-wikipedia-org など)。
  3. セキュリティ ポリシー ルールを作成します。

    gcloud network-security gateway-security-policies rules import allow-wikipedia-org \
        --source=rule.yaml \
        --location=REGION \
        --gateway-security-policy=policy1
    

ウェブプロキシを設定

このセクションでは、明示的なルーティング モードで Secure Web Proxy をデプロイし、明示的なプロキシとして機能させる方法について説明します。また、以前に作成したポリシーとルールを Secure Web Proxy インスタンスに関連付けて、通過するすべてのトラフィックが定義されたアクセス制御の対象になるようにする方法についても説明します。

コンソール

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

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

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

  3. [名前] フィールドに、ウェブプロキシの名前を入力します(例: myswp)。

  4. [説明] フィールドに、ウェブプロキシの説明を入力します(例: My new swp)。

  5. [ルーティング モード] で、[明示的] オプションを選択します。

  6. [リージョン] で、ウェブプロキシを作成するリージョン(us-central1 など)を選択します。

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

  8. [サブネットワーク] で、初期設定手順の一環として作成した VPC サブネットを選択します。

  9. 省略可: [ウェブプロキシの IP アドレス] フィールドに、Secure Web Proxy の IP アドレスを入力します。

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

  10. [ポート] に、ウェブプロキシがリッスンするポート番号(80 や 443 など)を入力します。

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

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

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

Cloud Shell

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

  2. gateway.yaml ファイルに次のコードを追加します。

    name: projects/PROJECT_ID/locations/REGION/gateways/myswp
    type: SECURE_WEB_GATEWAY
    addresses: ["IP_ADDRESS"]
    ports: [443]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/NETWORK
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK
    routingMode: EXPLICIT_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]
    gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    network: projects/PROJECT_ID/global/networks/NETWORK
    subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK
    routingMode: EXPLICIT_ROUTING_MODE
    allowGlobalAccess: true
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクトの ID
    • REGION: Secure Web Proxy インスタンスが作成されるリージョン
    • IP_ADDRESS: Secure Web Proxy インスタンスの IP アドレス
    • NETWORK: Secure Web Proxy インスタンスのネットワーク
    • SUBNETWORK: Secure Web Proxy インスタンスのサブネットワーク。初期設定手順の一環として、以前に作成した VPC サブネットを使用する必要があります。
  3. gateway.yaml ファイルに基づいて Secure Web Proxy インスタンスを作成します。

    gcloud network-services gateways import myswp \
        --source=gateway.yaml \
        --location=REGION
    

    Secure Web Proxy インスタンスのデプロイには数分かかる場合があります。

接続をテストする

このセクションでは、Linux VM からの接続性をテストして、新しくデプロイされた Secure Web Proxy、そのポリシー、関連するルールが正しく機能していることを確認します。

  1. 前にプロビジョニングした VM に接続します。

    gcloud compute ssh swp-test-vm \
        --zone=ZONE
    

    ZONE は、テスト VM インスタンスのゾーンに置き換えます。

  2. Secure Web Proxy インスタンスをテストします。

    curl -s -o /dev/null -w "%{http_code}\\n" -x IP_ADDRESS:443 https://www.wikipedia.org
    

    IP_ADDRESS は、Secure Web Proxy インスタンスの IP アドレスに置き換えます。

    このコマンドは、www.wikipedia.org から返された HTTP ステータス コードを出力します。コマンドが成功すると、ステータス コードは 200 になります。ただし、プロキシに問題がある場合、コマンドは接続エラーを示す 000 ステータス コードを返します。詳細なエラー メッセージを表示するには、コマンドに -v オプションを追加します。

このページで説明した例では、TLS 検査を構成していません。TLS 検査用に Secure Web Proxy を構成し、Secure Web Proxy インスタンスをテストする方法については、TLS 検査を有効にするをご覧ください。

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。

swp1 Secure Web Proxy インスタンスを削除する

コンソール

  1. Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。すべてのウェブプロキシのリスト、または特定のネットワークで使用可能なウェブプロキシのみを表示できます。

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

  2. 削除するウェブプロキシを選択します。ここで、ウェブプロキシの名前は swp1 です。

  3. [削除] をクリックし、確認のためもう一度 [削除] をクリックします。

Cloud Shell

gcloud network-services gateways delete swp1 \
    --location=REGION

REGION は、Secure Web Proxy インスタンスのリージョンに置き換えます。

Cloud NAT ゲートウェイを削除する

コンソール

  1. Google Cloud コンソールで、[Cloud NAT] ページに移動します。

    [Cloud NAT] に移動

  2. Secure Web Proxy インスタンス用に自動生成された Cloud NAT ゲートウェイを選択します。Cloud NAT ゲートウェイの名前は通常 swg-autogen-nat です。

  3. [削除] をクリックし、確認のためもう一度 [削除] をクリックします。

Cloud Shell

  1. 省略可: 自動生成された Cloud Router の名前を特定するには、リージョン内のルーターを一覧表示します。

    gcloud compute routers list \
        --region=REGION \
        --filter="name:(swg-autogen-router-*)" \
        --format="value(name)"
    

    REGION は、Secure Web Proxy インスタンスのリージョンに置き換えます。

  2. Cloud NAT ゲートウェイを削除します。

    gcloud compute routers nats delete NAT_NAME \
        --router=ROUTER_NAME \
        --region=REGION
    

    次のように置き換えます。

    • NAT_NAME: Cloud NAT ゲートウェイの名前(通常は swg-autogen-nat)
    • ROUTER_NAME: Cloud NAT ゲートウェイに関連付けられている Cloud Router の名前。ルーターの名前は通常、swg-autogen-router- で始まります。
    • REGION: Cloud NAT ゲートウェイのリージョン

Cloud Router を削除する

コンソール

  1. Google Cloud コンソールで、[Cloud Router] ページに移動します。

    [Cloud Router] に移動

  2. Secure Web Proxy インスタンス用に自動生成された Cloud Router を選択します。ルーターの名前は通常、swg-autogen-router- で始まります。

  3. [削除] をクリックし、確認のためもう一度 [削除] をクリックします。

Cloud Shell

gcloud compute routers delete ROUTER_NAME \
    --region=REGION

次のように置き換えます。

  • ROUTER_NAME: Cloud Router の名前
  • REGION: Cloud Router のリージョン

allow-wikipedia-org ルールを削除する

コンソール

  1. Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。すべてのウェブプロキシのリスト、または特定のネットワークで使用可能なウェブプロキシのみを表示できます。

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

  2. ポリシーをクリックします。ここで、ポリシーの名前は policy1 です。

  3. 削除するルールを選択します。ここで、ルールの名前は allow-wikipedia-org です。

  4. [削除] をクリックし、確認のためもう一度 [削除] をクリックします。

Cloud Shell

gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
    --location=REGION \
    --gateway-security-policy=policy1

REGION は、ポリシーのリージョンに置き換えます。

policy1 Secure Web Proxy ポリシーを削除する

コンソール

  1. Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。すべてのウェブプロキシのリスト、または特定のネットワークで使用可能なウェブプロキシのみを表示できます。

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

  2. 削除するポリシーを選択します。ここで、ポリシーの名前は policy1 です。

  3. [削除] をクリックし、確認のためもう一度 [削除] をクリックします。

Cloud Shell

gcloud network-security gateway-security-policies delete policy1 \
    --location=REGION

REGION は、ポリシーのリージョンに置き換えます。

swp-test-vm Linux VM インスタンスを削除する

コンソール

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. 削除するインスタンスを選択します。ここで、swp-test-vm は Linux VM インスタンスの名前です。

  3. [削除] をクリックします。

Cloud Shell

gcloud compute instances delete swp-test-vm

次のステップ