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

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

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

始める前に

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

権限

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

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

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

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

内部ロードバランサ

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

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

コレクタ インスタンスには、インスタンス テンプレートとマネージド インスタンス グループを使用することをおすすめします。マネージド インスタンス グループは、トラフィックの需要と可用性の要件を満たす自動スケーリング機能と自動修復機能を提供します。マネージド インスタンス グループを使用する場合は、ブートディスクを永続データとして使用しないでください。データを別の一元的な場所にバックアップして保持します。

インスタンス グループと内部ロードバランサの詳細については、インスタンス テンプレートを作成するマネージド インスタンス グループを作成するロードバランサのコンポーネントを構成するのドキュメントをご覧ください。

ファイアウォール ルール

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

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

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

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

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

Console

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

    1. ポリシーの名前を入力します。
    2. ミラーリング対象のソースとコレクタの宛先を含むリージョンを選択します。パケット ミラーリング ポリシーはソースと宛先と同じリージョンに存在する必要があります。
    3. [優先度] フィールドは無視します。現時点では調整できません。
    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 が内部ロードバランサの背後にあるインスタンスにミラーリングされるトラフィックを送信します。

    共有 VPC の場合、コレクタの宛先とミラーリングされたソースが同じ共有 VPC ネットワークにある場合は、コレクタの宛先があるプロジェクトを選択し、ロードバランサを選択します。

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

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

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

gcloud

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

gcloud 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,...]]

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

  • 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)です。

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

API

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

POST https://compute.googleapis.com/compute/v1/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)です。

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

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

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

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

Console

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

gcloud

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

gcloud 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/v1/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)です。

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

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

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

Console

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

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

gcloud

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

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

region は、一覧表示するポリシーが存在するリージョンの名前に置き換えます。

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

API

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

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

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

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

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

  • project-id は、一覧表示するポリシーが存在するプロジェクトの ID です。
  • region は、一覧表示するポリシーが存在するリージョンです。

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

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

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

Console

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

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

gcloud

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

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

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

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

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

API

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

GET https://compute.googleapis.com/compute/v1/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 compute packet-mirrorings update policy-name \
  --region=region \
  --no-enable

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

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

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

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

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

API

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

PATCH https://compute.googleapis.com/compute/v1/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 compute packet-mirrorings delete policy-name \
  --region=region \

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

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

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

API

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

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

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

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

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

トラブルシューティング

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

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

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

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