📌
Athenaを使ってCloudTrailのイベントヒストリーをARNでクエリしたい
自分の欲しいクエリがなくて右往左往したのでメモ
やりたかったこと
Customer KMSでいつ使ったか分からないものがあり、ARN指定でCloudTrailを調べたかった
はまったこと
- arnはresourcesの配列中にある。定義は以下のようにTRUCTのARRAYで、何も考えずに(
where resources.arn
とかで)クエリすると失敗します。
resources ARRAY<STRUCT<
arn: STRING,
accountId: STRING,
type: STRING>>,
やったこと
-
CloudTrailのEventHisotryからAthenaを開く。設定はデフォルト。
-
クエリは、docを参考に
例:
<ここにcloudtrail_logs_aws_cloudtrail_logs_xxxxxxxxxxxxxxxxxxx>
と <ここにARN>
は変えてくだい。
注: FROMの最後のt
を消さないこと
SELECT
*
FROM <ここにcloudtrail_logs_aws_cloudtrail_logs_xxxxxxxxxxxxxxxxxxx> t
CROSS JOIN UNNEST(t.resources) unnested (resources_entry)
WHERE unnested.resources_entry.ARN LIKE '%<ここにARN>'
ORDER BY eventtime
docの例:(項目絞っている)
SELECT
awsregion,
replace(unnested.resources_entry.ARN,'arn:aws:s3:::') as s3_resource,
eventname,
eventtime,
useragent
FROM <ここにcloudtrail_logs_aws_cloudtrail_logs_xxxxxxxxxxxxxxxxxxx> t
CROSS JOIN UNNEST(t.resources) unnested (resources_entry)
WHERE unnested.resources_entry.ARN LIKE '%<ここにARN>'
ORDER BY eventtime
kmsのCloudtrail内での項目
Discussion