Network Security Integration は、プロデューサー / コンシューマー モデルを使用してデータを検査およびモニタリングします。パケット ミラーリング テクノロジーとのアウトオブバンド統合を使用して、ユーザー管理の仮想アプライアンスを使用してネットワーク トラフィックをミラーリングします。
このチュートリアルでは、帯域外統合を設定するためにプロデューサー リソースとコンシューマー リソースを作成して構成する方法について説明します。
目標
このチュートリアルでは、プロジェクトで次のタスクを行う方法について説明します。
- 同じプロジェクトに、プロデューサーとコンシューマーのサブネットを含むカスタム Virtual Private Cloud(VPC)ネットワークを作成します。
- プロデューサーの場合は、プロデューサー リソースとミラーリング デプロイ リソースを作成して構成します。プロデューサー リソースの例としては、内部パススルー ネットワーク ロードバランサがあります。
- コンシューマーの場合、クライアントとサーバーの仮想マシン(VM)インスタンス、ミラーリング エンドポイント リソース、クライアント サーバー トラフィックをミラーリングするファイアウォール ポリシーを作成して構成します。
- 接続をテストし、コンシューマー VM からのネットワーク トラフィック パケットがプロデューサーのミラーリング リソースにミラーリングされていることを確認します。
次の図は、プロデューサー VPC ネットワークとコンシューマー VPC ネットワーク間のトラフィックのフローを示しています。
上の図は、次のことを示しています。
- ミラーリング エンドポイント グループを介してコンシューマー ネットワークからプロデューサー ネットワークに流れるネットワーク トラフィック。
- プロデューサー ネットワークには、VM インスタンス、内部パススルー ネットワーク ロードバランサ、ミラーリング デプロイが含まれます。
- プロデューサー ネットワークのミラーリング デプロイ グループには、ゾーン ミラーリング デプロイが含まれます。
- コンシューマー ネットワークには、クライアント VM インスタンスとサーバー VM インスタンスが含まれます。コンシューマー ネットワーク内のファイアウォール ルールとポリシーはトラフィック フローを管理し、セキュリティ プロファイル グループはファイアウォール ポリシーに関連付けられます。
- コンシューマー ネットワークはミラーリング エンドポイント グループの関連付けにリンクされ、コンシューマー ネットワークがミラーリング エンドポイント グループに接続されます。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- プロジェクトで Compute Engine API を有効にします。
- 課金に使用する Google Cloud プロジェクトで Network Security API を有効にします。
- プロジェクト レベルで Compute ネットワーク管理者ロール(
roles/compute.networkAdmin)が付与され、組織レベルで セキュリティ プロファイル管理者ロール(roles/networksecurity.securityProfileAdmin)が付与されていることを確認します。 - コマンドラインから作業する場合は、Google Cloud CLI をインストールします。ツールのコンセプトとインストールについては、gcloud CLI の概要をご覧ください。
注: Google Cloud CLI を初めて実行する場合は、まず
gcloud initを実行して、gcloud CLI ディレクトリを初期化します。 - プロジェクトの ID を取得します。ミラーリングとエンドポイント リソースの作成に必要です。gcloud CLI を使用している場合は、ここで
PROJECT_IDを置き換えるか、後でそれぞれのコマンドで置き換えることができます。 - 組織の ID を取得します。セキュリティ プロファイルやセキュリティ プロファイル グループなどの組織レベルのリソースを作成するには、このロールが必要です。gcloud CLI を使用している場合は、ここで
ORG_IDを置き換えるか、後でそれぞれのコマンドで置き換えることができます。
プロデューサー リソースを作成する
このセクションでは、プロデューサー用に次のリソースを作成します。
- サブネットを含むカスタム VPC ネットワーク。
- 受信した Generic Network Virtualization Encapsulation(GENEVE)パケットをロギングする VM インスタンスを含む非マネージド インスタンス グループ。
- バックエンド サービスと転送ルールを備えた内部パススルー ネットワーク ロードバランサ。
- Google Cloud ヘルスチェックを許可するファイアウォール ルール。
- ミラーリング デプロイ グループとミラーリング デプロイ。
カスタム VPC ネットワークの作成
このセクションでは、サブネットを含む VPC ネットワークを作成します。
コンソール
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[ VPC ネットワークを作成] をクリックします。
[名前] に「
producer-network」と入力します。[説明] に「
Producer VPC network」と入力します。[サブネット] セクションで、次の操作を行います。
- [サブネット作成モード] で [カスタム] を選択します。
- [新しいサブネット] セクションに、次の情報を入力します。
- 名前:
producer-subnet - リージョン:
us-west1 - IP スタックタイプ: IPv4(シングルスタック)
- IPv4 範囲:
10.10.0.0/16
- 名前:
- [完了] をクリックします。
[作成] をクリックします。
gcloud CLI を開き、次のコマンドを実行して Google Cloud コンソール ネットワークの最大伝送単位(MTU)を増やします。
gcloud compute networks update producer-network \ --mtu=1856このコマンドでは、 Google Cloud コンソール ネットワークのデフォルト MTU(1, 460 バイト)と Network Security Integration の Geneve カプセル化オーバーヘッド(396 バイト)の合計である 1, 856 バイトの MTU を指定します。
gcloud
VPC ネットワークを作成します。
gcloud compute networks create producer-network \ --subnet-mode=custom \ --mtu=1856 \ --description="Producer VPC network"このコマンドでは、1, 856 バイトの MTU を指定します。これは、 Google Cloud コンソール ネットワークのデフォルト MTU(1, 460 バイト)と Network Security Integration の Geneve カプセル化オーバーヘッド(396 バイト)の合計です。
VPC ネットワークにサブネットを作成します。
gcloud compute networks subnets create producer-subnet \ --network=producer-network \ --region=us-west1 \ --range=10.10.0.0/16
非マネージド インスタンス グループを作成する
このセクションでは、非マネージド インスタンス グループを作成します。
コンソール
Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
[インスタンス グループを作成] をクリックします。
[新しい非マネージド インスタンス グループ] をクリックします。
[名前] に「
producer-instance-group」と入力します。[ロケーション] セクションで、[リージョン] に
us-west1を選択し、[ゾーン] にus-west1-bを選択します。[ネットワークとインスタンス] セクションで、次の操作を行います。
- [ネットワーク] で
producer-networkを選択します。 - [サブネットワーク] で、[
producer-subnet] を選択します。
- [ネットワーク] で
[作成] をクリックします。
gcloud
gcloud compute instance-groups unmanaged create producer-instance-group \
--zone=us-west1-b
ロードバランサ コンポーネントを構成する
このセクションでは、バックエンド サービスや転送ルールなど、内部パススルー ネットワーク ロードバランサのコンポーネントを作成します。
コンソール
構成を開始する
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
- [ロードバランサを作成] をクリックします。
- [ロードバランサの種類] で [ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択し、[次へ] をクリックします。
- [プロキシまたはパススルー] で [パススルー ロードバランサ] を選択し、[次へ] をクリックします。
- [インターネット接続または内部] で [内部] を選択し、[次へ] をクリックします。
- [構成] をクリックします。
基本構成
[Create internal passthrough Network Load Balancer] ページで、次の情報を入力します。
- ロードバランサの名前:
producer-ilb - リージョン:
us-west1 - ネットワーク:
producer-network
バックエンドを構成する
- [バックエンドの構成] をクリックします。
- [プロトコル] で [
UDP] を選択します。 - [ヘルスチェック] リストから [ヘルスチェックを作成] を選択し、次の情報を入力して [作成] をクリックします。
- 名前:
producer-health-check - 範囲: リージョン
- ポート:
80 - プロキシのプロトコル:
NONE
- 名前:
- [バックエンド] の [新しいバックエンド] セクションで、[IP スタックタイプ] に [IPv4(シングルスタック)] を選択します。
[インスタンス グループ] で、
producer-instance-groupインスタンス グループを選択し、[完了] をクリックします。続行する前に、[バックエンドの構成] の隣に青いチェックマークがあることを確認します。
フロントエンドを構成する
- [新しいフロントエンドの IP とポート] セクションで、次の情報を入力して [完了] をクリックします。
- [名前] に「
producer-ilb-fr」と入力します。 - [サブネットワーク] で、[
producer-subnet] を選択します。 - [ポート] で [単一] を選択し、[ポート番号] に
6081を入力します。 - [詳細設定] セクションの [パケット ミラーリング] で、[このロードバランサをパケット ミラーリング用に有効にする] を選択します。
- 続行する前に、[フロントエンドの構成] の隣に青いチェックマークがあることを確認します。
- [名前] に「
構成を確認する
- [確認と完了] をクリックします。
- ロードバランサの構成を確認します。
- [作成] をクリックします。
gcloud
リージョン ヘルスチェックを作成します。
gcloud compute health-checks create tcp producer-health-check \ --region=us-west1 \ --port=80バックエンド サービスを作成します。
gcloud compute backend-services create producer-backend-service \ --protocol=UDP \ --region=us-west1 \ --health-checks=producer-health-check \ --health-checks-region=us-west1 \ --load-balancing-scheme=INTERNALバックエンド サービスの転送ルールを作成します。
gcloud compute forwarding-rules create producer-ilb-fr \ --backend-service=producer-backend-service \ --region=us-west1 \ --network=producer-network \ --subnet=producer-subnet \ --ip-protocol=UDP \ --load-balancing-scheme=INTERNAL \ --is-mirroring-collector \ --ports=6081
VM インスタンスを作成してインスタンス グループに追加する
このセクションでは、GENEVE カプセル化パケットのロギング サーバーを設定する起動スクリプトを使用して VM インスタンスを作成します。VM インスタンスを作成する前に、サブネットのゲートウェイの IP アドレスを取得します。起動スクリプトの IP アドレスが必要です。
コンソール
サブネット ゲートウェイの IP アドレスを取得する
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
producer-networkVPC ネットワークをクリックします。[サブネット] タブをクリックします。
[サブネット] セクションで、[ゲートウェイ] 列のゲートウェイ IP アドレスをメモします。
VM インスタンスを作成する
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- [名前] に「
producer-instance」と入力します。 - [リージョン] で、
us-west1を選択します。 - [ゾーン] で、[
us-west1-b] を選択します。 - [マシンタイプ] を e2-micro に設定します。
- [ネットワーキング] をクリックし、[ネットワーク インターフェース] セクションで [ネットワーク インターフェースを追加] をクリックして、次のように設定します。
- ネットワーク:
producer-network - サブネット:
producer-subnet - 外部 IPv4 アドレス: なし
- ネットワーク:
[詳細] をクリックし、[起動スクリプト] に次のスクリプトを入力します。
#!/bin/bash # Log incoming packets from the gateway IP and the GENEVE 6081 port. iptables -A INPUT -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix "[NSI MIRRORING] " # Spin up a simple server for health checks on port 80. nohup python3 -u -m http.server 80 &
次のように置き換えます。
GW_IP: サブネット ゲートウェイの IP アドレス。
[作成] をクリックします。
VM インスタンスをインスタンス グループに追加する
Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
[
producer-instance-group] をクリックします。[編集] をクリックします。
[VM インスタンス] セクションの [VM を選択] リストから、
producer-instanceVM を選択します。[保存] をクリックします。
gcloud
サブネットのゲートウェイの IP アドレスを取得します。
GW_IP=$(gcloud compute networks subnets describe producer-subnet \ --region=us-west1 \ --format="get(gatewayAddress)")VM インスタンスを作成します。
gcloud compute instances create producer-instance \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=producer-subnet,no-address" \ --metadata=startup-script='#!/bin/bash # Log incoming packets from the gateway IP and the GENEVE 6081 port. iptables -A INPUT -p udp -s '"$GW_IP"'/32 --dport 6081 -j LOG --log-prefix "[NSI MIRRORING] " # Spin up a simple server for health checks on port 80. nohup python3 -u -m http.server 80 &'VM インスタンスをインスタンス グループに追加します。
gcloud compute instance-groups unmanaged add-instances producer-instance-group \ --instances=producer-instance \ --zone=us-west1-bバックエンド サービスにインスタンス グループを追加します。
gcloud compute backend-services add-backend producer-backend-service \ --region=us-west1 \ --instance-group=producer-instance-group \ --instance-group-zone=us-west1-b
ファイアウォール ポリシーを作成し、ファイアウォール ルールを追加する
このセクションでは、ファイアウォール ポリシーを作成し、Identity-Aware Proxy(IAP)を介してプロデューサー VM インスタンスへの UDP トラフィック、 Google Cloud ヘルスチェック、SSH 接続を許可するファイアウォール ルールを追加します。
コンソール
Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。
[ファイアウォール ポリシーを作成] をクリックします。
[名前] フィールドに「
producer-firewall-policy」と入力します。[デプロイのスコープ] で [グローバル] を選択し、[続行] をクリックします。
ポリシーに次のルールを作成します。
VPC ゲートウェイの IP アドレスからの GENEVE ポートで UDP トラフィックを許可する
- [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。
- 優先度:
100 - トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- ソースフィルタ > IP 範囲:
GATEWAY_IP - プロトコルとポート: [指定したプロトコルとポート] を選択して、[UDP] チェックボックスをオンにし、[ポート] に「
6081」と入力します。
- 優先度:
- [作成] をクリックします。
GATEWAY_IPは、サブネット ゲートウェイの IP アドレスに置き換えます。Google Cloud ヘルスチェックを許可する
[ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。
- 優先度:
101 - トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- IP 範囲:
35.191.0.0/16と130.211.0.0/22 - プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「
80」と入力します。
- 優先度:
[作成] をクリックします。
Identity-Aware Proxy を介してプロデューサー VM インスタンスへの SSH 接続を許可する
- [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。
- 優先度:
102 - トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- IP 範囲:
35.235.240.0/20 - プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「
22」と入力します。
- 優先度:
- [作成] をクリックします。
- [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。
ポリシーをネットワークに関連付けるには、[続行] をクリックしてから [関連付け] をクリックします。
producer-networkチェックボックスをオンにします。[続行] をクリックします。
[作成] をクリックします。
gcloud
グローバル ネットワーク ファイアウォール ポリシーを作成します。
gcloud compute network-firewall-policies create producer-firewall-policy \ --globalファイアウォール ポリシーをプロデューサー ネットワークに関連付けます。
gcloud compute network-firewall-policies associations create \ --name=producer-firewall-policy-assoc \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --network=producer-networkVPC ゲートウェイの IP アドレスからの GENEVE ポートを使用した UDP 接続を許可するファイアウォール ルールを作成します。
gcloud compute network-firewall-policies rules create 100 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=udp:6081 \ --src-ip-ranges=$GW_IP/32Google Cloud ヘルスチェックを許可するファイアウォール ルールを作成します。
gcloud compute network-firewall-policies rules create 101 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:80 \ --src-ip-ranges=35.191.0.0/16,130.211.0.0/22 # Google Cloud health check rangesIdentity-Aware Proxy を介してプロデューサー VM インスタンスへの SSH 接続を許可するファイアウォール ルールを作成します。
gcloud compute network-firewall-policies rules create 102 \ --firewall-policy=producer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:22 \ --src-ip-ranges=35.235.240.0/20 # Google Cloud IAP range
プロデューサー ミラーリング リソースを作成する
このセクションでは、ミラーリング デプロイ グループとミラーリング デプロイを作成します。
コンソール
Google Cloud コンソールで、[デプロイ グループ] ページに移動します。
[デプロイ グループを作成] をクリックします。
[名前] に「
producer-deployment-group」と入力します。[ネットワーク] で
producer-networkを選択します。[目的] で [NSI アウトオブバンド] を選択します。
[ミラーリング デプロイ] セクションで、[ミラーリング デプロイを作成] をクリックし、次のフィールドを指定して、[作成] をクリックします。
- 名前:
producer-deployment - リージョン:
us-west1。 - ゾーン:
us-west1-b。 - 内部ロードバランサ:
producer-ilb。
- 名前:
[作成] をクリックします。
gcloud
ミラーリング デプロイ グループを作成します。
gcloud network-security mirroring-deployment-groups create producer-deployment-group \ --location=global \ --network=projects/PROJECT_ID/global/networks/producer-network \ --no-asyncPROJECT_IDは、プロジェクトの ID に置き換えます。ミラーリング デプロイを作成します。
gcloud network-security mirroring-deployments create producer-deployment \ --location=us-west1-b \ --forwarding-rule=producer-ilb-fr \ --forwarding-rule-location=us-west1 \ --mirroring-deployment-group=projects/PROJECT_ID/locations/global/mirroringDeploymentGroups/producer-deployment-group \ --no-async
コンシューマー リソースを作成する
このセクションでは、コンシューマー用に次のリソースを作成します。
- サブネットを含むカスタム VPC ネットワーク
- サーバー VM とクライアント VM
- トラフィックをミラーリングするファイアウォール ポリシーとルール
- ミラーリング エンドポイント グループとミラーリング エンドポイント グループの関連付け
- セキュリティ プロファイルとセキュリティ プロファイル グループ
カスタム VPC ネットワークの作成
このセクションでは、サブネットを含む VPC ネットワークを作成します。
コンソール
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[VPC ネットワークを作成] をクリックします。
[名前] に「
consumer-network」と入力します。[説明] に「
Consumer VPC network」と入力します。[サブネット] セクションで、次の操作を行います。
- [サブネット作成モード] で [カスタム] を選択します。
- [新しいサブネット] セクションに、次の情報を入力します。
- 名前:
consumer-subnet - リージョン:
us-west1 - IP スタックタイプ: IPv4(シングルスタック)
- IPv4 範囲:
10.11.0.0/16
- 名前:
- [完了] をクリックします。
[作成] をクリックします。
gcloud
コンシューマー VPC ネットワークを作成します。
gcloud compute networks create consumer-network \ --subnet-mode=custom \ --description="Consumer VPC network"VPC ネットワークにサブネットを作成します。
gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --region=us-west1 \ --range=10.11.0.0/16
サーバー VM とクライアント VM を作成する
このセクションでは、サーバー VM とクライアント VM を作成します。
コンソール
サーバー VM を作成する
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
[名前] を
consumer-server-vmに設定します。[リージョン] を
us-west1に設定します。[ゾーン] を
us-west1-bに設定します。[マシンタイプ] を e2-micro に設定します。
[ネットワーキング] をクリックし、[ネットワーク インターフェース] セクションで [ネットワーク インターフェースを追加] をクリックして、次のように設定します。
- ネットワーク:
consumer-network - サブネット:
consumer-subnet - 外部 IPv4 アドレス: なし
- ネットワーク:
[詳細] をクリックし、[起動スクリプト] に次のスクリプトを入力します。
echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000 &
[作成] をクリックします。
クライアント VM を作成する
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
[名前] を
consumer-client-vmに設定します。[リージョン] を
us-west1に設定します。[ゾーン] を
us-west1-bに設定します。[マシンタイプ] を e2-micro に設定します。
[ネットワーキング] をクリックし、[ネットワーク インターフェース] セクションで [ネットワーク インターフェースを追加] をクリックして、次のように設定します。
- ネットワーク:
consumer-network - サブネット:
consumer-subnet - 外部 IPv4 アドレス: なし
- ネットワーク:
[作成] をクリックします。
gcloud
サーバー VM を作成する。
gcloud compute instances create consumer-server-vm \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=consumer-subnet,no-address" \ --metadata=startup-script="echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000 &"クライアント VM を作成する。
gcloud compute instances create consumer-client-vm \ --image-project=debian-cloud \ --image-family=debian-11 \ --machine-type=e2-micro \ --zone=us-west1-b \ --network-interface="subnet=consumer-subnet,no-address"
上り(内向き)トラフィックを許可するファイアウォール ポリシーを作成する
このセクションでは、ファイアウォール ポリシーを作成し、コンシューマー VM への上り(内向き)トラフィックを許可するファイアウォール ルールを追加します。
コンソール
Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。
[ファイアウォール ポリシーを作成] をクリックします。
[名前] フィールドに「
consumer-firewall-policy」と入力します。[デプロイのスコープ] で [グローバル] を選択し、[続行] をクリックします。
[ファイアウォール ルールを作成] をクリックし、次のフィールドを構成して、[作成] をクリックします。
- 優先度:
101 - トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- ソースフィルタ > IP 範囲:
35.235.240.0/20 - プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「
22」と入力します。
IPv4 範囲
35.235.240.0/20には、Identity-Aware Proxy が TCP 転送に使用するすべての IP アドレスが含まれています。詳細については、IAP TCP 転送用のプロジェクトの準備をご覧ください。- 優先度:
TCP ポート
8000のトラフィックがサーバー VM に到達できるようにするには、[ファイアウォール ルールを作成] をクリックして、次のフィールドを構成します。- 優先度:
102 - トラフィックの方向: 上り(内向き)
- 一致したときのアクション: 許可
- ソースフィルタ > IP 範囲:
10.11.0.0/16 - プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「
8000」と入力します。 - [作成] をクリックします。
- 優先度:
ポリシーをネットワークに関連付けるには、[続行] をクリックしてから [関連付け] をクリックします。
consumer-networkチェックボックスをオンにします。[続行] をクリックします。
[作成] をクリックします。
gcloud
グローバル ネットワーク ファイアウォール ポリシーを作成します。
gcloud compute network-firewall-policies create consumer-firewall-policy \ --globalファイアウォール ポリシーをコンシューマー ネットワークに関連付けます。
gcloud compute network-firewall-policies associations create \ --name=consumer-firewall-policy-assoc \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --network=consumer-networkIdentity-Aware Proxy を介してクライアント VM インスタンスへの SSH 接続を許可する SSH 許可ルールを作成します。
gcloud compute network-firewall-policies rules create 101 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:22 \ --src-ip-ranges=35.235.240.0/20 # Google Cloud IAP rangeIPv4 範囲
35.235.240.0/20には、IAP が TCP 転送に使用するすべての IP アドレスが含まれています。詳細については、IAP TCP 転送用のプロジェクトの準備をご覧ください。TCP ポート
8000でサーバー VM へのトラフィックを許可するファイアウォール ルールを作成します。gcloud compute network-firewall-policies rules create 102 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=allow \ --direction=INGRESS \ --layer4-configs=tcp:8000 \ --src-ip-ranges=10.11.0.0/16
コンシューマー エンドポイント グループを作成する
このセクションでは、ミラーリング エンドポイント グループとミラーリング エンドポイント グループの関連付けを作成します。
コンソール
Google Cloud コンソールで、[エンドポイント グループ] ページに移動します。
[エンドポイント グループを作成] をクリックします。
[名前] に「
consumer-endpoint-group」と入力します。[目的] で [NSI アウトオブバンド] を選択します。
[デプロイ グループ] で、[プロジェクト内] を選択します。
[デプロイ グループ名] に「
producer-deployment-group」と入力します。[続行] をクリックします。
[エンドポイント グループの関連付けを追加] をクリックします。
[プロジェクト] で、現在のプロジェクトを選択します。
[ネットワーク] で
consumer-networkを選択します。[作成] をクリックします。
gcloud
ミラーリング エンドポイント グループを作成します。
gcloud network-security mirroring-endpoint-groups create consumer-endpoint-group \ --location=global \ --mirroring-deployment-group=projects/PROJECT_ID/locations/global/mirroringDeploymentGroups/producer-deployment-group \ --no-asyncPROJECT_IDは、プロジェクトの ID に置き換えます。ミラーリング エンドポイント グループの関連付けを作成します。
gcloud network-security mirroring-endpoint-group-associations create consumer-endpoint-group-association \ --location=global \ --mirroring-endpoint-group=projects/PROJECT_ID/locations/global/mirroringEndpointGroups/consumer-endpoint-group \ --network=consumer-network \ --no-async
セキュリティ プロファイルとセキュリティ プロファイル グループを作成する
トラフィックをミラーリングするセキュリティ プロファイル グループとカスタム セキュリティ プロファイルを作成します。
コンソール
カスタム セキュリティ プロファイルを作成する
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
組織選択ツールから自分の組織を選択します。
[セキュリティ プロファイル] タブで、[プロファイルを作成] をクリックします。
[名前] に「
consumer-security-profile」と入力します。[目的] で [NSI アウトオブバンド] を選択します。
[プロジェクト] で、現在のプロジェクトを選択します。
[エンドポイント グループ] で
consumer-endpoint-groupを選択します。[作成] をクリックします。
セキュリティ プロファイル グループを作成する
Google Cloud コンソールで、[セキュリティ プロファイル グループ] ページに移動します。
組織選択ツールから自分の組織を選択します。
[セキュリティ プロファイル グループ] タブで、[プロファイル グループを作成] をクリックします。
[名前] に「
consumer-security-profile-group」と入力します。[目的] で [NSI アウトオブバンド] を選択します。
[カスタム ミラーリング プロファイル] で、
consumer-security-profileを選択します。[作成] をクリックします。
gcloud
カスタム ミラーリング セキュリティ プロファイルを作成します。
gcloud network-security security-profiles custom-mirroring create consumer-security-profile \ --location=global \ --organization=ORG_ID \ --mirroring-endpoint-group=projects/PROJECT_ID/locations/global/mirroringEndpointGroups/consumer-endpoint-group \ --billing-project=PROJECT_ID \ --no-async次のように置き換えます。
ORG_ID: 組織の ID。セキュリティ プロファイルは組織レベルのリソースです。これらを作成するには、組織レベルでセキュリティ プロファイル管理者のロール(networksecurity.securityProfileAdmin)が必要です。PROJECT_ID: 実際のプロジェクトの ID。
ミラーリング セキュリティ プロファイル グループを作成します。
gcloud network-security security-profile-groups create consumer-security-profile-group \ --location=global \ --organization=ORG_ID \ --custom-mirroring-profile=organizations/ORG_ID/locations/global/securityProfiles/consumer-security-profile \ --billing-project=PROJECT_ID \ --no-async次のように置き換えます。
ORG_ID: 組織の ID。セキュリティ プロファイル グループは組織レベルのリソースです。これらを作成するには、組織レベルでセキュリティ プロファイル管理者ロール(networksecurity.securityProfileAdmin)が必要です。PROJECT_ID: 実際のプロジェクトの ID。
トラフィックをミラーリングするファイアウォール ポリシールールを作成する
このセクションでは、トラフィックをミラーリングするミラーリング ルールを作成します。
コンソール
Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。
[
consumer-firewall-policy] をクリックします。[ミラーリング ルール] タブをクリックします。
[ミラーリング ルールを作成] をクリックし、次のフィールドを構成します。
- 優先度:
100 - トラフィックの方向: 上り(内向き)
- 一致したときのアクション: ミラーリング
- セキュリティ プロファイル グループ:
consumer-security-profile-group - 送信元: IPv4
- IP 範囲:
10.11.0.0/16 - プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「
8000」と指定します。
- 優先度:
[作成] をクリックします。
gcloud
ファイアウォール ルールを追加して、サーバー VM の TCP ポート
8000でトラフィックをミラーリングします。gcloud compute network-firewall-policies mirroring-rules create 100 \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policy \ --action=mirror \ --security-profile-group=organizations/ORG_ID/locations/global/securityProfileGroups/consumer-security-profile-group \ --direction=INGRESS \ --layer4-configs=tcp:8000 \ --src-ip-ranges=10.11.0.0/16ORG_IDは組織の ID に置き換えます。
接続をテストする
このセクションでは、コンシューマー クライアント VM インスタンスからコンシューマー サーバー VM インスタンスにネットワーク トラフィックを送信し、プロデューサー VM インスタンスのログを調べてミラーリングを確認します。
次のコマンドを実行して、SSH 経由でコンシューマー クライアント VM インスタンスに接続し、コンシューマー サーバー VM インスタンスにリクエストを送信します。
gcloud compute ssh consumer-client-vm \ --tunnel-through-iap \ --zone=us-west1-b \ --command="curl -m 3 -s http://consumer-server-vm:8000/connection_test || echo fail"前のコマンドを実行すると、
successメッセージが表示されます。これは、トラフィックがクライアントからサーバーに送信されることを示します。次のコマンドを実行して、プロデューサー VM インスタンスのログを確認します。
gcloud compute ssh producer-instance \ --tunnel-through-iap \ --zone=us-west1-b \ --command="cat /var/log/syslog | grep 'NSI MIRRORING'"[NSI MIRRORING] IN=ens4 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=10.10.0.1 DST=10.10.0.2 LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=45554 DPT=6081 LEN=116のようなメッセージが表示されます。これは、クライアント サーバー トラフィックがプロデューサー VM インスタンスによってミラーリングされていることを示します。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
コンシューマー リソースを削除する
ファイアウォール ポリシーとコンシューマー ネットワークの関連付けを解除し、ファイアウォール ポリシーを削除します。
コンソール
Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。
consumer-firewall-policyポリシーをクリックします。[関連付け] タブをクリックします。
consumer-network関連付けのチェックボックスをオンにします。[関連付けを削除] をクリックします。
[削除] をクリックします。
ページの上部にある [削除] をクリックします。
もう一度 [削除] をクリックして確定します。
gcloud
関連付けを削除します。
gcloud compute network-firewall-policies associations delete \ --name=consumer-firewall-policy-assoc \ --firewall-policy=consumer-firewall-policy \ --global-firewall-policyファイアウォール ポリシーを削除します。
gcloud compute network-firewall-policies delete consumer-firewall-policy \ --global
セキュリティ プロファイル グループを削除します。
コンソール
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
組織選択ツールから自分の組織を選択します。
[セキュリティ プロファイル グループ] タブで、
consumer-security-profile-groupセキュリティ プロファイル グループを選択し、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
gcloud
gcloud network-security security-profile-groups delete consumer-security-profile-group \ --location=global \ --organization=ORG_ID \ --billing-project=PROJECT_ID \ --quiet次のように置き換えます。
ORG_ID: 組織 IDPROJECT_ID: プロジェクト ID
セキュリティ プロファイルを削除します。
コンソール
Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。
組織選択ツールから自分の組織を選択します。
[セキュリティ プロファイル] タブで、
consumer-security-profileセキュリティ プロファイルを選択し、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
gcloud
gcloud network-security security-profiles custom-mirroring delete consumer-security-profile \ --location=global \ --organization=ORG_ID \ --billing-project=PROJECT_ID \ --quietミラーリング エンドポイント グループの関連付けを削除します。
コンソール
Google Cloud コンソールで、[エンドポイント グループ] ページに移動します。
[
consumer-endpoint-group] をクリックします。consumer-networkの関連付けを選択し、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
gcloud
gcloud network-security mirroring-endpoint-group-associations delete consumer-endpoint-group-association \ --location=global \ --no-asyncミラーリング エンドポイント グループを削除します。
コンソール
Google Cloud コンソールで、[エンドポイント グループ] ページに移動します。
[
consumer-endpoint-group] を選択し、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
gcloud
gcloud network-security mirroring-endpoint-groups delete consumer-endpoint-group \ --location=global \ --no-asyncサーバー VM とクライアント VM を削除します。
コンソール
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
consumer-client-vmとconsumer-server-vmのチェックボックスをオンにして、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
gcloud
クライアント VM を削除します。
gcloud compute instances delete consumer-client-vm \ --zone=us-west1-b \ --quietサーバー VM を削除します。
gcloud compute instances delete consumer-server-vm \ --zone=us-west1-b \ --quiet
コンシューマー ネットワークとサブネットを削除します。
コンソール
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[
consumer-network] をクリックします。[サブネット] タブで、
consumer-subnetのチェックボックスをオンにして、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
[VPC ネットワークの削除] をクリックします。
テキスト フィールドに
consumer-networkと入力して、[削除] をクリックします。
gcloud
サブネットを削除します。
gcloud compute networks subnets delete consumer-subnet \ --region=us-west1 \ --quietVPC ネットワークを削除します。
gcloud compute networks delete consumer-network \ --quiet
プロデューサー リソースを削除する
ファイアウォール ポリシーとプロデューサー ネットワークの関連付けを解除し、ファイアウォール ポリシーを削除します。
コンソール
Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。
producer-firewall-policyポリシーをクリックします。[関連付け] タブをクリックします。
producer-network関連付けのチェックボックスをオンにします。[関連付けを削除] をクリックします。
[削除] をクリックします。
[削除] をクリックします。
もう一度 [削除] をクリックして確定します。
gcloud
関連付けを削除します。
gcloud compute network-firewall-policies associations delete \ --name=producer-firewall-policy-assoc \ --firewall-policy=producer-firewall-policy \ --global-firewall-policyファイアウォール ポリシーを削除します。
gcloud compute network-firewall-policies delete producer-firewall-policy \ --global
ミラーリング デプロイとミラーリング デプロイ グループを削除します。
コンソール
Google Cloud コンソールで、[デプロイ グループ] ページに移動します。
[
producer-deployment-group] をクリックします。producer-deploymentを削除します。producer-deploymentのチェックボックスをオンにして、[削除] をクリックします。- もう一度 [削除] をクリックして確定します。
[削除] ボタンをクリックします。
もう一度 [削除] をクリックして確定します。
gcloud
ミラーリング デプロイを削除します。
gcloud network-security mirroring-deployments delete producer-deployment \ --location=us-west1-b \ --no-asyncミラーリング デプロイ グループを削除します。
gcloud network-security mirroring-deployment-groups delete producer-deployment-group \ --location=global \ --no-async
ロードバランサ リソースを削除します。
コンソール
Google Cloud コンソールで、[ロード バランシング] ページに移動します。
producer-ilbチェックボックスをオンにします。ページ上部にある [削除] ボタンをクリックします。
producer-health-checkチェックボックスをオンにして、[ロードバランサと選択したリソースを削除] をクリックします。
gcloud
転送ルールを削除します。
gcloud compute forwarding-rules delete producer-ilb-fr \ --region=us-west1 \ --quietバックエンド サービスを削除します。
gcloud compute backend-services delete producer-backend-service \ --region=us-west1 \ --quietヘルスチェックを削除します。
gcloud compute health-checks delete producer-health-check \ --region=us-west1 \ --quiet
プロデューサー VM インスタンスを削除します。
コンソール
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
producer-instanceのチェックボックスをオンにして、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
gcloud
gcloud compute instances delete producer-instance \ --zone=us-west1-b \ --quietインスタンス グループを削除します。
コンソール
Google Cloud コンソールで、[インスタンス グループ] ページに移動します。
producer-instance-groupチェックボックスをオンにします。[削除] をクリックします。
確認ウィンドウで [削除] をクリックします。
gcloud
gcloud compute instance-groups unmanaged delete producer-instance-group \ --zone=us-west1-b \ --quietプロデューサー ネットワークとサブネットを削除します。
コンソール
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[
producer-network] をクリックします。[サブネット] タブで、
producer-subnetのチェックボックスをオンにして、[削除] をクリックします。もう一度 [削除] をクリックして確定します。
[VPC ネットワークの削除] をクリックします。
テキスト フィールドに
producer-networkと入力して、[削除] をクリックします。
gcloud
サブネットを削除します。
gcloud compute networks subnets delete producer-subnet \ --region=us-west1 \ --quietネットワークを削除します。
gcloud compute networks delete producer-network \ --quiet
次のステップ
- ミラーリング デプロイ グループの概要
- ミラーリング デプロイの概要
- ミラーリング エンドポイント グループの概要
- セキュリティ プロファイルの概要
- セキュリティ プロファイル グループの概要
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud Architecture Center を確認する。