このページでは、URL リストを使用して、Secure Web Proxy インスタンス内の送信ウェブ トラフィックの詳細なアクセス ポリシーを作成および管理する方法について説明します。ウェブサイトごとに個別のルールを作成する代わりに、URL リストを使用して、再利用可能なドメイン、ホスト名、特定の URL パターンの集中管理コレクションを定義できます。
URL リストを使用する主なメリットは次のとおりです。
ポリシー管理の簡素化: セキュリティ ポリシーで 1 つの参照を使用して、多数の
allowまたはdenyルールを適用できます。正確な制御の適用: 特定の構文を使用して、 ドメイン全体、サブドメイン、または正確な URL パスを照合できます。これにより、ワークロードが承認された宛先にのみアクセスできるようになります。
ウェブアクセスの保護: 環境全体で Google Cloud ウェブアクセスを効率的に保護し、監査できます。
始める前に
Google Cloud CLI バージョン 406.0.0 以降がインストールされていることを確認します。
gcloud version | head -n1以前のバージョンの gcloud CLI がインストールされている場合は、バージョンを更新します。
gcloud components update --version=406.0.0
空のポリシーを使用して Secure Web Proxy インスタンスを作成する
Secure Web Proxy インスタンスを作成するには、まず空のセキュリティ ポリシーを作成してから、そのポリシーを使用するウェブプロキシを作成する必要があります。
空のセキュリティ ポリシーを作成する
コンソール
コンソールで、[SWP ポリシー] ページに移動します。 Google Cloud
[ポリシーを作成] をクリックします。
[**名前**] フィールドに、ポリシーの名前( `
myswppolicy` など)を入力します。[説明] フィールドに、ポリシーの説明(
My new swp policyなど)を入力します。[**リージョン**] で、ポリシーを作成する リージョン(
us-central1など)を選択します。[作成] をクリックします。
Cloud Shell
任意のテキスト エディタを使用して、
policy.yamlファイルを作成します。作成した
policy.yamlファイルに以下を追加します。name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTION次のように置き換えます。
PROJECT_NAME: プロジェクトの名前REGION: ポリシーが作成されるリージョン(us-central1など)POLICY_NAME: ポリシーの名前POLICY_DESCRIPTION: ポリシーの説明
gcloud network-security gateway-security-policies importコマンドを使用して、セキュリティ ポリシーをインポートします。gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
ウェブプロキシを作成する
コンソール
コンソールで、[ウェブプロキシ] ページに移動します。 Google Cloud
[add_box**セキュア ウェブプロキシを作成**] をクリックします。
[名前] フィールドに、ウェブプロキシの名前(
myswpなど)を入力します。[説明] フィールドに、ウェブプロキシの説明(
My new swpなど)を入力します。[**ルーティング モード**] で、次のいずれかのオプションを選択します。
- 明示的: Secure Web Proxy インスタンスを明示的なプロキシ モードでデプロイします。
- ネクストホップ: Secure Web Proxy インスタンスをネクストホップ モードでデプロイします。
[**リージョン**] で、ウェブプロキシを作成するリージョン(
us-central1など)を選択します。[**ネットワーク**] で、 ウェブプロキシを作成するネットワークを選択します。
省略可: [ウェブプロキシの IP アドレス] フィールドに、Secure Web Proxy の IP アドレスを入力します。
前の手順で作成したサブネットワークに存在する Secure Web Proxy IP アドレスの範囲から IP アドレスを入力できます。 IP アドレスを入力しない場合、Secure Web Proxy インスタンスは、選択したサブネットワークから IP アドレスを自動的に選択します。
[証明書] で、ウェブプロキシの作成に使用する証明書を選択します。
[**ポリシー**] で、ウェブプロキシに関連付けるために作成したポリシーを選択します。
[作成] をクリックします。
Cloud Shell
任意のテキスト エディタを使用して、
gateway.yamlファイルを作成します。gateway.yamlファイルに以下を追加します。name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK routingMode: ROUTING_MODE addresses: [GATEWAY_IP_ADDRESS] scope: samplescope次のように置き換えます。
GATEWAY_NAME: この Secure Web Proxy インスタンスの名前GATEWAY_PORT_NUMBERS: このゲートウェイのポート番号のリスト([80,443]など)CERTIFICATE_URLS: SSL 証明書の URL のリストROUTING_MODE: 必要なウェブプロキシ ルーティング モードを指定します。EXPLICIT_ROUTING_MODE: Secure Web Proxy インスタンスを明示的なプロキシ モードでデプロイします。NEXT_HOP_ROUTING_MODE: Secure Web Proxy インスタンスをネクストホップ モードでデプロイします。
GATEWAY_IP_ADDRESS: 初期設定手順で以前に作成したプロキシ サブネット内の Secure Web Proxy インスタンスの IP アドレスのオプションのリストIP アドレスを一覧表示しない場合は、フィールドを省略して、ウェブプロキシによって IP アドレスが選択されるようにします。
gcloud network-services gateways importコマンドを使用して、Secure Web Proxy インスタンスを作成します。gcloud network-services gateways import GATEWAY_NAME \ --source=gateway.yaml \ --location=REGION
接続をテストする
接続をテストするには、Virtual Private Cloud(VPC)ネットワーク内の任意の仮想マシン(VM)インスタンスから curl コマンドを使用します。
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
すべてが正常に機能している場合、Secure Web Proxy インスタンスは 403 Forbidden ステータス
コードを返します。このエラーは、次のことを確認します。
Secure Web Proxy インスタンスが正常にデプロイされ、トラフィックをアクティブに受信している。
Secure Web Proxy ポリシーは、次のセクションで特定の
allowルールを定義するまで、すべてのトラフィックを拒否するデフォルトのセキュリティ体制を正しく適用している。
URL リストを作成して構成する
コンソール
コンソールで、[URL リスト] ページに移動します。 Google Cloud
[URL リストを作成] をクリックします。 [URL リストを作成] ページが開きます。
[名前] フィールドに、URL リストの名前(
example-org-allowed-listなど)を入力します。[説明] フィールドに、URL リストの説明(
My new URL listなど)を入力します。[**リージョン**] で、URL リストを作成するリージョン(
us-central1など)を選択します。照合するホスト、URL、パターンのリストを追加するには、[URL リスト] フィールドに詳細を入力するか、[リストをアップロード]をクリックして URL の カスタムリストをアップロードします。詳細については、 UrlList 構文リファレンスをご覧ください。
[作成] をクリックします。
Cloud Shell
任意のテキスト エディタを使用して、
url_list.yamlファイルを作成します。url_list.yamlファイルに以下を追加します。name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME values: URL_LIST次のように置き換えます。
PROJECT_ID: あなたのプロジェクトの一意の ID Google CloudREGION: URL リストが作成されるリージョン(us-central1など)URL_LIST_NAME: URL リストの名前URL_LIST: 照合するホスト、URL、パターン のリスト
詳細については、 UrlList 構文リファレンスをご覧ください。
URL リストのルールファイルの例を次に示します。
name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list values: - www.example.com - about.example.com - "*.google.com" - "github.com/example-org/*"アスタリスク(
*)文字は YAML で特別な意味を持ちます。*文字を含む URL は引用符で囲む必要があります。gcloud network-security url-lists importコマンド を使用して、作成した URL リストをインポートし、Secure Web Proxy ルールで参照できるようにします。gcloud network-security url-lists import URL_LIST_NAME \ --location=REGION \ --project=PROJECT_ID \ --source=url_list.yaml
Secure Web Proxy ルールを追加する
コンソール
コンソールで、[SWP ポリシー] ページに移動します。 Google Cloud
ポリシーの名前(
myswppolicyなど)をクリックします。[add_box**ルールを追加**] をクリックします。
ルールごとに、次の操作を行います。
[**優先度**] に、ルールの数値評価順序を入力します。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は
0)。[名前] フィールドに、ルールの名前(
allow-org-url-listなど)を入力します。[説明] フィールドに、ルールの説明を入力します。
[アクション] で、次のいずれかのオプションを選択します。
- 許可: ルールに一致する接続リクエストを許可します。
- 拒否: ルールに一致する接続リクエストを拒否します。
[ステータス] フィールドで、ルールの適用に関する次のいずれかのオプションを選択します。
- 有効: Secure Web Proxy インスタンスにルールを適用します。
- 無効: Secure Web Proxy インスタンスにルールを適用しません。
[セッションの一致] セクションで、前のセクションで作成した URL リストの一意の名前を指定します。次に例を示します。
sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"SessionMatcherの構文の詳細については、 CEL マッチャーの言語リファレンスをご覧ください。[アプリケーションの一致] セクションで、リクエストの一致条件を指定します。
[ルールを追加] をクリックします。
Cloud Shell
任意のテキスト エディタを使用して、
rule.yamlファイルを作成します。rule.yamlファイルに以下を追加します。name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME basicProfile: ALLOW enabled: true priority: RULE_PRIORITY description: RULE_DESCRIPTION sessionMatcher: SESSION_CEL_EXPRESSION applicationMatcher: APPLICATION_CEL_EXPRESSION次のように置き換えます。
PROJECT_ID: あなたのプロジェクトの一意の ID Google CloudREGION: このルールが適用されるリージョンPOLICY_NAME: Secure Web Proxy インスタンスが使用する既存のセキュリティ ポリシーの名前RULE_NAME: ルールの名前PRIORITY_VALUE: ルールの優先度。数値が小さいほど優先度が高くなります。RULE_DESCRIPTION: ルールの説明SESSION_CEL_EXPRESSION: Common Expression Language(CEL)式。詳細については、 CEL マッチャーの言語リファレンスをご覧ください。APPLICATION_CEL_EXPRESSION: アプリケーションの CEL 式
ルールファイルの例を次に示します。
name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos basicProfile: ALLOW enabled: true priority: 100 description: Allow access to our list of known code repos. sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"gcloud network-security gateway-security-policies rules importコマンドを使用して、作成したルールをインポートします。gcloud network-security gateway-security-policies rules import RULE_NAME \ --location=REGION \ --project=PROJECT_ID \ --source=rule.yaml \ --gateway-security-policy=POLICY_NAME
ポリシー構成をテストする
接続を再度テストして、URL リストベースのアクセスルールが正しく構成され、Secure Web Proxy インスタンスによってアクティブに適用されていることを確認できます。
接続をテストするには、次の curl コマンドを使用します。
curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure
次のように置き換えます。
SWP_IP_ADDRESS: Secure Web Proxy インスタンスの IP アドレスSWP_PORT_NUMBER: ウェブプロキシのポート番号(443など)HTTP_TEST_ADDRESS: テスト対象のアドレス(https://www.example.comなど)。url_listのホストまたは URL エントリと一致します。
すべてが正常に機能している場合、200 OK レスポンスが返されます。このレスポンスは、URL リストに記載され、セキュリティ
ポリシールールで参照されている URL への送信トラフィックが、Secure Web Proxy インスタンスを介して正常に許可されていることを確認します。