G-gen の武井です。当記事では、Google が提供する SIEM/SOAR 製品である Google SecOps に、AWS CloudTrail ログを取り込む方法について解説します。

はじめに
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 バケットに格納した CloudTrail ログを、データフィード機能を使って Google SecOps に取り込みます。
その際、Amazon SQS を用いることで、S3 バケットへのログ格納通知をキュー経由で受信し、ログデータをリアルタイムかつ安定的に取り込みます。

大まかな設定手順は、以下のとおりです。
| 順序 | 設定項目 | 設定箇所 |
|---|---|---|
| 1 | S3 バケットの設定 | AWS |
| 2 | SQS の設定 | AWS |
| 3 | SQS アクセスポリシーの設定 | AWS |
| 4 | S3 イベント通知の設定 | AWS |
| 5 | CloudTrail の設定 | AWS |
| 6 | IAM の設定 | AWS |
| 7 | データフィードの設定 | Google SecOps |
| 8 | 動作確認 | Google SecOps |
AWS の設定
S3 バケット
S3 バケットは以下の手順に従い作成します。
- 参考:汎用バケットの作成
SQS(Simple Queue Service)
今回の構成では、バケット全体を定期スキャンするのではなく、ログ生成をトリガーにリアルタイムで取り込みを行います。
そのため、以下の手順に従い標準タイプでキューを作成します。

SQS アクセスポリシー
S3 バケットから SQS キューにメッセージを送信するため、キューのアクセスポリシーを編集し、S3 サービスプリンシパル(s3.amazonaws.com)に対して、キューへのメッセージ送信(SQS:SendMessage)を許可します。
また、意図しないバケットからの書き込みを防ぐため、ポリシー内の Condition 句で「特定の AWS アカウント」かつ「特定の S3 バケット」からのリクエストのみを許可するように制限を行います。
今回の例では、以下のアクセスポリシーを定義しました。
{ "Version": "2012-10-17", "Id": "S3ToSQS", "Statement": [ { "Sid": "AllowS3ToSendMessage", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:ap-northeast-1:945008193730:yutakei-secops-cloudtrail-queue", "Condition": { "StringEquals": { "aws:SourceAccount": "945008193730" }, "ArnLike": { "aws:SourceArn": "arn:aws:s3:::yutakei-secops-cloudtrail-test" } } } ] }
S3 イベント通知
続けて、S3 バケットから SQS キューにメッセージを送信するため、S3 バケットのプロパティからイベント通知を設定します。
すべてのオブジェクト作成イベントを先ほどのキューに送信できるよう、以下の手順に従い作成します。

CloudTrail
以下の手順に従い、先ほど作成した S3 バケットを CloudTrail ログの格納先とする証跡を作成します。
今回の構成では AWS KMS や SNS を使用しないため、ログファイルの SSE-KMS 暗号化 ならびに SNS 通信の配信については有効化しません。

なお、ログとして取り込むイベントタイプや管理イベントの API アクティビティは任意です。

IAM
Google SecOps のデータフィードで CloudTrail ログを取り込むには、アクセスキーとシークレットアクセスキーが必要です。
そのため、以下の公式ドキュメントに従い Google SecOps 用のマシンユーザー(AWS マネジメントコンソールへのユーザーアクセス不可)を作成してキーを発行します。

公式ドキュメントには、作成したマシンユーザーにAmazonS3FullAccessを付与する旨の記述がありますが、今回の例では S3 と SQS に関する最小権限のカスタム IAM ポリシーを以下のとおり作成して付与しました。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListAllowedBuckets", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::yutakei-secops-cloudtrail-test" ] }, { "Sid": "ReadObjectsFromAllowedBuckets", "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::yutakei-secops-cloudtrail-test/*" ] }, { "Sid": "ReadFromSQSForCloudTrailFeed", "Effect": "Allow", "Action": [ "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": [ "arn:aws:sqs:ap-northeast-1:945008193730:yutakei-secops-cloudtrail-queue" ] } ] }
データフィードの設定
CloudTrail ログが格納された S3 バケットの URI、SQS キューの ARN、そしてキー情報を用いて Google SecOps との連携を行い、ログの取り込みを行います。
その他にも、ログの種別や取り込み先環境を識別するために Ingestion Labels と Namespace も設定します。

設定が適切に行われると STATUS 列の値が Active と表示されます。なお、ログが取り込めている場合でも、LAST SUCCEDED ON 列にログの最終取り込み日時(UTC)が表示されないこともあります。

動作確認
AWS はデフォルトパーサーが用意されているため、Google SecOps にログが取り込まれると自動的に UDM イベントにパースされます。
SIEM Search(UDM 検索)メニューから以下のクエリを入力して実行すると、ログが取り込まれていることを確認できました。
metadata.log_type = "AWS_CLOUDTRAIL"

選択した UDM イベントを展開すると、筆者が S3 API をコールした際の記録が残されていました。
Event Viewer を Event Fields(UDM)から Raw Log に切り替えると、パースされる前の生ログを確認することも可能です。

Data Ingestion and Health(ネイティブダッシュボードの1つ)からも、CloudTrail のログ(AWS_CLOUDTRAIL)がエラーなく取り込めていることも確認できました。

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