パケット ミラーリングの使用

パケット ミラーリングを使用して、特定の VM インスタンスに出入りするトラフィックをミラーリングします。収集したトラフィックを使用して、セキュリティの脅威の検出とアプリケーション パフォーマンスのモニタリングができます。パケット ミラーリングの詳細については、パケット ミラーリングの概要をご覧ください。

次のセクションでは、パケット ミラーリング ポリシーの作成と管理方法について説明します。

始める前に

パケット ミラーリング ポリシーを作成するには、適切な権限が必要です。ミラーリングするインスタンスと同じリージョン内に、コレクタの宛先である内部ロードバランサも作成する必要があります。

権限

パケット ミラーリング ポリシーを作成および管理するために、Google Cloud にはパケット ミラーリングに関連する役割が 2 つあります。

  • compute.packetMirroringUser は、パケット ミラーリング ポリシーを作成、更新、削除するユーザー権限を付与します。パケット ミラーリングを使用するには、パケット ミラーリング ポリシーを作成するプロジェクトで、この役割が必要です。

  • compute.packetMirroringAdmin は、特定のリソースをミラーリングするユーザー権限を付与します。パケット ミラーリング ポリシーを作成する権限が付与されていても、関連ソースをミラーリングするにはこの権限が必要です。共有 VPC シナリオなど、ポリシーのオーナーに他の権限がないプロジェクトの場合は、この役割を使用します。

Cloud IAM 役割の使用についての詳細は、Cloud IAM のドキュメントのリソースへのアクセス権の付与、変更、取り消しをご覧ください。

内部ロードバランサ

パケット ミラーリング用に構成された内部 TCP/UDP ロードバランサが、ミラーリングするインスタンスと同じリージョンに配置されている必要があります。ミラーリング対象のソースからのすべてのトラフィックは、ロードバランサの背後にあるコレクタ インスタンスに送信されます。

パケット ミラーリング用に内部ロードバランサを構成するには、パケット ミラーリング コレクタとして転送ルールを構成する必要があります。ロードバランサに送信されるミラーリングされるトラフィック以外はドロップされます。また、パケット ミラーリング ポリシーがコレクタ インスタンスに適用される場合、パケット ミラーリングはコレクタ インスタンスを無視し、トラフィックをミラーリングしません。

内部ロードバランサの構成の詳細については、ロードバランサ コンポーネントの構成をご覧ください。

ファイアウォール ルール

ミラーリングされるトラフィックは、ソース インスタンスから、内部ロードバランサの一部である宛先インスタンスへの移動が許可される必要があります。このトラフィックを許可する既存のルールが、すでに存在していることも考えられます。

  • ミラーリングされるインスタンスに、内部ロードバランサの転送ルールにトラフィックを送信できるようにする下り(外向き)ルールが設定されていることを確認します。
  • ミラーリングされるインスタンスまたはミラーリングされるインスタンスの IP アドレス範囲からトラフィックを受信できるように、ロードバランサのインスタンス グループのコレクタ インスタンスに上り(内向き)ルールが設定されていることを確認します。たとえば、ソース範囲 0.0.0.0/0 を指定してミラーリングされるインスタンスからのすべての受信トラフィックを収集できます。インターネット トラフィックがコレクタ インスタンスに到達しないようにするには、内部 IP アドレスのみを割り当てます。

このトラフィックを許可する既存のルールがない場合は、ファイアウォール ルールの使用を参照して作成してください。

パケット ミラーリング ポリシーの作成

パケット ミラーリング ポリシーを作成して、特定のインスタンスに出入りするトラフィックをミラーリングします。

Console

  1. Google Cloud Console の [パケット ミラーリング] ページに移動します。
    [パケット ミラーリング] ページに移動
  2. [作成] をクリックします。
  3. ポリシーに関する次の情報を入力して、[続行] をクリックします。

    1. ポリシーの名前を入力します。
    2. ミラーリング対象のソースとコレクタの宛先を含むリージョンを選択します。パケット ミラーリング ポリシーはソースと宛先と同じリージョンに存在する必要があります。
    3. ポリシーの優先度を入力します。Google Cloud は優先度の値を使用して、複数のポリシーを適用する際に使用するポリシーを決定します。
    4. ポリシーの作成時に [有効にする] を選択してポリシーを有効にします。
  4. ミラーリング対象のソースとコレクタの宛先が配置されている VPC ネットワークを選択し、[続行] をクリックします。

    ソースと宛先の VPC ネットワークは、同じでも異なっていてもかまいません。同じ VPC ネットワーク内にある場合は、[Mirrored sources and destination are in the same VPC network] を選択して、ネットワークを選択します。異なるネットワークにある場合は、[Mirrored source and collector destination are in separete, peered VPC networks] を選択し、ミラーリング対象のソース ネットワーク、コレクタの宛先ネットワークの順に選択します。

  5. ミラーリング対象のソースを選択し、[続行] をクリックします。1 つ以上のソースを選択できます。Google Cloud は、指定したソースの少なくとも 1 つに一致するインスタンスをミラーリングします。

    • サブネット - 1 つ以上のサブネットを選択します。Google Cloud は、選択したサブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
    • ネットワーク タグ - 1 つ以上のネットワーク タグを指定します。 Google Cloud は、指定されたタグを少なくとも 1 つ持つインスタンスをミラーリングします。
    • インスタンス名 - ミラーリングする特定のインスタンスを選択します。
  6. パケット ミラーリング用に構成された内部ロードバランサを選択し、[続行] をクリックします。Google Cloud が内部ロードバランサの背後にあるインスタンスにミラーリングされるトラフィックを送信します。

  7. ミラーリングするトラフィックを制限する場合は、[フィルタ済みトラフィックをミラーリングする] を選択します。デフォルトでは、Google Cloud はすべてのトラフィックをミラーリングします。

    IP アドレスの範囲、プロトコル、またはその両方に基づいてトラフィックをミラーリングすることもできます。

  8. [送信] をクリックして、パケット ミラーリング ポリシーを作成します。

gcloud

パケット ミラーリング ポリシーを作成し、ミラーリングする 1 つ以上のソースを指定します。Google Cloud は、指定したソースの少なくとも 1 つに一致するインスタンスをミラーリングします。

    gcloud beta compute packet-mirrorings create policy-name \
      --region=region \
      --network=network-name \
      --collector-ilb=forwarding-rule-name \
      [--mirrored-subnets=subnet,[subnet,...]] \
      [--mirrored-tags=tag,[tag,...]] \
      [--mirrored-instances=instance,[instance,...]] \
      [--filter-cidr-ranges=address-range,[address-range,...]] \
      [--filter-protocols=protocol,[protocol,...]] \
      [--priority=priority-number]
    

プレースホルダを有効な値に置き換えます。

  • [policy-name] は、パケット ミラーリング ポリシーの名前です。
  • [region] は、ミラーリング対象のソースとコレクタの宛先があるリージョンです。
  • [network-name] は、ミラーリング対象のソースがあるネットワークです。
  • [forwarding-rule-name] は、ミラーリング コレクタとして構成される転送ルールの名前です。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部ロードバランサに送信します。
  • [subnet] はミラーリングするサブネットの名前です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
  • [tag] はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。
  • [instance] はミラーリングするインスタンスの完全修飾 ID です。
  • [address-range] は、ミラーリングする IP アドレスの範囲です(CIDR 範囲)。
  • [protocol] は、ミラーリングする IP アドレス プロトコルです(TCP、UDP、または ICMP)。
  • [priority-number] は 0 から 65535 までの数値です。Google Cloud は優先度の値を使用して、複数のポリシーを適用する際に使用するポリシーを決定します。

各フラグの詳細と説明については、SDK リファレンス ドキュメントをご覧ください。

API

パケット ミラーリング ポリシーを作成し、ミラーリングする 1 つ以上のソースを指定します。Google Cloud は、指定したソースの少なくとも 1 つに一致するインスタンスをミラーリングします。

    POST https://compute.googleapis.com/compute/beta/projects/project-id/regions/region/packetMirrorings
    {
      "name": "policy-name",
      "network": {
        "url": "network-url"
      },
      "priority": priority,
      "mirroredResources": {
        "subnetworks": [
          {
            "url": "subnet-url"
          }
        ],
        "tags": [
          "tag"
        ],
        "instances": [
          {
            "url": "instance"
          }
        ]
      },
      "collectorIlb": {
        "url": "forwarding-rule-url"
      },
      "filter": {
        "IPProtocols": [
          "protocol"
        ],
        "cidrRanges": [
          "address-range"
        ]
      }
    }
    

プレースホルダを有効な値に置き換えます。

  • [project-id] は、ポリシーが作成されるプロジェクトの ID です。
  • [policy-name] は、パケット ミラーリング ポリシーの名前です。
  • [region] は、ミラーリング対象のソースとコレクタの宛先があるリージョンです。
  • [network-url] は、ミラーリング対象のソースがあるネットワークの URL です。
  • [forwarding-rule-url] は、ミラーリング コレクタとして構成される転送ルールの URL です。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部ロードバランサに送信します。
  • [subnet-url] はミラーリングするサブネットの URL です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
  • [tag] はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。
  • [instance] はミラーリングするインスタンスの完全修飾 ID です。
  • [address-range] は、ミラーリングする IP アドレスの範囲です(CIDR 範囲)。
  • [protocol] は、ミラーリングする IP アドレス プロトコルです(TCP、UDP、または ICMP)。
  • [priority-number] は 0 から 65535 までの数値です。Google Cloud は優先度の値を使用して、複数のポリシーを適用する際に使用するポリシーを決定します。

各フィールドの詳細と説明については、packetmirrorings.insert メソッドをご覧ください。

パケット ミラーリング ポリシーが有効かどうかを確認するには、パケット ミラーリング ポリシーのモニタリングをご覧ください。

パケット ミラーリング ポリシーの変更

既存のポリシーを更新して、優先度、ミラーリング対象のソース、コレクタの宛先を変更します。

Console

  1. Google Cloud Console の [パケット ミラーリング] ページに移動します。
    [パケット ミラーリング] ページに移動
  2. パケット ミラーリング ポリシーのリストで、編集するポリシーをクリックします。
  3. ポリシーの詳細ページで、[編集] をクリックします。
  4. 更新するフィールドを編集します。コンソールでポリシーを作成したときと同じフローになります。各フィールドの詳細については、パケット ミラーリング ポリシーの作成をご覧ください。

gcloud

既存のパケット ミラーリング ポリシーを更新します。

    gcloud beta compute packet-mirrorings update policy-name \
      --region=region \
      [--collector-ilb=forwarding-rule-name] \
      [--mirrored-subnets=subnet,[subnet,...]] \
      [--mirrored-tags=tag,[tag,...]] \
      [--mirrored-instances=instance,[instance,...]] \
      [--filter-cidr-ranges=address-range,[address-range,...]] \
      [--filter-protocols=protocol,[protocol,...]]
    

プレースホルダを有効な値に置き換えます。

  • [policy-name] は、変更するパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。
  • [forwarding-rule-name] は、コレクタとして構成される転送ルールの名前です。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部ロードバランサに送信します。
  • [subnet] はミラーリングするサブネットの名前です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
  • [tag] はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。
  • [instance] はミラーリングするインスタンスの完全修飾 ID です。
  • [address-range] は、ミラーリングする IP アドレスの範囲です(CIDR 範囲)。
  • [protocol] は、ミラーリングする IP アドレス プロトコルです(TCP、UDP、または ICMP)。

各フラグの詳細と説明については、SDK リファレンス ドキュメントをご覧ください。

API

既存のパケット ミラーリング ポリシーを更新します。

    PATCH https://compute.googleapis.com/compute/beta/projects/project-id/regions/region/packetMirrorings/policy-name
    {
      "priority": priority,
      "mirroredResources": {
        "subnetworks": [
          {
            "url": "subnet-url"
          }
        ],
        "tags": [
          "tag"
        ],
        "instances": [
          {
            "url": "instance"
          }
        ]
      },
      "collectorIlb": {
        "url": "forwarding-rule-url"
      },
      "filter": {
        "IPProtocols": [
          "protocol"
        ],
        "cidrRanges": [
          "address-range"
        ]
      }
    }
    

プレースホルダを有効な値に置き換えます。

  • [project-id] は、ポリシーが存在するプロジェクトの ID です。
  • [policy-name] は、変更するパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。
  • [forwarding-rule-url] は、ミラーリング コレクタとして構成される転送ルールの URL です。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部ロードバランサに送信します。
  • [subnet-url] はミラーリングするサブネットの URL です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
  • [tag] はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。
  • [instance] はミラーリングするインスタンスの完全修飾 ID です。
  • [address-range] は、ミラーリングする IP アドレスの範囲です(CIDR 範囲)。
  • [protocol] は、ミラーリングする IP アドレス プロトコルです(TCP、UDP、または ICMP)。
  • [priority-number] は 0 から 65535 までの数値です。Google Cloud は優先度の値を使用して、複数のポリシーを適用する際に使用するポリシーを決定します。

各フィールドの詳細と説明については、packetmirrorings.patch メソッドをご覧ください。

パケット ミラーリング ポリシーの一覧表示

パケット ミラーリング ポリシーを一覧表示して、既存のポリシーを表示します。

Console

  1. Google Cloud Console の [パケット ミラーリング] ページに移動します。
    [パケット ミラーリング] ページに移動

    Cloud Console には、プロジェクト内のすべてのポリシーが一覧表示されます。

gcloud

プロジェクト内または、特定のリージョンの既存のパケット ミラーリング ポリシーを一覧表示します。

    gcloud beta compute packet-mirrorings list \
      [--filter="region:(region...)"]
    

[region] を、一覧表示するポリシーが含まれるリージョンの名前に置き換えます。

各フラグの詳細と説明については、SDK リファレンス ドキュメントをご覧ください。

API

プロジェクト内の既存のパケット ミラーリング ポリシーを一覧表示します。

    GET https://compute.googleapis.com/compute/beta/projects/project-id/aggregated/packetMirrorings
    

特定のリージョンの既存のパケット ミラーリング ポリシーを一覧表示します。

    GET https://compute.googleapis.com/compute/beta/projects/project-id/regions/region/packetMirrorings
    

プレースホルダを有効な値に置き換えます。

  • [project-id] は、一覧表示するポリシーを含むプロジェクトの ID です。
  • [region] は、一覧表示するポリシーを含むリージョンです。

各フィールドの詳細と説明については、packetmirrorings.aggregatedList または packetmirrorings.list メソッドをご覧ください。

パケット ミラーリング ポリシーの情報の取得

既存のパケット ミラーリング ポリシーの詳細を表示して、優先度やフィルタなどを確認します。

Console

  1. Google Cloud Console の [パケット ミラーリング] ページに移動します。
    [パケット ミラーリング] ページに移動
  2. パケット ミラーリング ポリシーのリストで、表示するパケット ミラーリング ポリシーを選択します。

    Cloud Console に選択したポリシーの詳細が表示されます。

gcloud

詳細を表示する既存のパケット ミラーリング ポリシーの情報を取得します。

    gcloud beta compute packet-mirrorings describe policy-name \
      --region=region \
    

プレースホルダを有効な値に置き換えます。

  • [policy-name] は、情報を取得するパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。

各フラグの詳細と説明については、SDK リファレンス ドキュメントをご覧ください。

API

詳細を表示する既存のパケット ミラーリング ポリシーの情報を取得します。

    GET https://compute.googleapis.com/compute/beta/projects/project-id/regions/region/packetMirrorings/policy-name
    

プレースホルダを有効な値に置き換えます。

  • [project-id] は、ポリシーが存在するプロジェクトの ID です。
  • [policy-name] は、情報を取得するパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。

各フィールドの詳細と説明については、packetmirrorings.get メソッドをご覧ください。

パケット ミラーリング ポリシーの無効化または有効化

パケット ミラーリング ポリシーを無効または有効にして、ミラーリングされるトラフィックの収集を停止または開始します。

Console

  1. Google Cloud Console の [パケット ミラーリング] ページに移動します。
    [パケット ミラーリング] ページに移動
  2. パケット ミラーリング ポリシーのリストから、無効または有効にするポリシーを選択します。
  3. [無効にする] または [有効にする] をクリックします。
  4. [無効にする] または [有効にする] をクリックして確定します。

gcloud

既存のパケット ミラーリング ポリシーを無効にします。

    gcloud beta compute packet-mirrorings update policy-name \
      --region=region \
      --no-enable
    

既存のパケット ミラーリング ポリシーを有効にします。

    gcloud beta compute packet-mirrorings update policy-name \
      --region=region \
      --enable
    

プレースホルダを有効な値に置き換えます。

  • [policy-name] は、無効または有効にするパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。

各フラグの詳細と説明については、SDK リファレンス ドキュメントをご覧ください。

API

既存のパケット ミラーリング ポリシーを無効または有効にします。

    PATCH https://compute.googleapis.com/compute/beta/projects/project-id/regions/region/packetMirrorings/policy-name
    {
      "enable": "FALSE|TRUE"
    }
    

プレースホルダを有効な値に置き換えます。

  • [project-id] は、ポリシーが存在するプロジェクトの ID です。
  • [policy-name] は、無効にするパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。

各フィールドの詳細と説明については、packetmirrorings.patch メソッドをご覧ください。

パケット ミラーリング ポリシーの削除

パケット ミラーリング ポリシーを削除してプロジェクトから削除します。ポリシーを削除すると、Google Cloud はポリシーに関連するすべてのトラフィックのミラーリングを停止します。

Console

  1. Google Cloud Console の [パケット ミラーリング] ページに移動します。
    [パケット ミラーリング] ページに移動
  2. パケット ミラーリング ポリシーのリストで、無効にするパケット ミラーリング ポリシーを選択します。
  3. [削除] をクリックします。
  4. [削除] をクリックして確定します。

gcloud

既存のパケット ミラーリング ポリシーを削除します。

    gcloud beta compute packet-mirrorings delete policy-name \
      --region=region \
    

プレースホルダを有効な値に置き換えます。

  • [policy-name] は、削除するパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。

各フラグの詳細と説明については、SDK リファレンス ドキュメントをご覧ください。

API

既存のパケット ミラーリング ポリシーを削除します。

    DELETE https://compute.googleapis.com/compute/beta/projects/project-id/regions/region/packetMirrorings/policy-name
    

プレースホルダを有効な値に置き換えます。

  • [project-id] は、ポリシーが存在するプロジェクトの ID です。
  • [policy-name] は、削除するパケット ミラーリング ポリシーの名前です。
  • [region] はポリシーが存在するリージョンです。

各フィールドの詳細と説明については、packetmirrorings.delete メソッドをご覧ください。

トラブルシューティング

パケット ミラーリング ポリシーがミラーリングされるはずのトラフィックを収集していない場合は、次の構成を確認します。

  • ミラーリングされるインスタンスからコレクタ インスタンスへのトラフィックを許可するファイアウォール ルールがあることを確認します。

  • ミラーリング対象のソースがミラーリングするインスタンスを含むまたは、除外しているかを確認します。たとえば、ミラーリング対象のソースとしてサブネットを指定すると、サブネット内の既存のインスタンスと将来のインスタンスはすべてミラーリングされます。タグを指定すると、一致するタグを持つインスタンスのみがミラーリングされます。

  • パケット ミラーリング フィルタが広すぎないか、または狭すぎないか確認します。意図せずに、フィルタが特定のトラフィックを含む、または除外するよう構成している可能性があります。