Secure Web Proxy を明示的なプロキシとしてデプロイする
このクイックスタートでは、Secure Web Proxy インスタンスをデプロイしてテストする方法について説明します。この手順では、明示的なプロキシとして機能する明示的なルーティング モードで Secure Web Proxy をデプロイする方法について説明します。
明示的なルーティング モードの Secure Web Proxy インスタンスは、Private Service Connect サービスとしてデプロイできます。または、ネクストホップ ルーティング モードで Secure Web Proxy をデプロイすることもできます。
明示的なルーティング モードで Secure Web Proxy をデプロイする手順は次のとおりです。
- Secure Web Proxy ポリシーを作成します。
- Secure Web Proxy ルールを作成してポリシーに追加します。
- 明示的なルーティング モードで Secure Web Proxy インスタンスを設定します。
- Linux 仮想マシン(VM)インスタンスからの接続性をテストして、プロキシとそのポリシーが正しく機能していることを確認します。
始める前に
初期設定手順を完了します。
省略可: このドキュメントで指定されている
gcloudコマンドラインの例を実行するには、次のいずれかの開発環境に Google Cloud CLI をインストールします。Cloud Shell
gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
このページの末尾で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。
すでに gcloud CLI をインストールしている場合は、
gcloud components updateコマンドを実行して、最新のバージョンがインストールされていることを確認してください。ローカルシェル
ローカル開発環境を使用する手順は次のとおりです。
既存の Google Cloud プロジェクトを作成または選択します。
この手順で作成するリソースをそのまま保持する予定でない場合は、既存のプロジェクトを選択するのではなく、新しいプロジェクトを作成することをおすすめします。このクイックスタートの手順を完了したら、プロジェクトを削除して、プロジェクトに関連するすべてのリソースを削除できます。
コンソール
Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを作成 するか、既存のプロジェクトを選択します。
Cloud Shell
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_IDは、任意のプロジェクト ID に置き換えます。作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
Linux VM インスタンスを作成する。
gcloud compute instances create swp-test-vm \ --subnet=default \ --zone=ZONE \ --image-project=debian-cloud \ --image-family=debian-11ZONEは、テスト VM インスタンスのゾーンに置き換えます。Compute Engine によって、VM インスタンスを作成するユーザーに Compute インスタンス管理者ロール(
roles/compute.instanceAdmin)が付与されます。Compute Engine は、そのユーザーを sudo グループに追加します。ファイアウォール ルールを作成します。
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
必要なロール
このチュートリアルのタスクを完了するための、次のロールがあることを確認してください。
Compute ネットワーク管理者のロール(
roles/compute.networkAdmin)Certificate Manager 編集者のロール(
roles/certificatemanager.editor)
詳しくは以下をご覧ください。
Secure Web Proxy ポリシーを作成する
このセクションでは、Secure Web Proxy ポリシーを作成する手順について説明します。このポリシーは、Secure Web Proxy を通過するトラフィック フローを管理するすべてのセキュリティ ルールのコンテナとして機能します。ポリシーを作成したら、ルールを作成してポリシーに追加できます。
コンソール
Google Cloud コンソールで、[SWP ポリシー] ページに移動します。
[ポリシーを作成] をクリックします。
[名前] フィールドに、ポリシーの名前を入力します(例:
myswppolicy)。[説明] フィールドに、ポリシーの説明(
My new swp policyなど)を入力します。[リージョン] で、ポリシーを作成するリージョン(
us-central1など)を選択します。ポリシーのルールを作成する場合は、[ルールを追加] をクリックします。詳細については、Secure Web Proxy ルールを作成するをご覧ください。
[作成] をクリックします。
Cloud Shell
テキスト エディタを使用して
policy.yamlファイルを作成します。policy.yamlファイルに次のコードを追加します。description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/myswppolicy次のように置き換えます。
PROJECT_ID: プロジェクトの IDREGION: ポリシーが作成されるリージョン(us-central1など)
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 などの特定のホストの照合など)を指定し、ウェブ トラフィックを許可または拒否します。
コンソール
Google Cloud コンソールで、[SWP ポリシー] ページに移動します。
ポリシーの名前(
myswppolicyなど)をクリックします。[ルールを追加] をクリックします。
ルールごとに次の操作を行います。
[優先度] に、ルールの数値評価順序を入力します。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は
0)。[名前] フィールドに、ルールの名前を入力します(例:
allow-wikipedia-org)。[説明] フィールドに、ルールの説明を入力します(例:
Allow wikipedia.org)。[アクション] で、次のいずれかのオプションを選択します。
- 許可: ルールに一致する接続リクエストを許可します。
- 拒否: ルールに一致する接続リクエストを拒否します。
[ステータス] フィールドで、ルール適用の次のいずれかのオプションを選択します。
- 有効: Secure Web Proxy インスタンスにルールを適用します。
- 無効: Secure Web Proxy インスタンスにルールを適用しません。
[セッションの一致] セクションで、セッションの一致条件(
host() == 'www.wikipedia.org'など)を指定します。SessionMatcherの構文の詳細については、CEL マッチャーの言語リファレンスをご覧ください。[アプリケーションの一致] セクションで、リクエストの一致条件を指定します。TLS インスペクションのルールを有効にしていないため、リクエストは HTTP トラフィックにのみ一致します。
TCP トラフィックの照合の詳細については、TCP プロキシ ルールを構成するをご覧ください。
[作成] をクリックします。
別のルールを追加するには、[ルールを追加] をクリックします。
Cloud Shell
テキスト エディタを使用して
rule.yamlファイルを作成します。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: プロジェクトの IDREGION: ポリシーのリージョンRULE_NAME: ルールの名前(allow-wikipedia-orgなど)。
セキュリティ ポリシー ルールを作成します。
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 インスタンスに関連付けて、通過するすべてのトラフィックが定義されたアクセス制御の対象になるようにする方法についても説明します。
コンソール
Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。
[安全なウェブプロキシの作成] をクリックします。
[名前] フィールドに、ウェブプロキシの名前を入力します(例:
myswp)。[説明] フィールドに、ウェブプロキシの説明を入力します(例:
My new swp)。[ルーティング モード] で、[明示的] オプションを選択します。
[リージョン] で、ウェブプロキシを作成するリージョン(
us-central1など)を選択します。[ネットワーク] で、ウェブプロキシを作成するネットワークを選択します。
省略可: [ウェブプロキシの IP アドレス] フィールドに、Secure Web Proxy の IP アドレスを入力します。
前の手順で作成したサブネットワークに存在する Secure Web Proxy IP アドレスの範囲から IP アドレスを入力できます。IP アドレスを入力しない場合、Secure Web Proxy インスタンスは、選択したサブネットワークから IP アドレスを自動的に選択します。
[ポート] に、ウェブプロキシがリッスンするポート番号(
80や443など)を入力します。
[証明書] で、ウェブプロキシの作成に使用する証明書を選択します。
[関連付けられたポリシー] で、ウェブプロキシに関連付けるために作成したポリシーを選択します。
[作成] をクリックします。
Cloud Shell
テキスト エディタを使用して
gateway.yamlファイルを作成します。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次のように置き換えます。
gateway.yamlファイルに基づいて Secure Web Proxy インスタンスを作成します。gcloud network-services gateways import myswp \ --source=gateway.yaml \ --location=REGIONSecure Web Proxy インスタンスのデプロイには数分かかる場合があります。
接続をテストする
このセクションでは、Linux VM からの接続性をテストして、新しくデプロイされた Secure Web Proxy、そのポリシー、関連するルールが正しく機能していることを確認します。
前にプロビジョニングした VM に接続します。
gcloud compute ssh swp-test-vm \ --zone=ZONEZONEは、テスト VM インスタンスのゾーンに置き換えます。Secure Web Proxy インスタンスをテストします。
curl -s -o /dev/null -w "%{http_code}\\n" -x IP_ADDRESS:443 https://www.wikipedia.orgIP_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 インスタンスを削除する
コンソール
Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。すべてのウェブプロキシのリスト、または特定のネットワークで使用可能なウェブプロキシのみを表示できます。
削除するウェブプロキシを選択します。ここで、ウェブプロキシの名前は
swp1です。[削除] をクリックし、確認のためもう一度 [削除] をクリックします。
Cloud Shell
gcloud network-services gateways delete swp1 \
--location=REGION
REGION は、Secure Web Proxy インスタンスのリージョンに置き換えます。
Cloud NAT ゲートウェイを削除する
コンソール
Google Cloud コンソールで、[Cloud NAT] ページに移動します。
Secure Web Proxy インスタンス用に自動生成された Cloud NAT ゲートウェイを選択します。Cloud NAT ゲートウェイの名前は通常
swg-autogen-natです。[削除] をクリックし、確認のためもう一度 [削除] をクリックします。
Cloud Shell
省略可: 自動生成された Cloud Router の名前を特定するには、リージョン内のルーターを一覧表示します。
gcloud compute routers list \ --region=REGION \ --filter="name:(swg-autogen-router-*)" \ --format="value(name)"REGIONは、Secure Web Proxy インスタンスのリージョンに置き換えます。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 を削除する
コンソール
Google Cloud コンソールで、[Cloud Router] ページに移動します。
Secure Web Proxy インスタンス用に自動生成された Cloud Router を選択します。ルーターの名前は通常、
swg-autogen-router-で始まります。[削除] をクリックし、確認のためもう一度 [削除] をクリックします。
Cloud Shell
gcloud compute routers delete ROUTER_NAME \
--region=REGION
次のように置き換えます。
ROUTER_NAME: Cloud Router の名前REGION: Cloud Router のリージョン
allow-wikipedia-org ルールを削除する
コンソール
Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。すべてのウェブプロキシのリスト、または特定のネットワークで使用可能なウェブプロキシのみを表示できます。
ポリシーをクリックします。ここで、ポリシーの名前は
policy1です。削除するルールを選択します。ここで、ルールの名前は
allow-wikipedia-orgです。[削除] をクリックし、確認のためもう一度 [削除] をクリックします。
Cloud Shell
gcloud network-security gateway-security-policies rules delete allow-wikipedia-org \
--location=REGION \
--gateway-security-policy=policy1
REGION は、ポリシーのリージョンに置き換えます。
policy1 Secure Web Proxy ポリシーを削除する
コンソール
Google Cloud コンソールで、[ウェブプロキシ] ページに移動します。すべてのウェブプロキシのリスト、または特定のネットワークで使用可能なウェブプロキシのみを表示できます。
削除するポリシーを選択します。ここで、ポリシーの名前は
policy1です。[削除] をクリックし、確認のためもう一度 [削除] をクリックします。
Cloud Shell
gcloud network-security gateway-security-policies delete policy1 \
--location=REGION
REGION は、ポリシーのリージョンに置き換えます。
swp-test-vm Linux VM インスタンスを削除する
コンソール
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
削除するインスタンスを選択します。ここで、
swp-test-vmは Linux VM インスタンスの名前です。[削除] をクリックします。
Cloud Shell
gcloud compute instances delete swp-test-vm