Amazon Athenaでログをエクスポートする方法

Amazon Athenaでログをエクスポートする方法

SOC Prime Team
SOC Prime Team linkedin icon フォローする

Athenaはログを自ら保存しません。S3のCloudTrailやVPC Flow Logs、ロードバランサー、WAFログのようなログファイルを、定義したテーブルを通じてクエリします。通常のクエリ結果は、結果バケットにCSV形式で保存されます。JSONで取得したい場合は、UNLOAD … WITH (format = ‘JSON’) でクエリをラップしてください。Athenaは改行区切りのJSONをS3プレフィックスに書き込みますので、それをダウンロードしてください。

多くのAWSチームは、何ヶ月分ものログをS3に保持し、それらをAthenaでクエリして、すべてをSIEMに送信する代わりにします。Prime Coreには24,000以上のユニークな検出ルールがあり、676のMITRE ATT&CK技術にマッピングされています。以下に、どのように取り出し、サニタイズし、LogTotalで無料で調査できるかを説明します。

無料で始めましょう

始める前に

権限。 Athenaクエリを実行する必要があり(athena:StartQueryExecutionなど)、Glueでテーブル定義を読み、ソースバケットを読み、エクスポートバケットに書き込む必要があります。ログがKMSで暗号化されている場合は、kms:Decryptを追加してください。

テーブルとそのパーティションを知ってください。 CloudTrailテーブルは通常、リージョンと日付でパーティション化されており、パーティションプロジェクションまたは追加したパーティションで管理されています。Athenaはスキャンしたデータ量で課金されるため、毎回パーティションでフィルタする必要があります。それがないクエリは、何年分ものログをスキャンしてしまいます。

ワークグループ。 Athenaは、ワークグループでクエリを実行し、結果の場所を指定します。UNLOADは独自のターゲットに書き込みますが、ワークグループのセットアップは必要です。

UNLOADでエクスポート

UNLOAD (
  SELECT *
  FROM cloudtrail_logs
  WHERE region = 'eu-west-1'
    AND day = '2026/10/19'
    AND useridentity.arn LIKE '%suspicious-user%'
)
TO 's3://my-athena-exports/ct-1019/'
WITH (format = 'JSON', compression = 'NONE')

パーティション列(region, day)をテーブル定義に合わせて調整してください。ターゲットプレフィックスは空でなければなりません。

コマンドラインから:

QID=$(aws athena start-query-execution –work-group primary
  –query-string “$(cat unload.sql)”
  –query ‘QueryExecutionId’ –output text)

# SUCCEEDEDになるまで待つ
until [ “$(aws athena get-query-execution –query-execution-id “$QID”
  –query ‘QueryExecution.Status.State’ –output text)” = “SUCCEEDED” ]; do sleep 5; done

aws s3 cp s3://my-athena-exports/ct-1019/ ./ct-1019/ –recursive
zcat -f ./ct-1019/* > ct_1019.jsonl

zcat -fは、圧縮および非圧縮出力の両方を処理します。クエリが失敗した場合、待ちループは終了しません。これを定期的にスクリプト化する場合はFAILEDも確認してください。

なぜ get-query-results? これは動作しますが、行を文字列のリストとして1,000行ずつ返し、それをオブジェクトに組み直さなければなりません。UNLOADは、一度でクリーンなJSONを提供します。

LogTotalでのアップロード、サニタイズおよびレビュー

  1. アップロード。 アクセスする logtotal.com と.jsonlファイルをドロップします。
  2. サニタイズ。 
  3. レビュー。 

問題が発生した場合

症状考えられる原因Fix
テラバイトをスキャンするクエリパーティションフィルタがないパーティション列でフィルタする
出力場所についてのエラーターゲットプレフィックスが空ではない新しいプレフィックスを使用する
アクセス拒否S3、Glue、またはKMSの権限がない各項目を確認する; KMSが通常の原因
0行パーティションがロードされていない、またはパーティション形式が間違っているパーティションプロジェクションを確認するか、MSCK REPAIR TABLEを実行する
出力ファイルがテキストとして開かないGZIP圧縮zcatを使用するか、圧縮を ‘NONE’ に設定する

FAQ

これはAmazon Security Lakeと同じですか?

Security LakeもAthenaを使用しますが、独自のOCSFテーブルとLake Formation権限があります。

生のCloudTrailファイルをエクスポートすることはできますか?

はい。もし丸一日分だけ必要なら、S3からファイルをコピーするほうが簡単です。Athenaはフィルタリングが必要なときに役立ちます。

SOC PrimeのDetection as Codeプラットフォームに参加し ビジネスに最も関連性のある脅威に対する可視性を向上させましょう。開始して即座に価値をもたらすためには、今すぐSOC Primeの専門家とのミーティングを予約してください。