G-gen の武井です。当記事では Google SecOps に AWS の VPC Flow Logs を取り込む方法について解説します。

はじめに
Google SecOps とは
Google Security Operations(以下 Google SecOps、旧称 Chronicle)は、Google Cloud が提供する統合セキュリティ運用プラットフォームです。
SIEM、SOAR、脅威インテリジェンス、Gemini を利用した AI による運用支援を提供します。これらにより、脅威の検知・調査・対応を一元的に行えます。結果として、セキュリティ運用の効率化と高度化を実現できます。
詳細は、以下の記事をご参照ください。
データフィードとは
Google SecOps では、AWS、Azure、その他 SaaS など、Google Cloud 以外の環境のログデータを取り込む仕組みとしてデータフィード機能があります。
SecOps UI もしくは Feed Management API を用いて、ログソース(Amazon S3、Cloud Storage、Pub/Sub、Webhook など)を指定し、各種ログを SecOps に取り込む設定を行います。
| ソースタイプ | 概要 |
|---|---|
| ストレージ | Google Cloud、AWS、Azure のクラウドストレージバケットに保存されたログデータを定期的に取得 |
| Amazon SQS | S3 バケットの通知をキュー経由で受信し、ログデータを取得(リアルタイムかつ安定的に取り込み) |
| ストリーミング | Amazon Data Firehose、Cloud Pub/Sub、Webhook などを経由し、SIEM の HTTPS エンドポイントにログデータをストリーミングでプッシュ |
| サードパーティ API | CrowdStrike、SentinelOne、Palo Alto など、外部 SaaS から API 経由でログデータを取得 |
- 参考:フィード管理の概要
設定の流れ
当記事では以下の構成のもと、S3 バケットに格納した VPC Flow Logs を、データフィード機能を使って Google SecOps に取り込みます。

大まかな設定手順は、以下のとおりです。
| 順序 | 設定項目 | 設定箇所 |
|---|---|---|
| 1 | S3 バケットの設定 | AWS |
| 2 | VPC および VPC Flow Logs の設定 | AWS |
| 3 | EC2 インスタンスの設定 | AWS |
| 4 | IAM の設定 | AWS |
| 5 | データフィードの設定 | Google SecOps |
| 6 | 動作確認 | Google SecOps |
AWS の設定
S3 バケット
S3 バケットは以下の手順に従い作成します。
- 参考:汎用バケットの作成
VPC
VPC ならびにサブネット等の関連リソースは以下の手順に従い作成します。
VPC Flow Logs
S3 バケットを介して Google SecOps に VPC Flow Logs を取り込む場合、VPC Flow Logs の構成についてはいくつか指定の値があるため、公式ドキュメントに従い設定します。
| # | 設定項目 | 設定値 |
|---|---|---|
| 1 | 最大集計間隔 | 1分 (推奨) |
| 2 | ログレコードの形式 | AWS のデフォルト形式 |
| 3 | ログファイル形式 | テキスト |

設定後しばらくすると、以下のように VPC Flow Logs が連携されます。

今回の例では、s3://secops-sandbox-ggen-vpc-flow-logs/AWSLogs/945008193730/vpcflowlogs/ap-northeast-1/配下にログが格納されたことを確認しました。
後述のデータフィード設定では、上記 S3 URI を指定して VPC Flow Logs を取り込みます。
EC2 インスタンス
EC2 インスタンスは以下の手順に従い作成します。
なお、EC2 インスタンスへの SSH や HTTPS アクセスログを生成させるため、特定の IP からのアクセスを許可するようセキュリティグループを設定しています。
IAM
後述のデータフィードで VPC Flow Logs を取り込むには、アクセスキーとシークレットアクセスキーが必要です。
そのため、以下の公式ドキュメントに従い Google SecOps 用のマシンユーザー(AWS マネジメントコンソールへのユーザーアクセス不可)を作成してキーを発行します。

公式ドキュメントには、作成したマシンユーザーにAmazonS3FullAccessを付与する旨の記述がありますが、当記事では最小権限のカスタム IAM ポリシー(今回の例ではsecops-s3-acccess)を付与しています。
# secops-s3-acccess { "Version": "2012-10-17", "Statement": [ { "Sid": "ListAllowedBuckets", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::secops-sandbox-ggen-vpc-flow-logs" ] }, { "Sid": "ReadObjectsFromAllowedBuckets", "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::secops-sandbox-ggen-vpc-flow-logs/*" ] } ] }
データフィードの設定
VPC フローログが格納された S3 バケットの URI やキー情報を用いて Google SecOps との連携を行い、ログの取り込みを行います。
その他にも、ログの種別や取り込み先環境を識別するために Ingestion Labels と Namespace も設定します。

設定が適切に完了すると、STATUS 列の値が Completed として表示され、LAST SUCCEDED ON 列にはログの最終取り込み日時(UTC)が表示されます。

- 参考:AWS VPC Flow Logs(S3 テキスト)を取り込むように Google SecOps でフィードを構成する
- 参考:Supported log types with a default parser
- 参考:アセットの名前空間を使用する
動作確認
AWS はデフォルトパーサーが用意されているため、Google SecOps にログが取り込まれると自動的に UDM イベントにパースされます。
SIEM Search(UDM 検索)メニューから以下のクエリを入力して実行すると、ログが取り込まれていることを確認できました。
metadata.log_type = "AWS_VPC_FLOW"

その他にも、送信元の IP や宛先のポートをクエリに追加することで、EC2 インスタンスに HTTPS でアクセスした際のログも取り込まれていることが確認できました。
metadata.log_type = "AWS_VPC_FLOW" target.ip = "126.38.167.22" principal.port = 443

また、先ほどの画面右側にある Event Viewer を Event Fields(UDM)から Raw Log に切り替えると、パースされる前の生ログを確認することも可能です。

関連記事
武井 祐介 (記事一覧)
クラウドソリューション部クラウドエンジニアリング課。
Google Cloud Partner Top Engineer 2026 選出。
趣味はロードレースやサッカー観戦、ゴルフ、筋トレ。
Follow @ggenyutakei