プロデューサー / コンシューマー モデルのアウトオブバンド統合を設定する

Network Security Integration は、プロデューサー / コンシューマー モデルを使用してデータを検査およびモニタリングします。パケット ミラーリング テクノロジーとのアウトオブバンド統合を使用して、ユーザー管理の仮想アプライアンスを使用してネットワーク トラフィックをミラーリングします。

このチュートリアルでは、帯域外統合を設定するためにプロデューサー リソースとコンシューマー リソースを作成して構成する方法について説明します。

目標

このチュートリアルでは、プロジェクトで次のタスクを行う方法について説明します。

  1. 同じプロジェクトに、プロデューサーとコンシューマーのサブネットを含むカスタム Virtual Private Cloud(VPC)ネットワークを作成します。
  2. プロデューサーの場合は、プロデューサー リソースとミラーリング デプロイ リソースを作成して構成します。プロデューサー リソースの例としては、内部パススルー ネットワーク ロードバランサがあります。
  3. コンシューマーの場合、クライアントとサーバーの仮想マシン(VM)インスタンス、ミラーリング エンドポイント リソース、クライアント サーバー トラフィックをミラーリングするファイアウォール ポリシーを作成して構成します。
  4. 接続をテストし、コンシューマー VM からのネットワーク トラフィック パケットがプロデューサーのミラーリング リソースにミラーリングされていることを確認します。

次の図は、プロデューサー VPC ネットワークとコンシューマー VPC ネットワーク間のトラフィックのフローを示しています。

単一のプロジェクトにおけるプロデューサー コンポーネントとコンシューマー コンポーネントのデプロイ アーキテクチャの概要。
図 1. 単一プロジェクト内のプロデューサー コンポーネントとコンシューマー コンポーネントのデプロイ アーキテクチャの概要(クリックして拡大)。

上の図は、次のことを示しています。

  • ミラーリング エンドポイント グループを介してコンシューマー ネットワークからプロデューサー ネットワークに流れるネットワーク トラフィック。
  • プロデューサー ネットワークには、VM インスタンス、内部パススルー ネットワーク ロードバランサ、ミラーリング デプロイが含まれます。
  • プロデューサー ネットワークのミラーリング デプロイ グループには、ゾーン ミラーリング デプロイが含まれます。
  • コンシューマー ネットワークには、クライアント VM インスタンスとサーバー VM インスタンスが含まれます。コンシューマー ネットワーク内のファイアウォール ルールとポリシーはトラフィック フローを管理し、セキュリティ プロファイル グループはファイアウォール ポリシーに関連付けられます。
  • コンシューマー ネットワークはミラーリング エンドポイント グループの関連付けにリンクされ、コンシューマー ネットワークがミラーリング エンドポイント グループに接続されます。

始める前に

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. プロジェクトで Compute Engine API を有効にします。
  7. 課金に使用する Google Cloud プロジェクトで Network Security API を有効にします。
  8. プロジェクト レベルで Compute ネットワーク管理者ロールroles/compute.networkAdmin)が付与され、組織レベルで セキュリティ プロファイル管理者ロールroles/networksecurity.securityProfileAdmin)が付与されていることを確認します。
  9. コマンドラインから作業する場合は、Google Cloud CLI をインストールします。ツールのコンセプトとインストールについては、gcloud CLI の概要をご覧ください。

    注: Google Cloud CLI を初めて実行する場合は、まず gcloud init を実行して、gcloud CLI ディレクトリを初期化します。

  10. プロジェクトの ID を取得します。ミラーリングとエンドポイント リソースの作成に必要です。gcloud CLI を使用している場合は、ここで PROJECT_ID を置き換えるか、後でそれぞれのコマンドで置き換えることができます。
  11. 組織の ID を取得します。セキュリティ プロファイルやセキュリティ プロファイル グループなどの組織レベルのリソースを作成するには、このロールが必要です。gcloud CLI を使用している場合は、ここで ORG_ID を置き換えるか、後でそれぞれのコマンドで置き換えることができます。

プロデューサー リソースを作成する

このセクションでは、プロデューサー用に次のリソースを作成します。

  • サブネットを含むカスタム VPC ネットワーク。
  • 受信した Generic Network Virtualization Encapsulation(GENEVE)パケットをロギングする VM インスタンスを含む非マネージド インスタンス グループ。
  • バックエンド サービスと転送ルールを備えた内部パススルー ネットワーク ロードバランサ。
  • Google Cloud ヘルスチェックを許可するファイアウォール ルール。
  • ミラーリング デプロイ グループとミラーリング デプロイ。

カスタム VPC ネットワークの作成

このセクションでは、サブネットを含む VPC ネットワークを作成します。

コンソール

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

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

  2. [ VPC ネットワークを作成] をクリックします。

  3. [名前] に「producer-network」と入力します。

  4. [説明] に「Producer VPC network」と入力します。

  5. [サブネット] セクションで、次の操作を行います。

    1. [サブネット作成モード] で [カスタム] を選択します。
    2. [新しいサブネット] セクションに、次の情報を入力します。
      • 名前: producer-subnet
      • リージョン: us-west1
      • IP スタックタイプ: IPv4(シングルスタック)
      • IPv4 範囲: 10.10.0.0/16
    3. [完了] をクリックします。
  6. [作成] をクリックします。

  7. 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

  1. 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 バイト)の合計です。

  2. VPC ネットワークにサブネットを作成します。

    gcloud compute networks subnets create producer-subnet \
        --network=producer-network \
        --region=us-west1 \
        --range=10.10.0.0/16
    

非マネージド インスタンス グループを作成する

このセクションでは、非マネージド インスタンス グループを作成します。

コンソール

  1. Google Cloud コンソールで、[インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

  2. [インスタンス グループを作成] をクリックします。

  3. [新しい非マネージド インスタンス グループ] をクリックします。

  4. [名前] に「producer-instance-group」と入力します。

  5. [ロケーション] セクションで、[リージョン] に us-west1 を選択し、[ゾーン] に us-west1-b を選択します。

  6. [ネットワークとインスタンス] セクションで、次の操作を行います。

    1. [ネットワーク] で producer-network を選択します。
    2. [サブネットワーク] で、[producer-subnet] を選択します。
  7. [作成] をクリックします。

gcloud

gcloud compute instance-groups unmanaged create producer-instance-group \
    --zone=us-west1-b

ロードバランサ コンポーネントを構成する

このセクションでは、バックエンド サービスや転送ルールなど、内部パススルー ネットワーク ロードバランサのコンポーネントを作成します。

コンソール

構成を開始する

  1. Google Cloud コンソールで、[ロード バランシング] ページに移動します。

    [ロード バランシング] に移動

  2. [ロードバランサを作成] をクリックします。
  3. [ロードバランサの種類] で [ネットワーク ロードバランサ(TCP / UDP / SSL)] を選択し、[次へ] をクリックします。
  4. [プロキシまたはパススルー] で [パススルー ロードバランサ] を選択し、[次へ] をクリックします。
  5. [インターネット接続または内部] で [内部] を選択し、[次へ] をクリックします。
  6. [構成] をクリックします。

基本構成

[Create internal passthrough Network Load Balancer] ページで、次の情報を入力します。

  • ロードバランサの名前: producer-ilb
  • リージョン: us-west1
  • ネットワーク: producer-network

バックエンドを構成する

  1. [バックエンドの構成] をクリックします。
  2. [プロトコル] で [UDP] を選択します。
  3. [ヘルスチェック] リストから [ヘルスチェックを作成] を選択し、次の情報を入力して [作成] をクリックします。
    • 名前: producer-health-check
    • 範囲: リージョン
    • ポート: 80
    • プロキシのプロトコル: NONE
  4. [バックエンド] の [新しいバックエンド] セクションで、[IP スタックタイプ] に [IPv4(シングルスタック)] を選択します。
  5. [インスタンス グループ] で、producer-instance-group インスタンス グループを選択し、[完了] をクリックします。

  6. 続行する前に、[バックエンドの構成] の隣に青いチェックマークがあることを確認します。

フロントエンドを構成する

  1. [新しいフロントエンドの IP とポート] セクションで、次の情報を入力して [完了] をクリックします。
    1. [名前] に「producer-ilb-fr」と入力します。
    2. [サブネットワーク] で、[producer-subnet] を選択します。
    3. [ポート] で [単一] を選択し、[ポート番号] に 6081 を入力します。
    4. [詳細設定] セクションの [パケット ミラーリング] で、[このロードバランサをパケット ミラーリング用に有効にする] を選択します。
    5. 続行する前に、[フロントエンドの構成] の隣に青いチェックマークがあることを確認します。

構成を確認する

  1. [確認と完了] をクリックします。
  2. ロードバランサの構成を確認します。
  3. [作成] をクリックします。

gcloud

  1. リージョン ヘルスチェックを作成します。

    gcloud compute health-checks create tcp producer-health-check \
        --region=us-west1 \
        --port=80
    
  2. バックエンド サービスを作成します。

    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
    
  3. バックエンド サービスの転送ルールを作成します。

    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 アドレスを取得する

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

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

  2. producer-network VPC ネットワークをクリックします。

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

  4. [サブネット] セクションで、[ゲートウェイ] 列のゲートウェイ IP アドレスをメモします。

VM インスタンスを作成する

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    VM インスタンスに移動

    1. [インスタンスを作成] をクリックします。
    2. [名前] に「producer-instance」と入力します。
    3. [リージョン] で、us-west1 を選択します。
    4. [ゾーン] で、[us-west1-b] を選択します。
    5. [マシンタイプ] を e2-micro に設定します。
    6. [ネットワーキング] をクリックし、[ネットワーク インターフェース] セクションで [ネットワーク インターフェースを追加] をクリックして、次のように設定します。
      • ネットワーク: producer-network
      • サブネット: producer-subnet
      • 外部 IPv4 アドレス: なし
    7. [詳細] をクリックし、[起動スクリプト] に次のスクリプトを入力します。

      #!/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 アドレス。
    8. [作成] をクリックします。

VM インスタンスをインスタンス グループに追加する

  1. Google Cloud コンソールで、[インスタンス グループ] ページに移動します。

    [インスタンス グループ] に移動

  2. [producer-instance-group] をクリックします。

  3. [編集] をクリックします。

  4. [VM インスタンス] セクションの [VM を選択] リストから、producer-instance VM を選択します。

  5. [保存] をクリックします。

gcloud

  1. サブネットのゲートウェイの IP アドレスを取得します。

    GW_IP=$(gcloud compute networks subnets describe producer-subnet \
        --region=us-west1 \
        --format="get(gatewayAddress)")
    
  2. 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 &'
    
    
  3. VM インスタンスをインスタンス グループに追加します。

    gcloud compute instance-groups unmanaged add-instances producer-instance-group \
        --instances=producer-instance \
        --zone=us-west1-b
    
  4. バックエンド サービスにインスタンス グループを追加します。

    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 接続を許可するファイアウォール ルールを追加します。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ファイアウォール ポリシーを作成] をクリックします。

  3. [名前] フィールドに「producer-firewall-policy」と入力します。

  4. [デプロイのスコープ] で [グローバル] を選択し、[続行] をクリックします。

  5. ポリシーに次のルールを作成します。

    VPC ゲートウェイの IP アドレスからの GENEVE ポートで UDP トラフィックを許可する

    1. [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。
      • 優先度: 100
      • トラフィックの方向: 上り(内向き)
      • 一致したときのアクション: 許可
      • ソースフィルタ > IP 範囲: GATEWAY_IP
      • プロトコルとポート: [指定したプロトコルとポート] を選択して、[UDP] チェックボックスをオンにし、[ポート] に「6081」と入力します。
    2. [作成] をクリックします。

    GATEWAY_IP は、サブネット ゲートウェイの IP アドレスに置き換えます。

    Google Cloud ヘルスチェックを許可する

    1. [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。

      • 優先度: 101
      • トラフィックの方向: 上り(内向き)
      • 一致したときのアクション: 許可
      • IP 範囲: 35.191.0.0/16130.211.0.0/22
      • プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「80」と入力します。
    2. [作成] をクリックします。

    Identity-Aware Proxy を介してプロデューサー VM インスタンスへの SSH 接続を許可する

    1. [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成します。
      • 優先度: 102
      • トラフィックの方向: 上り(内向き)
      • 一致したときのアクション: 許可
      • IP 範囲: 35.235.240.0/20
      • プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「22」と入力します。
    2. [作成] をクリックします。
  6. ポリシーをネットワークに関連付けるには、[続行] をクリックしてから [関連付け] をクリックします。

  7. producer-network チェックボックスをオンにします。

  8. [続行] をクリックします。

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

gcloud

  1. グローバル ネットワーク ファイアウォール ポリシーを作成します。

    gcloud compute network-firewall-policies create producer-firewall-policy \
        --global
    
  2. ファイアウォール ポリシーをプロデューサー ネットワークに関連付けます。

    gcloud compute network-firewall-policies associations create \
        --name=producer-firewall-policy-assoc \
        --firewall-policy=producer-firewall-policy \
        --global-firewall-policy \
        --network=producer-network
    
  3. VPC ゲートウェイの 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/32
    
  4. Google 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 ranges
    
  5. Identity-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
    

プロデューサー ミラーリング リソースを作成する

このセクションでは、ミラーリング デプロイ グループとミラーリング デプロイを作成します。

コンソール

  1. Google Cloud コンソールで、[デプロイ グループ] ページに移動します。

    [デプロイ グループ] に移動

  2. [デプロイ グループを作成] をクリックします。

  3. [名前] に「producer-deployment-group」と入力します。

  4. [ネットワーク] で producer-network を選択します。

  5. [目的] で [NSI アウトオブバンド] を選択します。

  6. [ミラーリング デプロイ] セクションで、[ミラーリング デプロイを作成] をクリックし、次のフィールドを指定して、[作成] をクリックします。

    • 名前: producer-deployment
    • リージョン: us-west1
    • ゾーン: us-west1-b
    • 内部ロードバランサ: producer-ilb
  7. [作成] をクリックします。

gcloud

  1. ミラーリング デプロイ グループを作成します。

    gcloud network-security mirroring-deployment-groups create producer-deployment-group \
        --location=global \
        --network=projects/PROJECT_ID/global/networks/producer-network \
        --no-async
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

  2. ミラーリング デプロイを作成します。

    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 ネットワークを作成します。

コンソール

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

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

  2. [VPC ネットワークを作成] をクリックします。

  3. [名前] に「consumer-network」と入力します。

  4. [説明] に「Consumer VPC network」と入力します。

  5. [サブネット] セクションで、次の操作を行います。

    1. [サブネット作成モード] で [カスタム] を選択します。
    2. [新しいサブネット] セクションに、次の情報を入力します。
      • 名前: consumer-subnet
      • リージョン: us-west1
      • IP スタックタイプ: IPv4(シングルスタック)
      • IPv4 範囲: 10.11.0.0/16
    3. [完了] をクリックします。
  6. [作成] をクリックします。

gcloud

  1. コンシューマー VPC ネットワークを作成します。

    gcloud compute networks create consumer-network \
        --subnet-mode=custom \
        --description="Consumer VPC network"
    
  2. 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 を作成する

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    VM インスタンスに移動

  2. [インスタンスを作成] をクリックします。

  3. [名前] を consumer-server-vm に設定します。

  4. [リージョン] を us-west1 に設定します。

  5. [ゾーン] を us-west1-b に設定します。

  6. [マシンタイプ] を e2-micro に設定します。

  7. [ネットワーキング] をクリックし、[ネットワーク インターフェース] セクションで [ネットワーク インターフェースを追加] をクリックして、次のように設定します。

    • ネットワーク: consumer-network
    • サブネット: consumer-subnet
    • 外部 IPv4 アドレス: なし
  8. [詳細] をクリックし、[起動スクリプト] に次のスクリプトを入力します。

    echo success > /tmp/connection_test && nohup python3 -u -m http.server --directory /tmp 8000 &
    

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

クライアント VM を作成する

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    VM インスタンスに移動

  2. [インスタンスを作成] をクリックします。

  3. [名前] を consumer-client-vm に設定します。

  4. [リージョン] を us-west1 に設定します。

  5. [ゾーン] を us-west1-b に設定します。

  6. [マシンタイプ] を e2-micro に設定します。

  7. [ネットワーキング] をクリックし、[ネットワーク インターフェース] セクションで [ネットワーク インターフェースを追加] をクリックして、次のように設定します。

    • ネットワーク: consumer-network
    • サブネット: consumer-subnet
    • 外部 IPv4 アドレス: なし
  8. [作成] をクリックします。

gcloud

  1. サーバー 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 &"
    
  2. クライアント 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 への上り(内向き)トラフィックを許可するファイアウォール ルールを追加します。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [ファイアウォール ポリシーを作成] をクリックします。

  3. [名前] フィールドに「consumer-firewall-policy」と入力します。

  4. [デプロイのスコープ] で [グローバル] を選択し、[続行] をクリックします。

  5. [ファイアウォール ルールを作成] をクリックし、次のフィールドを構成して、[作成] をクリックします。

    • 優先度: 101
    • トラフィックの方向: 上り(内向き)
    • 一致したときのアクション: 許可
    • ソースフィルタ > IP 範囲: 35.235.240.0/20
    • プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「22」と入力します。

    IPv4 範囲 35.235.240.0/20 には、Identity-Aware Proxy が TCP 転送に使用するすべての IP アドレスが含まれています。詳細については、IAP TCP 転送用のプロジェクトの準備をご覧ください。

  6. TCP ポート 8000 のトラフィックがサーバー VM に到達できるようにするには、[ファイアウォール ルールを作成] をクリックして、次のフィールドを構成します。

    • 優先度: 102
    • トラフィックの方向: 上り(内向き)
    • 一致したときのアクション: 許可
    • ソースフィルタ > IP 範囲: 10.11.0.0/16
    • プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「8000」と入力します。
    • [作成] をクリックします。
  7. ポリシーをネットワークに関連付けるには、[続行] をクリックしてから [関連付け] をクリックします。

  8. consumer-network チェックボックスをオンにします。

  9. [続行] をクリックします。

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

gcloud

  1. グローバル ネットワーク ファイアウォール ポリシーを作成します。

    gcloud compute network-firewall-policies create consumer-firewall-policy \
        --global
    
  2. ファイアウォール ポリシーをコンシューマー ネットワークに関連付けます。

    gcloud compute network-firewall-policies associations create \
        --name=consumer-firewall-policy-assoc \
        --firewall-policy=consumer-firewall-policy \
        --global-firewall-policy \
        --network=consumer-network
    
  3. Identity-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 range
    

    IPv4 範囲 35.235.240.0/20 には、IAP が TCP 転送に使用するすべての IP アドレスが含まれています。詳細については、IAP TCP 転送用のプロジェクトの準備をご覧ください。

  4. 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
    

コンシューマー エンドポイント グループを作成する

このセクションでは、ミラーリング エンドポイント グループとミラーリング エンドポイント グループの関連付けを作成します。

コンソール

  1. Google Cloud コンソールで、[エンドポイント グループ] ページに移動します。

    [エンドポイント グループ] に移動

  2. [エンドポイント グループを作成] をクリックします。

  3. [名前] に「consumer-endpoint-group」と入力します。

  4. [目的] で [NSI アウトオブバンド] を選択します。

  5. [デプロイ グループ] で、[プロジェクト内] を選択します。

  6. [デプロイ グループ名] に「producer-deployment-group」と入力します。

  7. [続行] をクリックします。

  8. [エンドポイント グループの関連付けを追加] をクリックします。

  9. [プロジェクト] で、現在のプロジェクトを選択します。

  10. [ネットワーク] で consumer-network を選択します。

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

gcloud

  1. ミラーリング エンドポイント グループを作成します。

    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-async
    

    PROJECT_ID は、プロジェクトの ID に置き換えます。

  2. ミラーリング エンドポイント グループの関連付けを作成します。

    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
    

セキュリティ プロファイルとセキュリティ プロファイル グループを作成する

トラフィックをミラーリングするセキュリティ プロファイル グループとカスタム セキュリティ プロファイルを作成します。

コンソール

カスタム セキュリティ プロファイルを作成する

  1. Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。

    [セキュリティ プロファイル] に移動

  2. 組織選択ツールから自分の組織を選択します。

  3. [セキュリティ プロファイル] タブで、[プロファイルを作成] をクリックします。

  4. [名前] に「consumer-security-profile」と入力します。

  5. [目的] で [NSI アウトオブバンド] を選択します。

  6. [プロジェクト] で、現在のプロジェクトを選択します。

  7. [エンドポイント グループ] で consumer-endpoint-group を選択します。

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

セキュリティ プロファイル グループを作成する

  1. Google Cloud コンソールで、[セキュリティ プロファイル グループ] ページに移動します。

    [セキュリティ プロファイル グループ] に移動

  2. 組織選択ツールから自分の組織を選択します。

  3. [セキュリティ プロファイル グループ] タブで、[プロファイル グループを作成] をクリックします。

  4. [名前] に「consumer-security-profile-group」と入力します。

  5. [目的] で [NSI アウトオブバンド] を選択します。

  6. [カスタム ミラーリング プロファイル] で、consumer-security-profile を選択します。

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

gcloud

  1. カスタム ミラーリング セキュリティ プロファイルを作成します。

    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。
  2. ミラーリング セキュリティ プロファイル グループを作成します。

    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。

トラフィックをミラーリングするファイアウォール ポリシールールを作成する

このセクションでは、トラフィックをミラーリングするミラーリング ルールを作成します。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

    [ファイアウォール ポリシー] に移動

  2. [consumer-firewall-policy] をクリックします。

  3. [ミラーリング ルール] タブをクリックします。

  4. [ミラーリング ルールを作成] をクリックし、次のフィールドを構成します。

    • 優先度: 100
    • トラフィックの方向: 上り(内向き)
    • 一致したときのアクション: ミラーリング
    • セキュリティ プロファイル グループ: consumer-security-profile-group
    • 送信元: IPv4
    • IP 範囲: 10.11.0.0/16
    • プロトコルとポート: [指定したプロトコルとポート] を選択して、[TCP] チェックボックスをオンにし、[ポート] に「8000」と指定します。
  5. [作成] をクリックします。

gcloud

  1. ファイアウォール ルールを追加して、サーバー 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/16
    

    ORG_ID は組織の ID に置き換えます。

接続をテストする

このセクションでは、コンシューマー クライアント VM インスタンスからコンシューマー サーバー VM インスタンスにネットワーク トラフィックを送信し、プロデューサー VM インスタンスのログを調べてミラーリングを確認します。

  1. 次のコマンドを実行して、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 メッセージが表示されます。これは、トラフィックがクライアントからサーバーに送信されることを示します。

  2. 次のコマンドを実行して、プロデューサー 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 アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

コンシューマー リソースを削除する

  1. ファイアウォール ポリシーとコンシューマー ネットワークの関連付けを解除し、ファイアウォール ポリシーを削除します。

    コンソール

    1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

      [ファイアウォール ポリシー] に移動

    2. consumer-firewall-policy ポリシーをクリックします。

    3. [関連付け] タブをクリックします。

    4. consumer-network 関連付けのチェックボックスをオンにします。

    5. [関連付けを削除] をクリックします。

    6. [削除] をクリックします。

    7. ページの上部にある [削除] をクリックします。

    8. もう一度 [削除] をクリックして確定します。

    gcloud

    1. 関連付けを削除します。

      gcloud compute network-firewall-policies associations delete \
          --name=consumer-firewall-policy-assoc \
          --firewall-policy=consumer-firewall-policy \
          --global-firewall-policy
      
    2. ファイアウォール ポリシーを削除します。

      gcloud compute network-firewall-policies delete consumer-firewall-policy \
          --global
      
  2. セキュリティ プロファイル グループを削除します。

    コンソール

    1. Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。

      [セキュリティ プロファイル] に移動

    2. 組織選択ツールから自分の組織を選択します。

    3. [セキュリティ プロファイル グループ] タブで、consumer-security-profile-group セキュリティ プロファイル グループを選択し、[削除] をクリックします。

    4. もう一度 [削除] をクリックして確定します。

    gcloud

    gcloud network-security security-profile-groups delete consumer-security-profile-group \
        --location=global \
        --organization=ORG_ID \
        --billing-project=PROJECT_ID \
        --quiet
    

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

    • ORG_ID: 組織 ID
    • PROJECT_ID: プロジェクト ID
  3. セキュリティ プロファイルを削除します。

    コンソール

    1. Google Cloud コンソールで、[セキュリティ プロファイル] ページに移動します。

      [セキュリティ プロファイル] に移動

    2. 組織選択ツールから自分の組織を選択します。

    3. [セキュリティ プロファイル] タブで、consumer-security-profile セキュリティ プロファイルを選択し、[削除] をクリックします。

    4. もう一度 [削除] をクリックして確定します。

    gcloud

    gcloud network-security security-profiles custom-mirroring delete consumer-security-profile \
        --location=global \
        --organization=ORG_ID \
        --billing-project=PROJECT_ID \
        --quiet
    
  4. ミラーリング エンドポイント グループの関連付けを削除します。

    コンソール

    1. Google Cloud コンソールで、[エンドポイント グループ] ページに移動します。

      [エンドポイント グループ] に移動

    2. [consumer-endpoint-group] をクリックします。

    3. consumer-network の関連付けを選択し、[削除] をクリックします。

    4. もう一度 [削除] をクリックして確定します。

    gcloud

    gcloud network-security mirroring-endpoint-group-associations delete consumer-endpoint-group-association \
        --location=global \
        --no-async
    
  5. ミラーリング エンドポイント グループを削除します。

    コンソール

    1. Google Cloud コンソールで、[エンドポイント グループ] ページに移動します。

      [エンドポイント グループ] に移動

    2. [consumer-endpoint-group] を選択し、[削除] をクリックします。

    3. もう一度 [削除] をクリックして確定します。

    gcloud

    gcloud network-security mirroring-endpoint-groups delete consumer-endpoint-group \
        --location=global \
        --no-async
    
  6. サーバー VM とクライアント VM を削除します。

    コンソール

    1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

      VM インスタンスに移動

    2. consumer-client-vmconsumer-server-vm のチェックボックスをオンにして、[削除] をクリックします。

    3. もう一度 [削除] をクリックして確定します。

    gcloud

    1. クライアント VM を削除します。

      gcloud compute instances delete consumer-client-vm \
          --zone=us-west1-b \
          --quiet
      
    2. サーバー VM を削除します。

      gcloud compute instances delete consumer-server-vm \
          --zone=us-west1-b \
          --quiet
      
  7. コンシューマー ネットワークとサブネットを削除します。

    コンソール

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

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

    2. [consumer-network] をクリックします。

    3. [サブネット] タブで、consumer-subnet のチェックボックスをオンにして、[削除] をクリックします。

    4. もう一度 [削除] をクリックして確定します。

    5. [VPC ネットワークの削除] をクリックします。

    6. テキスト フィールドに consumer-network と入力して、[削除] をクリックします。

    gcloud

    1. サブネットを削除します。

      gcloud compute networks subnets delete consumer-subnet \
          --region=us-west1 \
          --quiet
      
    2. VPC ネットワークを削除します。

      gcloud compute networks delete consumer-network \
          --quiet
      

プロデューサー リソースを削除する

  1. ファイアウォール ポリシーとプロデューサー ネットワークの関連付けを解除し、ファイアウォール ポリシーを削除します。

    コンソール

    1. Google Cloud コンソールで、[ファイアウォール ポリシー] ページに移動します。

      [ファイアウォール ポリシー] に移動

    2. producer-firewall-policy ポリシーをクリックします。

    3. [関連付け] タブをクリックします。

    4. producer-network 関連付けのチェックボックスをオンにします。

    5. [関連付けを削除] をクリックします。

    6. [削除] をクリックします。

    7. [削除] をクリックします。

    8. もう一度 [削除] をクリックして確定します。

    gcloud

    1. 関連付けを削除します。

      gcloud compute network-firewall-policies associations delete \
          --name=producer-firewall-policy-assoc \
          --firewall-policy=producer-firewall-policy \
          --global-firewall-policy
      
    2. ファイアウォール ポリシーを削除します。

      gcloud compute network-firewall-policies delete producer-firewall-policy \
          --global
      
  2. ミラーリング デプロイとミラーリング デプロイ グループを削除します。

    コンソール

    1. Google Cloud コンソールで、[デプロイ グループ] ページに移動します。

      [デプロイ グループ] に移動

    2. [producer-deployment-group] をクリックします。

    3. producer-deployment を削除します。

      1. producer-deployment のチェックボックスをオンにして、[削除] をクリックします。
      2. もう一度 [削除] をクリックして確定します。
    4. [削除] ボタンをクリックします。

    5. もう一度 [削除] をクリックして確定します。

    gcloud

    1. ミラーリング デプロイを削除します。

      gcloud network-security mirroring-deployments delete producer-deployment \
          --location=us-west1-b \
          --no-async
      
    2. ミラーリング デプロイ グループを削除します。

      gcloud network-security mirroring-deployment-groups delete producer-deployment-group \
          --location=global \
          --no-async
      
  3. ロードバランサ リソースを削除します。

    コンソール

    1. Google Cloud コンソールで、[ロード バランシング] ページに移動します。

      [ロード バランシング] に移動

    2. producer-ilb チェックボックスをオンにします。

    3. ページ上部にある [削除] ボタンをクリックします。

    4. producer-health-check チェックボックスをオンにして、[ロードバランサと選択したリソースを削除] をクリックします。

    gcloud

    1. 転送ルールを削除します。

      gcloud compute forwarding-rules delete producer-ilb-fr \
          --region=us-west1 \
          --quiet
      
    2. バックエンド サービスを削除します。

      gcloud compute backend-services delete producer-backend-service \
          --region=us-west1 \
          --quiet
      
    3. ヘルスチェックを削除します。

      gcloud compute health-checks delete producer-health-check \
          --region=us-west1 \
          --quiet
      
  4. プロデューサー VM インスタンスを削除します。

    コンソール

    1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

      [VM インスタンス] に移動

    2. producer-instance のチェックボックスをオンにして、[削除] をクリックします。

    3. もう一度 [削除] をクリックして確定します。

    gcloud

    gcloud compute instances delete producer-instance \
        --zone=us-west1-b \
        --quiet
    
  5. インスタンス グループを削除します。

    コンソール

    1. Google Cloud コンソールで、[インスタンス グループ] ページに移動します。

      [インスタンス グループ] に移動

    2. producer-instance-group チェックボックスをオンにします。

    3. [削除] をクリックします。

    4. 確認ウィンドウで [削除] をクリックします。

    gcloud

    gcloud compute instance-groups unmanaged delete producer-instance-group \
        --zone=us-west1-b \
        --quiet
    
  6. プロデューサー ネットワークとサブネットを削除します。

    コンソール

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

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

    2. [producer-network] をクリックします。

    3. [サブネット] タブで、producer-subnet のチェックボックスをオンにして、[削除] をクリックします。

    4. もう一度 [削除] をクリックして確定します。

    5. [VPC ネットワークの削除] をクリックします。

    6. テキスト フィールドに producer-network と入力して、[削除] をクリックします。

    gcloud

    1. サブネットを削除します。

      gcloud compute networks subnets delete producer-subnet \
          --region=us-west1 \
          --quiet
      
    2. ネットワークを削除します。

      gcloud compute networks delete producer-network \
          --quiet
      

次のステップ