複数の VPC ネットワークにわたって Secure Web Proxy のデプロイを集中管理するには、Private Service Connect サービス アタッチメントを介して Secure Web Proxy を利用できるようにします。
Private Service Connect で Secure Web Proxy をデプロイする手順は次のとおりです。
- Secure Web Proxy ポリシーとルールを作成する。
- ポリシーを使用する Secure Web Proxy インスタンスを作成します。
- サービス アタッチメントを作成して、Secure Web Proxy インスタンスを Private Service Connect サービスとして公開します。
- Secure Web Proxy に接続する必要がある各 VPC ネットワークに Private Service Connect コンシューマ エンドポイントを作成します。
- ワークロードの下り(外向き)トラフィックを、リージョン内の一元化された Secure Web Proxy インスタンスに転送します。
始める前に
このページの手順を完了する前に、初期設定の手順を完了してください。
Secure Web Proxy インスタンスを作成して構成する
このガイドでは、セッションごとにトラフィックを照合する Secure Web Proxy ポリシーとルールを作成する方法について説明します。
TLS インスペクションを必要に応じて構成する方法については、TLS インスペクションを有効にするをご覧ください。
必要に応じてアプリケーション レベルのマッチングを構成する方法については、Secure Web Proxy インスタンスをデプロイするをご覧ください。
Secure Web Proxy ポリシーを作成する
コンソール
Google Cloud コンソールで、[SWP ポリシー] ページに移動します。
[
ポリシーを作成] をクリックします。作成するポリシーの名前を入力します(例:
myswppolicy
)。ポリシーの説明を入力します。
[リージョン] リストで、ウェブプロキシ ポリシーを作成するリージョンを選択します。
[作成] をクリックします。
Cloud Shell
policy.yaml
ファイルを作成します。description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
次のように置き換えます。
PROJECT_ID
: プロジェクトのプロジェクト IDREGION
: ポリシーのリージョン
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 マッチャーの言語リファレンスをご覧ください。
コンソール
Google Cloud コンソールで、[SWP ポリシー] ページに移動します。
ポリシーの名前をクリックします。
ワークロードがインターネットにアクセスできるようにルールを追加する手順は次のとおりです。
- [ ルールを追加] をクリックします。
- 優先度を入力します。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は
0
)。 - 名前を入力します。
- 内容を入力してください。
- ステータスを入力します。
- [アクション] で [許可] を選択します。
- [ステータス] をクリックし、[有効] を選択します。
[セッションの一致] セクションで、セッションの一致条件を指定します。
たとえば、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'
[作成] をクリックします。
Cloud Shell
追加するルールごとに、次の操作を行います。
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
: プロジェクトのプロジェクト IDREGION
: ポリシーのリージョンRULE_NAME
: ルールの名前PRIORITY
: ルールの優先度。ルールは、最も高い優先度から順番に評価されます(最も高い優先度は0
)。TAG_VALUE_ID
: トラフィックを許可するワークロードのタグ値 IDDOMAIN_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
は、サービス アカウントの名前に置き換えます。
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 のサブネットを作成するには、次の操作を行います。
コンソール
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
VPC ネットワークの名前をクリックして、[VPC ネットワークの詳細] ページを表示します。
[サブネット] をクリックします。
[サブネットを追加] をクリックします。表示されたダイアログで、次の操作を行います。
- 名前を入力します。
- リージョンを選択します。
- [目的] セクションで [Private Service Connect] を選択します。
- [IP スタックタイプ] には、[IPv4(シングルスタック)] または [IPv4 と IPv6(デュアルスタック)] を選択します。
- IPv4 範囲を入力します。例:
10.10.10.0/24
- デュアルスタック サブネットを作成する場合は、IPv6 アクセスタイプを [内部] に設定します。
- [追加] をクリックします。
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 ネットワークでサービス アタッチメントとして公開するには、次の操作を行います。
このセクションでは、すべての接続を自動的に受け入れるサービス アタッチメントを作成する方法について説明します。明示的な承認やその他の構成オプションについては、明示的な承認でサービスを公開するをご覧ください。
コンソール
Google Cloud コンソールで、[Private Service Connect] ページに移動します。
[公開サービス] タブをクリックします。
[サービスを公開] をクリックします。
[ターゲットの詳細] セクションで、[Secure Web Proxy] を選択します。
公開する Secure Web Proxy インスタンスを選択します。選択した Secure Web Proxy インスタンスの詳細が [ネットワーク] フィールドと [リージョン] フィールドに入力されます。
[サービス名] に、サービス アタッチメントの名前を入力します。
サービスの Private Service Connect サブネットを 1 つ以上選択します。このリストには、選択した Secure Web Proxy インスタンスの VPC ネットワークのサブネットが表示されます。
[接続の設定] セクションで、[すべての接続を自動的に受け入れる] を選択します。
[サービスを追加] をクリックします。
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 ネットワークとリージョンにエンドポイントを作成します。作成するエンドポイントごとに次の手順を繰り返します。
コンソール
Google Cloud コンソールで、[Private Service Connect] ページに移動します。
[接続エンドポイント] タブをクリックします。
[エンドポイントを接続] をクリックします。
[ターゲット] で [公開済みのサービス] を選択します。
[ターゲット サービス] に、接続するサービス アタッチメント URI を入力します。
サービス アタッチメント URI の形式は
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
です。[エンドポイント名] に、エンドポイントに使用する名前を入力します。
エンドポイントのネットワークを選択します。
エンドポイントのサブネットワークを選択します。
エンドポイントの IP アドレスを選択します。新しい IP アドレスが必要な場合は、次のように作成します。
- [IP アドレス] プルダウン メニューをクリックし、[IP アドレスを作成] を選択します。
- IP アドレスの名前と説明を入力します。
- IP バージョンを選択します。
IPv4 アドレスを作成する場合は、[自動的に割り当てる] または [自分で選択] を選択します。
[自分で選択] を選択した場合、使用するカスタム IP アドレスを入力します。
[予約] をクリックします。
[エンドポイントを追加] をクリックします。
Cloud Shell
エンドポイントに割り当てる内部 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 アドレス範囲を持つサブネットに接続されている必要があります。
エンドポイントをサービス プロデューサーのサービス アタッチメントに接続する転送ルールを作成します。
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 トラフィックを受信するポート
ワークロードの環境でプロキシ変数を永続的に設定する方法については、オペレーティング システムのドキュメントをご覧ください。
次のステップ
- TLS インスペクションを構成する
- タグを使用してポリシーを作成する
- 下り(外向き)トラフィックに静的 IP アドレスを割り当てる
- Private Service Connect サービス アタッチメント モードのその他の考慮事項