Secure Web Proxy を Private Service Connect サービスとして公開する

複数の VPC ネットワークにわたって Secure Web Proxy のデプロイを集中管理するには、Private Service Connect サービス アタッチメントを介して Secure Web Proxy を利用できるようにします。

Private Service Connect で Secure Web Proxy をデプロイする手順は次のとおりです。

  1. Secure Web Proxy ポリシーとルールを作成する。
  2. ポリシーを使用する Secure Web Proxy インスタンスを作成します。
  3. サービス アタッチメントを作成して、Secure Web Proxy インスタンスを Private Service Connect サービスとして公開します。
  4. Secure Web Proxy に接続する必要がある各 VPC ネットワークに Private Service Connect コンシューマ エンドポイントを作成します。
  5. ワークロードの下り(外向き)トラフィックを、リージョン内の一元化された Secure Web Proxy インスタンスに転送します。
Private Service Connect サービス アタッチメント モードでの Secure Web Proxy のデプロイ。
Secure Web Proxy を Private Service Connect サービスとして公開すると、複数の VPC ネットワークにわたるワークロードの下り(外向き)トラフィック管理を集中化できます。(クリックして拡大)

始める前に

このページの手順を完了する前に、初期設定の手順を完了してください。

Secure Web Proxy インスタンスを作成して構成する

このガイドでは、セッションごとにトラフィックを照合する Secure Web Proxy ポリシーとルールを作成する方法について説明します。

TLS インスペクションを必要に応じて構成する方法については、TLS インスペクションを有効にするをご覧ください。

必要に応じてアプリケーション レベルのマッチングを構成する方法については、Secure Web Proxy インスタンスをデプロイするをご覧ください。

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

コンソール

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

    [SWP ポリシー] に移動

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

  3. 作成するポリシーの名前を入力します(例: myswppolicy)。

  4. ポリシーの説明を入力します。

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

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

Cloud Shell

  1. policy.yaml ファイルを作成します。

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

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

    • PROJECT_ID: プロジェクトのプロジェクト ID
    • REGION: ポリシーのリージョン
  2. policy.yaml に基づいて Secure Web Proxy ポリシーを作成します。

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

ポリシーに Secure Web Proxy ルールを追加する

各ワークロードからの下り(外向き)トラフィックを許可するように Secure Web Proxy ルールを構成します。

このセクションでは、Resource Manager タグまたはサービス アカウントで識別されるワークロードからのトラフィックを許可するルールを作成する方法について説明します。他の方法でトラフィックを照合する方法については、CEL マッチャーの言語リファレンスをご覧ください。

コンソール

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

    [SWP ポリシー] に移動

  2. ポリシーの名前をクリックします。

  3. ワークロードがインターネットにアクセスできるようにルールを追加する手順は次のとおりです。

    1. [ルールを追加] をクリックします。
    2. 優先度を入力します。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は 0)。
    3. 名前を入力します。
    4. 内容を入力してください。
    5. ステータスを入力します。
    6. [アクション] で [許可] を選択します。
    7. [ステータス] をクリックし、[有効] を選択します。
    8. [セッションの一致] セクションで、セッションの一致条件を指定します。

      • たとえば、Resource Manager タグ値 ID が tagValues/123456 のワークロードから google.com へのトラフィックを許可するには、次のように入力します。

        source.matchTag('tagValues/123456') && host() == 'google.com'

      • サービス アカウント account-name@my-project.iam.gserviceaccount.com を使用するワークロードから google.com へのトラフィックを許可するには、次のように入力します。

        source.matchServiceAccount('account-name@my-project.iam.gserviceaccount.com') && host() == 'google.com'

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

Cloud Shell

追加するルールごとに、次の操作を行います。

  1. rule.yaml ファイルを作成し、セッションを照合する条件を指定します。

    • Resource Manager タグ値 ID で識別されるワークロードから特定のドメインへのトラフィックを許可するには、次のファイルを作成します。

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on tag
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchTag('TAG_VALUE_ID') && host() == 'DOMAIN_NAME'
      

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

      • PROJECT_ID: プロジェクトのプロジェクト ID
      • REGION: ポリシーのリージョン
      • RULE_NAME: ルールの名前
      • PRIORITY: ルールの優先度。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は 0)。
      • TAG_VALUE_ID: トラフィックを許可するワークロードのタグ値 ID
      • DOMAIN_NAME: トラフィックを許可するドメイン名
    • サービス アカウントを使用するワークロードから特定のドメインへのトラフィックを許可するには、次のファイルを作成します。

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on service account
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'DOMAIN_NAME'
      

      SERVICE_ACCOUNT は、サービス アカウントの名前に置き換えます。

  2. rule.yaml で定義したルールでポリシーを更新するには、次のコマンドを使用します。

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

Secure Web Proxy インスタンスをデプロイする

下り(外向き)トラフィックに使用する Virtual Private Cloud(VPC)ネットワークに、明示ルーティング モードで Secure Web Proxy インスタンスをデプロイします。インスタンスを作成するときに、前の手順で作成したポリシーとルールに関連付けます。

Private Service Connect サービス アタッチメントを使用して Secure Web Proxy を公開する場合、ネクストホップ ルーティング モードはサポートされません。

インスタンスの構成については、ウェブ プロキシを設定するをご覧ください。この時点では、そのページの他の手順を完了する必要はありません。

ハブ アンド スポーク モデルで Private Service Connect サービスとして Secure Web Proxy をデプロイする

このセクションでは、ハブ アンド スポーク モデルを使用して下り(外向き)トラフィック管理を集中化する方法で、Secure Web Proxy を Private Service Connect サービスとしてデプロイする方法について説明します。

Secure Web Proxy を Private Service Connect サービスとして公開する

Secure Web Proxy をサービスとして公開するには、Private Service Connect サブネットとサービス アタッチメントを作成します。サブネットとサービス アタッチメントは、サービス アタッチメントにアクセスする Private Service Connect エンドポイントと同じリージョンを共有する必要があります。

Private Service Connect 用のサブネットを作成する

Private Service Connect のサブネットを作成するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。

  3. [サブネット] をクリックします。

  4. [サブネットを追加] をクリックします。表示されたダイアログで、次の操作を行います。

    1. 名前を入力します。
    2. リージョンを選択します。
    3. [目的] セクションで [Private Service Connect] を選択します。
    4. [IP スタックタイプ] には、[IPv4(シングルスタック)] または [IPv4 と IPv6(デュアルスタック)] を選択します。
    5. IPv4 範囲を入力します。例: 10.10.10.0/24
    6. デュアルスタック サブネットを作成する場合は、IPv6 アクセスタイプを [内部] に設定します。
    7. [追加] をクリックします。

Cloud Shell

次のいずれかを行います。

  • IPv4 専用の Private Service Connect サブネットを作成するには、次の操作を行います。

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • デュアルスタック Private Service Connect サブネットを作成するには、次の操作を行います。

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

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

  • SUBNET_NAME: サブネットに割り当てる名前。

  • NETWORK_NAME: 新しいサブネットの VPC の名前。

  • REGION: 新しいサブネットのリージョン。これは、公開するサービスと同じリージョンにする必要があります。

  • SUBNET_RANGE: サブネットに使用する IPv4 アドレス範囲(例: 10.10.10.0/24)。

サービス アタッチメントを作成する

Secure Web Proxy を中央(ハブ)の VPC ネットワークでサービス アタッチメントとして公開するには、次の操作を行います。

このセクションでは、すべての接続を自動的に受け入れるサービス アタッチメントを作成する方法について説明します。明示的な承認やその他の構成オプションについては、明示的な承認でサービスを公開するをご覧ください。

コンソール

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

    [Private Service Connect] に移動

  2. [公開サービス] タブをクリックします。

  3. [サービスを公開] をクリックします。

  4. [ターゲットの詳細] セクションで、[Secure Web Proxy] を選択します。

  5. 公開する Secure Web Proxy インスタンスを選択します。選択した Secure Web Proxy インスタンスの詳細が [ネットワーク] フィールドと [リージョン] フィールドに入力されます。

  6. [サービス名] に、サービス アタッチメントの名前を入力します。

  7. サービスの Private Service Connect サブネットを 1 つ以上選択します。このリストには、選択した Secure Web Proxy インスタンスの VPC ネットワークのサブネットが表示されます。

  8. [接続の設定] セクションで、[すべての接続を自動的に受け入れる] を選択します。

  9. [サービスを追加] をクリックします。

Cloud Shell

gcloud compute service-attachments create コマンドを使用します。

gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME \
    --target-service=SWP_INSTANCE_URI \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=NAT_SUBNET_NAME \
    --region=REGION \
    --project=PROJECT \

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

  • SERVICE_ATTACHMENT_NAME: サービス アタッチメントの名前
  • SWP_INSTANCE_URI: Secure Web Proxy インスタンスの URI(//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/INSTANCE_NAME の形式)。
  • NAT_SUBNET_NAME: Private Service Connect サブネットの名前
  • REGION: Secure Web Proxy デプロイのリージョン
  • PROJECT: Secure Web Proxy デプロイのプロジェクト

エンドポイントの作成

一元化された Secure Web Proxy インスタンスを介して下り(外向き)トラフィックを送信する必要がある各 VPC ネットワークとリージョンにエンドポイントを作成します。作成するエンドポイントごとに次の手順を繰り返します。

コンソール

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

    [Private Service Connect] に移動

  2. [接続エンドポイント] タブをクリックします。

  3. [エンドポイントを接続] をクリックします。

  4. [ターゲット] で [公開済みのサービス] を選択します。

  5. [ターゲット サービス] に、接続するサービス アタッチメント URI を入力します。

    サービス アタッチメント URI の形式は projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME です。

  6. [エンドポイント名] に、エンドポイントに使用する名前を入力します。

  7. エンドポイントのネットワークを選択します。

  8. エンドポイントのサブネットワークを選択します。

  9. エンドポイントの IP アドレスを選択します。新しい IP アドレスが必要な場合は、次のように作成します。

    1. [IP アドレス] プルダウン メニューをクリックし、[IP アドレスを作成] を選択します。
    2. IP アドレスの名前説明を入力します。
    3. IP バージョンを選択します。
    4. IPv4 アドレスを作成する場合は、[自動的に割り当てる] または [自分で選択] を選択します。

      [自分で選択] を選択した場合、使用するカスタム IP アドレスを入力します。

    5. [予約] をクリックします。

  10. [エンドポイントを追加] をクリックします。

Cloud Shell

  1. エンドポイントに割り当てる内部 IP アドレスを予約します。

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET \
        --ip-version=IP_VERSION
    

    以下を置き換えます。

    • ADDRESS_NAME: 予約済みの IP アドレスに割り当てる名前。

    • REGION: エンドポイントの IP アドレスのリージョン。これは、サービス プロデューサーのサービス アタッチメントが含まれているのと同じリージョンに存在している必要があります。

    • SUBNET: エンドポイント IP アドレスのサブネットの名前。

    • IP_VERSION: IP アドレスの IP バージョン。IPV4 または IPV6 のいずれかです。デフォルトは IPV4 です。IPV6 を指定するには、IP アドレスが内部 IPv6 アドレス範囲を持つサブネットに接続されている必要があります。

  2. エンドポイントをサービス プロデューサーのサービス アタッチメントに接続する転送ルールを作成します。

    gcloud compute forwarding-rules create ENDPOINT_NAME \
       --region=REGION \
       --network=NETWORK_NAME \
       --address=ADDRESS_NAME \
       --target-service-attachment=SERVICE_ATTACHMENT
    

    以下を置き換えます。

    • ENDPOINT_NAME: エンドポイントに割り当てる名前。

    • REGION: エンドポイントのリージョン。これは、サービス プロデューサーのサービス アタッチメントが含まれているのと同じリージョンに存在している必要があります。

    • NETWORK_NAME: エンドポイントの VPC ネットワークの名前。

    • ADDRESS_NAME: 予約済みのアドレスの名前。

    • SERVICE_ATTACHMENT: サービス プロデューサーのサービス アタッチメントの URI。例: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

ワークロードを Private Service Connect エンドポイントにポイントする

各ワークロードが下り(外向き)トラフィックに Private Service Connect エンドポイントの IP アドレスを使用するように、プロキシ環境変数を構成します。

たとえば、Linux または macOS 環境のワークロードの場合は、コマンドラインを使用して HTTP_PROXY 環境変数と HTTPS_PROXY 環境変数を一時的に構成できます。

export HTTP_PROXY="http://ENDPOINT_IP_ADDRESS:HTTP_PORT"
export HTTPS_PROXY="https://ENDPOINT_IP_ADDRESS:HTTPS_PORT"

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

  • ENDPOINT_IP_ADDRESS: エンドポイントの内部 IP アドレス
  • HTTP_PORT: HTTP トラフィックを受信するポート
  • HTTPS_PORT: HTTPS トラフィックを受信するポート

ワークロードの環境でプロキシ変数を永続的に設定する方法については、オペレーティング システムのドキュメントをご覧ください。

次のステップ