Google Cloud Firewall アプリケーションのログの収集
このページでは、Google Cloud Firewall アプリケーションのログ収集を設定する方法を説明します。
このページでは、Google Cloud Platform (GCP) サービスからログを取り込むための Sumo パイプラインについて説明し、Google Cloud Firewall アプリケーションからのログ収集を設定する手順を紹介します。
ファイアウォール ルールのログの有効化
ルール定義に --enable-logging
を含めて、接続を記録する各ファイアウォール ルールで個別にファイアウォール ルールのログを有効にします。例:
gcloud beta compute firewall-rules create rule-b \
--network example-net \
--action allow \
--direction ingress \
--rules tcp:80 \
--source-ranges 10.10.0.99/32 \
--priority 10 \
--enable-logging
詳細については、「ファイアウォール ルール ロギングの概要」を参照してください。
Google Logging からの Google Cloud VPC ログのエクスポートの作成
このステップでは、ログを前のステップで作成した Pub/Sub トピックにエクスポートします。Google Cloud ファイアウォールは Google Cloud VPC で実行されるため、VPC ログを収集します。
- GCP で [Logging (ログ)] に移動します。
- [Exports (エクスポート)] に移動します。[Create Export (エクスポートの作成)] をクリックします。
-
GCP サービスとして [GCE Subnetwork (GCE サブネットワーク)] を選択してログを絞り込みます。
-
右側の [Edit Export (エクスポートの編集)] ウィンドウで次の操作を実行します。
- [Sink Name (Sink 名)] を設定します。たとえば、"gcp-subnetwork" です。
- [Sink Service (Sink サービス)] を "Cloud Pub/Sub" に設定します。
- [Sink Destination (Sink ターゲット)] を作成したばかりの Pub/Sub トピックに設定します。たとえば、pub-sub-logs です。
- [Create Sink (Sink の作成)] をクリックします。
- デフォルトでは、GCP ログは Stackdriver 内に保存されますが、このドキュメントで説明する手順に従って、GCP ログを除外するように Stackdriver を設定することもできます。この設定により、上記の Sumo Logic へのエクスポートに影響が及ぶことはありません。Stackdriver のログを除外する方法については、この GCP ドキュメントの手順に従ってください。
クエリのサンプル
一定期間にわたるネットワーク別の拒否された受信トラフィック
_sourceCategory=*gcp* logName reference resource "\"type\":\"gce_subnetwork\"" "\"direction\":\"INGRESS\"" "\"disposition\":\"DENIED\"" | parse regex "\"logName\":\"(?<log_name>[^\"]+)\"" | parse regex "\"reference\":\"network:[^\"/]+/firewall:(?<rule_name>[^\"]+)\"" | where log_name matches "projects/*/logs/compute.googleapis.com%2Ffirewall" | json "message.data.resource.labels", "message.data.jsonPayload" as labels, payload | json field=labels "location","project_id","subnetwork_id","subnetwork_name" as zone,project,subnetwork_id,subnetwork_name nodrop | json field=payload "disposition", "instance.vm_name", "vpc.vpc_name", "rule_details" as disposition, vm_instance, network, rule_details | json field=rule_details "action", "priority", "direction" | timeslice 1h | count as denied by _timeslice, network, project | transpose row _timeslice column network, project