パケット ミラーリングの使用
パケット ミラーリングを使用して、特定の VM インスタンスに出入りするトラフィックをミラーリングします。収集したトラフィックを使用して、セキュリティの脅威の検出とアプリケーション パフォーマンスのモニタリングに役立てることができます。パケット ミラーリングの詳細については、パケット ミラーリングの概要をご覧ください。
ミラーリングされたトラフィックは、適切なソフトウェアをインストールした VM に送信されます。ソフトウェアを提供するベンダーのリストについては、Packet Mirroring パートナー プロバイダをご覧ください。
次のセクションでは、パケット ミラーリング ポリシーの作成と管理方法について説明します。
制限事項
Private Service Connect サービス アタッチメントを含む VPC ネットワークで、パケット ミラーリングを有効にしないでください。両方の構成が存在すると、トラフィックがドロップされる可能性があります。
始める前に
パケット ミラーリング ポリシーを作成するには、適切な権限が必要です。ミラーリングするインスタンスと同じリージョン内に、コレクタの宛先である内部 TCP / UDP ロードバランサも作成する必要があります。
権限
パケット ミラーリング ポリシーを作成および管理するために、Google Cloud にはパケット ミラーリングに関連するロールが 2 つあります。
compute.packetMirroringUser
は、パケット ミラーリング ポリシーを作成、更新、削除するユーザー権限を付与します。パケット ミラーリングを使用するには、パケット ミラーリング ポリシーを作成するプロジェクトで、このロールが必要です。compute.packetMirroringAdmin
は、特定のリソースをミラーリングするユーザー権限を付与します。パケット ミラーリング ポリシーを作成する権限が付与されていても、関連ソースをミラーリングするにはこの権限が必要です。共有 VPC シナリオなど、ポリシーのオーナーに他の権限がないプロジェクトの場合は、このロールを使用します。
IAM ロールの使用の詳細については、IAM ドキュメントのリソースへのアクセス権の付与、変更、取り消しをご覧ください。
内部ロードバランサ
パケット ミラーリング用に構成された内部 TCP / UDP ロードバランサが、ミラーリングするインスタンスと同じリージョンに配置されている必要があります。ミラーリング対象のソースからのすべてのトラフィックは、ロードバランサの背後にあるコレクタ インスタンスに送信されます。
パケット ミラーリング用に内部 TCP / UDP ロードバランサを構成するには、パケット ミラーリング コレクタとして転送ルールを構成する必要があります。ロードバランサに送信される、ミラーリングされないトラフィックはドロップされます。また、パケット ミラーリング ポリシーがコレクタ インスタンスに適用される場合、パケット ミラーリングはコレクタ インスタンスを無視し、トラフィックをミラーリングしません。
コレクタ インスタンスには、インスタンス テンプレートとマネージド インスタンス グループを使用することをおすすめします。マネージド インスタンス グループは、トラフィックの需要と可用性の要件を満たす自動スケーリング機能と自動修復機能を提供します。マネージド インスタンス グループを使用する場合は、ブートディスクを永続データとして使用しないでください。データを別の一元的な場所にバックアップして保持します。
インスタンス グループと内部 TCP / UDP ロードバランサの詳細については、インスタンス テンプレートを作成する、マネージド インスタンス グループを作成する、ロードバランサのコンポーネントを構成するの各ドキュメントをご覧ください。
内部 TCP / UDP ロードバランサの転送ルールを作成する場合は、--is-mirroring-collector
フラグを使用します。
gcloud compute forwarding-rules create COLLECTOR_RULE \ --region=REGION \ --load-balancing-scheme=internal \ --backend-service=COLLECTOR_BACKEND_SERVICE \ --ports=all \ --is-mirroring-collector \ --network=NETWORK
次のように置き換えます。
COLLECTOR_RULE
: 転送ルールの名前。REGION
: 転送ルールのリージョン。COLLECTOR_BACKEND_SERVICE
: このロードバランサのバックエンド サービス。NETWORK
: 転送ルールのネットワーク。
ファイアウォール ルール
ミラーリングされるトラフィックには、ソース インスタンスから内部 TCP / UDP ロードバランサの一部である宛先インスタンスへの移動を許可する必要があります。このトラフィックを許可する既存のルールが、すでに存在していることも考えられます。
- ミラーリングされるインスタンスに、内部 TCP / UDP ロードバランサの転送ルールにトラフィックを送信できるようにする下り(外向き)ルールが設定されていることを確認します。
- ミラーリングされるインスタンスまたはミラーリングされるインスタンスの IP アドレス範囲からトラフィックを受信できるように、ロードバランサのインスタンス グループのコレクタ インスタンスに上り(内向き)ルールが設定されていることを確認します。たとえば、ソース範囲
0.0.0.0/0
を指定してミラーリングされるインスタンスからのすべての受信トラフィックを収集できます。インターネット トラフィックがコレクタ インスタンスに到達しないようにするには、内部 IP アドレスのみを割り当てます。
このトラフィックを許可する既存のルールがない場合は、ファイアウォール ルールの使用を参照して作成してください。
パケット ミラーリング ポリシーの作成
パケット ミラーリング ポリシーを作成して、特定のインスタンスに出入りするトラフィックをミラーリングします。
Console
- Google Cloud Console の [パケット ミラーリング] ページに移動します。
[パケット ミラーリング] ページに移動 - [ポリシーを作成] をクリックします。
ポリシーに関する次の情報を入力して、[続行] をクリックします。
- ポリシーの名前を入力します。
- ミラーリング対象のソースとコレクタの宛先を含むリージョンを選択します。パケット ミラーリング ポリシーはソースと宛先と同じリージョンに存在する必要があります。
- [優先度] フィールドは無視します。現時点では調整できません。
- ポリシーの作成時に [有効にする] を選択してポリシーを有効にします。
ミラーリング対象のソースとコレクタの宛先が配置されている VPC ネットワークを選択し、[続行] をクリックします。
ソースと宛先の VPC ネットワークは、同じでも異なっていてもかまいません。同じ VPC ネットワーク内にある場合は、[Mirrored sources and destination are in the same VPC network] を選択して、ネットワークを選択します。異なるネットワークにある場合は、[Mirrored source and collector destination are in separete, peered VPC networks] を選択し、ミラーリング対象のソース ネットワーク、コレクタの宛先ネットワークの順に選択します。
ミラーリング対象のソースを選択し、[続行] をクリックします。1 つ以上のソースを選択できます。Google Cloud は、指定したソースの少なくとも 1 つに一致するインスタンスをミラーリングします。
- サブネット - 1 つ以上のサブネットワークを選択します。Google Cloud は、選択したサブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。
- ネットワーク タグ - 1 つ以上のネットワーク タグを指定します。Google Cloud は、指定されたタグを少なくとも 1 つ持つインスタンスをミラーリングします。
- インスタンス名 - ミラーリングする特定のインスタンスを選択します。
パケット ミラーリング用に構成された内部 TCP / UDP ロードバランサを選択し、[続行] をクリックします。Google Cloud が、内部 TCP / UDP ロードバランサの背後にあるインスタンスに、ミラーリングされるトラフィックを送信します。
共有 VPC の場合、コレクタの宛先とミラーリングされたソースが同じ共有 VPC ネットワークにある場合は、コレクタの宛先があるプロジェクトを選択し、ロードバランサを選択します。
ミラーリングするトラフィックを制限する場合は、[フィルタ済みトラフィックをミラーリングする] を選択します。デフォルトでは、Google Cloud はすべてのトラフィックをミラーリングします。
IP アドレス範囲、プロトコル、トラフィック方向、またはそれらの組み合わせに基づいてトラフィックをミラーリングできます。
[送信] をクリックして、パケット ミラーリング ポリシーを作成します。
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,...]] \ [--filter-direction=DIRECTION]
プレースホルダを有効な値に置き換えます。
POLICY_NAME
は、パケット ミラーリング ポリシーの名前です。REGION
は、ミラーリング対象のソースとコレクタの宛先があるリージョンです。NETWORK_NAME
は、ミラーリング対象のソースがあるネットワークです。FORWARDING_RULE_NAME
は、ミラーリング コレクタとして構成された転送ルールの名前です。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部 TCP / UDP ロードバランサに送信します。SUBNET
は、ミラーリングするサブネットの名前です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。TAG
はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。INSTANCE
は、ミラーリングするインスタンスの完全修飾 ID です。ADDRESS_RANGE
は、ミラーリングする IP アドレスの範囲(CIDR 範囲)です。PROTOCOL
は、ミラーリングする IP プロトコルです。有効な値は、tcp
、udp
、icmp
、esp
、ah
、ipip
、sctp
、または IANA プロトコル番号です。プロトコルはカンマ区切りリストで指定できます。--filter-protocols
を省略すると、すべてのプロトコルがミラーリングされます。DIRECTION
は、ミラーリングされるトラフィックの方向です(方向は VM を基準とした方向です)。デフォルトでは、BOTH
に設定されています。すなわち、上り(内向き)と下り(外向き)の両方のトラフィックがミラーリングされます。キャプチャするパケットを制限するには、上り(内向き)パケットのみをキャプチャするINGRESS
か、下り(外向き)パケットのみをキャプチャするEGRESS
を指定します。
各フラグの詳細と説明については、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 は、ミラーリングされるすべてのトラフィックを、関連付けられた内部 TCP / UDP ロードバランサに送信します。SUBNET_URL
は、ミラーリングするサブネットの URL です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。TAG
はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。INSTANCE
は、ミラーリングするインスタンスの完全修飾 ID です。ADDRESS_RANGE
は、ミラーリングする IP アドレスの範囲(CIDR 範囲)です。PROTOCOL
は、ミラーリングする IP プロトコルです。有効な値は、tcp
、udp
、icmp
、esp
、ah
、ipip
、sctp
、または IANA プロトコル番号です。プロトコルはカンマ区切りリストで指定できます。filter.IPProtocols
を省略すると、すべてのプロトコルがミラーリングされます。
各フィールドの詳細と説明については、packetmirrorings.insert
メソッドをご覧ください。
Terraform
Terraform リソースを使用してパケット ミラーリング ポリシーを作成できます。
パケット ミラーリング ポリシーが有効かどうかを確認するには、パケット ミラーリング ポリシーのモニタリングをご覧ください。
パケット ミラーリング ポリシーの変更
既存のポリシーを更新して、ミラーリング対象のソースやコレクタの宛先を変更します。
Console
- Google Cloud Console の [パケット ミラーリング] ページに移動します。
[パケット ミラーリング] ページに移動 - パケット ミラーリング ポリシーのリストで、編集するポリシーをクリックします。
- ポリシーの詳細ページで、[編集] をクリックします。
- 更新するフィールドを編集します。コンソールでポリシーを作成したときと同じフローになります。各フィールドの詳細については、パケット ミラーリング ポリシーの作成をご覧ください。
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 は、ミラーリングされるすべてのトラフィックを、関連付けられた内部 TCP / UDP ロードバランサに送信します。SUBNET
は、ミラーリングするサブネットの名前です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。TAG
はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。INSTANCE
は、ミラーリングするインスタンスの完全修飾 ID です。ADDRESS_RANGE
は、ミラーリングする IP アドレスの範囲(CIDR 範囲)です。PROTOCOL
は、ミラーリングする IP プロトコルです。有効な値は、tcp
、udp
、icmp
、esp
、ah
、ipip
、sctp
、または IANA プロトコル番号です。プロトコルはカンマ区切りリストで指定できます。--filter-protocols
を省略すると、すべてのプロトコルがミラーリングされます。
各フラグの詳細と説明については、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" ], "direction" : DIRECTION, } }
プレースホルダを有効な値に置き換えます。
PROJECT_ID
は、ポリシーが存在するプロジェクトの ID です。POLICY_NAME
は、変更するパケット ミラーリング ポリシーの名前です。REGION
は、ポリシーが存在するリージョンです。FORWARDING_RULE_URL
は、ミラーリング コレクタとして構成された転送ルールの URL です。Google Cloud は、ミラーリングされるすべてのトラフィックを、関連付けられた内部 TCP / UDP ロードバランサに送信します。SUBNET_URL
は、ミラーリングするサブネットの URL です。Google Cloud は、サブネット内の既存のインスタンスと将来のインスタンスをミラーリングします。TAG
はネットワーク タグです。Google Cloud は、ネットワーク タグを持つインスタンスをミラーリングします。INSTANCE
は、ミラーリングするインスタンスの完全修飾 ID です。ADDRESS_RANGE
は、ミラーリングする IP アドレスの範囲(CIDR 範囲)です。PROTOCOL
は、ミラーリングする IP プロトコルです。有効な値は、tcp
、udp
、icmp
、esp
、ah
、ipip
、sctp
、または IANA プロトコル番号です。プロトコルはカンマ区切りリストで指定できます。filter.IPProtocols
を省略すると、すべてのプロトコルがミラーリングされます。DIRECTION
は、VM 側から見た、ミラーリングするトラフィックの方向です。有効な値は、受信トラフィックのみをキャプチャするINGRESS
、送信トラフィックのみをキャプチャするEGRESS
、受信トラフィックと送信トラフィックの両方をキャプチャするBOTH
(デフォルト)です。
各フィールドの詳細と説明については、packetmirrorings.patch
メソッドをご覧ください。
パケット ミラーリング ポリシーの一覧表示
パケット ミラーリング ポリシーを一覧表示して、既存のポリシーを表示します。
Console
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
- Google Cloud Console の [パケット ミラーリング] ページに移動します。
[パケット ミラーリング] ページに移動 パケット ミラーリング ポリシーのリストで、表示するパケット ミラーリング ポリシーを選択します。
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
- Google Cloud Console の [パケット ミラーリング] ページに移動します。
[パケット ミラーリング] ページに移動 - パケット ミラーリング ポリシーのリストから、無効または有効にするポリシーを選択します。
- [無効にする] または [有効にする] をクリックします。
- [無効にする] または [有効にする] をクリックして確定します。
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
- Google Cloud Console の [パケット ミラーリング] ページに移動します。
[パケット ミラーリング] ページに移動 - パケット ミラーリング ポリシーのリストで、削除するパケット ミラーリング ポリシーを選択します。
- [削除] をクリックします。
- [削除] をクリックして確定します。
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
メソッドをご覧ください。
トラブルシューティング
パケット ミラーリング ポリシーがミラーリングされるはずのトラフィックを収集していない場合は、次の構成を確認します。
ミラーリングされるインスタンスからコレクタ インスタンスへのトラフィックを許可するファイアウォール ルールがあることを確認します。
ミラーリング対象のソースがミラーリングするインスタンスを含むまたは、除外しているかを確認します。たとえば、ミラーリング対象のソースとしてサブネットを指定すると、サブネット内の既存のインスタンスと将来のインスタンスはすべてミラーリングされます。タグを指定すると、一致するタグを持つインスタンスのみがミラーリングされます。
パケット ミラーリング フィルタが広すぎないか、または狭すぎないか確認します。意図せずに、フィルタが特定のトラフィックを含む、または除外するよう構成している可能性があります。