Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CloudTrail を見つめ直してみる

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

CloudTrail を見つめ直してみる

2026年4月22日にクラスメソッドさんの大阪オフィスで開催された「クラメソおおさか IT 勉強会 Midosuji Tech 〜年度始め宣言LT大会〜」での登壇資料です。

3分の枠だったのに、いろいろ書きすぎたから調整しようと思っていたのに、前日、前々日といろいろとあり、結局調整しきれませんでしたので、だいぶ端折ってお話ししました。

イベント URL:https://classmethod.connpass.com/event/388687/
#midosuji_tech

Avatar for kazzpapa3

kazzpapa3

April 22, 2026

More Decks by kazzpapa3

Other Decks in Technology

Transcript

  1. Biography { "Bio": { "Name": "ICHINO Kazuaki a.k.a. kazzpapa3", "Organization":

    "A certain AWS partner company", "Role": "Technical Support Engineer", "Favorite AWS Services": [ "AWS CLI", "AWS CloudTrail", "Kiro CLI" ], "Less Favorite AWS Service (as a Support Engineer)": [ "AWS Billing (請求ロジックが難解すぎる)" ], "Personal Interest": "初音ミク", "Socials": { "Twitter/X": "@kazzpapa3", "LinkedIn": "https://www.linkedin.com/in/kazzpapa3/" } } }
  2. 概念は大きく 3 つ 2 つ 機能 概要 イベント履歴 AWS リージョン

    内の過去 90 日間の管理イベントをデフォルトで記録 CloudTrail Lake 行ベースの JSON 形式の既存のイベントを Apache ORC 形式に変換した上で、料金プランにより最 大 3,653 日(約 10 年)の保存が可能なマネージドデータレイク SQL で手軽にイベントを検索・分析することができるが 2026 年 5 月 31 日以降、新規受付停止 証跡 S3 バケットに JSON形式 で出力でき、保持期間は S3 のライフサイクルで任意で設定可能 シンプルにログを保存しておきたい用途に向いている 分析や検索方法は別途講じる必要がある 過去 90 日間の管理イベントのデフォルト記録は無料 証跡での管理イベントの1つ目の配信は無料 ただし、S3 バケットでの保管にかかる費用は必要 明示的に「証跡を作成する」という手順が必要 @kazzpapa3 / #midosuji_tech 7 / 25
  3. つまり誰でも管理イベントは 90 日は記録されている 明示的な証跡の出力や CloudTrail Lake の使用をしていなくても、管理 イベントは 90 日間記録されている

    そのためどのようなお客様でも権限さえあれば、問題が発生した時に管 理イベントを確認することができる 不正利用を働いた攻撃者が どのようなリソースを作ろうとした のか そのリソースの作成が 成功したのかエラーだったのか 成功していれば、意図しないリソースが作られているとわかる これにより 高額請求につながる恐れがある、と判断できる @kazzpapa3 / #midosuji_tech 8 / 25
  4. 最低限必要な権限 最低限、以下の権限がある状態でマネジメントコンソール抜いサインイ ンしている IAM エンティティであれば操作可能 cloudshell:CreateEnvironment : 環境の作成 cloudshell:CreateSession :

    コンソールからの接続 cloudshell:GetEnvironmentStatus : 環境ステータスの取得 cloudshell:StartEnvironment : 停止中の環境の起動 cloudtrail:LookupEvents : 過去90日間の管理イベント / Insights イ ベントの検索 @kazzpapa3 / #midosuji_tech 13 / 25
  5. research-via-cloudtrail 基本的には ./research.sh [OPTIONS] の要領で実行するだけ 引数に渡したオプション項目に応じて cloudtrail:LookupEvents を実行 して CSV

    ファイルに出力可能 オプトインしている全リージョンに対して cloudtrail:LookupEvents し てくれるので、普段使わないリージョンに何か悪さをされていても網羅 的に把握可能 もちろん、特定のリージョンに限定することも可能 @kazzpapa3 / #midosuji_tech 15 / 25
  6. AWS サービスの一覧の出力例 curl -s http://servicereference.us-east-1.amazonaws.com/ { "service" : "a2c", "url"

    : "https://servicereference.us-east-1.amazonaws.com/v1/a2c/a2c.json", "modified" : 1774454984 } # 〜中略〜 , { "service" : "iam", "url" : "https://servicereference.us-east-1.amazonaws.com/v1/iam/iam.json", "modified" : 1774454982 }, # 〜中略〜 , { "service" : "xray", "url" : "https://servicereference.us-east-1.amazonaws.com/v1/xray/xray.json", "modified" : 1774454960 } ] @kazzpapa3 / #midosuji_tech 18 / 25
  7. IAM にアクセスした場合の例 curl -s https://servicereference.us-east-1.amazonaws.com/v1/iam/iam.json { "Name" : "iam", "Actions"

    : [ { "Name" : "AcceptDelegationRequest", "Annotations" : { "Properties" : { "IsList" : false, "IsPermissionManagement" : false, "IsTaggingOnly" : false, "IsWrite" : true } }, "Resources" : [ { "Name" : "delegation-request" } ], "SupportedBy" : { "IAM Access Analyzer Policy Generation" : false, "IAM Action Last Accessed" : false } }, { # 〜以下略〜 19 / 25
  8. 個人的に AWS サービス情報の取得を関数化している cat ~/.zshrc # 〜中略〜 awsservice() { curl

    -s https://servicereference.us-east-1.amazonaws.com/ | jq -r ".[] | select(.service | contains(\"$1\")).$2" } servicereference() { curl -s $1 | jq -r '.Actions[].Name' } @kazzpapa3 / #midosuji_tech 20 / 25
  9. これにより まずはサービスの URL を取得する awsservice iam url https://servicereference.us-east-1.amazonaws.com/v1/iam/iam.json 次に、上記で得られた URL

    にアクセスする servicereference https://servicereference.us-east-1.amazonaws.com/v1/iam/iam.json AcceptDelegationRequest AddClientIDToOpenIDConnectProvider # 〜中略〜 UploadServerCertificate UploadSigningCertificate @kazzpapa3 / #midosuji_tech 21 / 25
  10. 参考資料 What Is AWS CloudTrail? - AWS CloudTrail CloudTrail Lake

    availability change - AWS CloudTrail research-via-cloudtrail 25 / 25