DEA / ドメイン4 データセキュリティとガバナンス
重要な内容
AWS CloudTrail と CloudTrail Lake
は、AWS アカウントで行われた 呼び出しを「誰が、いつ、どこから、何をしたか」として記録するサービスです。データ基盤では、誰がの設定を変えたか、誰がテーブルを消したか、誰がどのオブジェクトを読んだかを追跡する監査の土台になります。 DEA では、管理イベントとデータイベントの違い、証跡による長期保管と改ざん防止、ログを集めてクエリする方法 (CloudTrail Lake と、その代わりの手段) が問われます。
Point
- Trail は「足跡、痕跡」で、CloudTrail ではイベントを S3 などへ継続的に送る設定のことです。
- Event data store (イベントデータストア) は、CloudTrail Lake でイベントを保管し、SQL でクエリするための入れ物です。
- Audit は「監査」です。
- 和訳
- Trail: 跡、痕跡
- Audit: 監査
- Weblio英和辞書「audit」
概要
は、何も設定しなくても直近の管理イベントをイベント履歴として記録します。長期の保管、データイベントの記録、複数アカウントの集約には、証跡を作ります。
| 見るポイント | 代表的な判断 |
|---|---|
| の操作の履歴か、リソースの設定の履歴か | 操作は CloudTrail、設定の変遷は です。 |
| 管理操作か、データの読み書きか | データの読み書き ( のオブジェクト、 の呼び出し) はデータイベントを有効にします。 |
| 1つのアカウントか、組織全体か | 組織全体なら組織の証跡を使います。 |
| ログを集めて で調べたいか | 証跡を S3 に送って 、または Logs で分析します。 |
主要技術
①イベントの種類 ⚠️ 頻出
| 種類 | 記録する操作 | 既定 | 例 |
|---|---|---|---|
| 管理イベント | リソースの作成・設定変更などのコントロールプレーンの操作 | 記録されます | CreateBucket、PutBucketPolicy、DeleteTable、StartJobRun |
| データイベント | リソースの中のデータへの操作 (データプレーン) | 記録されません (有効化が必要、追加料金) | の GetObject・PutObject、 の Invoke、 の項目の操作 |
| ネットワークアクティビティイベント | を通った 呼び出し | 記録されません (有効化が必要、追加料金) | 組織外の認証情報による VPC エンドポイントへのアクセスの検出 |
| Insights イベント | API の呼び出し量やエラー率の異常 | 記録されません (有効化が必要) | 普段と違う大量の削除操作 |
「誰がこの S3 オブジェクトを読んだか」を答えるには、データイベントを有効にしておく必要があります。管理イベントだけでは分かりません。 データイベントは量が多く費用がかかるため、高度なイベントセレクターで対象のやプレフィックス、読み取り・書き込みを絞ります。
②イベント履歴と証跡
| 機能 | 保管 | 対象 | 判断ポイント |
|---|---|---|---|
| イベント履歴 | 直近90日 | 管理イベント、ごと | 設定なしで見られますが、長期の監査には足りません。 |
| 証跡 | に保管 (保持期間は S3 で決める) | 管理イベント、データイベントなど | 長期保管、全リージョン、組織全体の集約に使います。 |
| 証跡の設定 | 内容 |
|---|---|
| 全リージョンの証跡 | すべてのリージョンのイベントを1つのへ集めます。新しいリージョンも自動で対象になります。 |
| 組織の証跡 | の管理アカウント (または委任管理者) で作り、全メンバーアカウントのイベントを集めます。メンバーアカウントは証跡を見られますが、変更・削除はできません。 |
| Logs への送信 | フィルターとで、特定の操作 (証跡の停止、の利用) を検知します。 |
| 特定の 呼び出しをきっかけに や を動かします。 |
のイベントは、API 呼び出しから平均して約5分で配信されます (保証値ではありません)。即時の検知が必要な場合は EventBridge のルールを使います。
③監査ログの保管と改ざん防止 ⚠️ 頻出
| 対策 | 内容 |
|---|---|
| ログファイルの整合性の検証 | が1時間ごとにダイジェストファイル (ハッシュと署名) を作り、配信後にログが変更・削除されていないかを検証できます。 |
| ログ専用のアカウント | 組織の証跡のログを、作業者がアクセスできないログ保管用のアカウントのへ送ります。 |
| Object Lock | (書き込み1回、読み取り多数) でログの削除や上書きを一定期間禁止します。 |
| ログをで暗号化し、読める人をキーポリシーで絞ります。 | |
| バケットポリシー | CloudTrail からの書き込みだけを許可し、削除を拒否します。 |
| ライフサイクル | 古いログを のへ移し、保持期間後に削除します。 |
④監査用のログの抽出と分析
証跡で に送ったログは、 でクエリするのが定番です。 のコンソールから Athena のテーブルを作成でき、 (partition projection) を使うとパーティションの追加の手間なく日付やで絞れます。
SELECT eventtime, useridentity.arn, eventname, requestparameters
FROM cloudtrail_logs
WHERE eventsource = 's3.amazonaws.com'
AND eventname = 'DeleteObject'
AND eventtime >= '2026-10-01T00:00:00Z';
| 手段 | 向いている場面 |
|---|---|
| Athena (S3 の証跡のログ) | 長期間の大量のログを、費用を抑えて で調べます。監査の証跡の抽出に向きます。 |
| Logs に送ったログを、直近の範囲で素早く調べます。 | |
| 全文検索やダッシュボードで継続的に可視化します。 | |
| 非常に大量のログを で加工・集計します。 |
ログ分析のサービスの詳しい使い分けは「AWS サービスによるログ分析」の章で扱います。
⑤CloudTrail Lake (新規の受付は終了)
Lake は、イベントをイベントデータストアに集め、 でクエリできる機能です。組織全体・複数のイベントを1か所に集め、自然言語からクエリを生成する機能もあります。
| 項目 | 内容 |
|---|---|
| イベントデータストア | 管理イベント・データイベント、Insights イベント、 の設定項目、AWS 外のイベントなど、種類ごとに作ります。組織のイベントデータストアも作れます。 |
| 保持期間 | 料金オプションにより、最長で約10年 (3,653日) または約7年 (2,557日) です。 |
| クエリ | SQL ( の SELECT) で、複数の項目や複数のイベントデータストアを結合して調べられます。 へのもできます。 |
ただし、CloudTrail Lake は2026年5月31日から新規の顧客の受付を終えています。既存の顧客は引き続き使えますが、AWS は移行先として (CloudTrail のイベントを CloudWatch Logs に取り込み、アカウント・リージョンをまたいで集約し、 などで分析する方式) を推奨しています。 これから一元化したクエリの仕組みを作るなら、次のどちらかを選びます。
| 代わりの手段 | 構成 |
|---|---|
| CloudWatch への集約 | CloudTrail のイベントを CloudWatch Logs に取り込み、アカウント・リージョンをまたいで集約してクエリします。 |
| 証跡 + + Athena | 組織の証跡をログ用アカウントの S3 に送り、Athena でクエリします。 |
証跡、Insights イベント、CloudTrail 自体は引き続き提供されており、この変更の対象は CloudTrail Lake だけです。
⑥データレイクとデータウェアハウスの監査
| 対象 | 記録の仕方 |
|---|---|
統合されたエンジン (、、 のジョブ) がデータを読むたびに、を払い出す GetDataAccess が に記録されます。ほかのアカウントが共有されたテーブルを読むと、そのイベントはデータを持つ側のアカウントの CloudTrail にもコピーされます。 | |
| Lake Formation (アカウントをまたぐ利用者の特定) | 既定では、コピーされたイベントには利用側のプリンシパルの ARN が含まれません。利用側のアカウントが Lake Formation の設定でデータの所有者のアカウントを指定してオプトインすると、ロールやユーザーの ARN が記録されます。 |
| Lake Formation + | S3 のデータイベントを有効にしておくと、GetDataAccess のイベントと S3 の GetObject のイベントをセッション名で結合し、どのアカウントがどのオブジェクトを読んだかを Athena で調べられます。 |
| クラスターの作成や設定変更は CloudTrail、データベースへの接続や実行された は Redshift の監査ログ (接続ログ・ユーザーログ・ユーザーアクティビティログ) に記録されます (「Redshift のアクセス制御とデータ共有」の章)。 |
試験対策
の問題では、「誰が を呼んだか」を問われているかを確かめます。設定の変遷なら 、アプリケーションのログなら Logs です。 次に、データの読み書きの追跡ならデータイベント、長期保管と組織全体なら組織の証跡、改ざん防止なら整合性の検証と Object Lock を選びます。
①判断マトリクス
| 問題文のキーワード | 選ぶもの | 理由 |
|---|---|---|
| 誰が のテーブルを削除したか | の管理イベント | 呼び出しの記録です。 |
| 誰が の特定のオブジェクトを読んだか | S3 のデータイベントを有効にした証跡 | 管理イベントでは記録されません。 |
| 90日より前の操作を調べたい | 証跡を作って S3 に長期保管 | イベント履歴は90日までです。 |
| 全アカウントの操作を1か所に集めたい | 組織の証跡 + ログ保管用アカウント | メンバーは証跡を変更できません。 |
| ログが改ざんされていないことを証明したい | ログファイルの整合性の検証 | ダイジェストファイルで検証します。 |
| ログを一定期間削除させない | S3 Object Lock | で保護します。 |
| 監査のために過去のログを で抽出したい | S3 の証跡のログを でクエリ | 大量・長期間のログを安く調べます。 |
| 特定の操作が起きたらすぐ通知したい | のルール | 配信を待たずに反応します。 |
| 証跡の停止をで検知したい | Logs へ送り、フィルターとアラーム | 継続的に監視します。 |
| 組織全体のイベントを一元的にクエリしたい (新規) | CloudWatch への集約、または証跡 + Athena | CloudTrail Lake は新規の受付を終えています。 |
| 設定がいつどう変わったかの履歴 | 設定項目とタイムラインで見ます。 |
②よくある誤答
- 管理イベントで のオブジェクトの読み取りまで分かると考えること。データイベントが必要です。
- イベント履歴を長期の監査に使うこと。90日を超えて残すには証跡が必要です。
- と を取り違えること。操作の記録が CloudTrail、設定の状態の記録が Config です。
- これから新しく CloudTrail Lake を使い始める構成を選ぶこと。新規の受付は終了しています。
参考文献
- What Is AWS CloudTrail?
- Logging data events
- Logging network activity events
- Validating CloudTrail log file integrity
- Creating a trail for an organization
- Working with AWS CloudTrail Lake
- CloudTrail Lake availability change
- Querying AWS CloudTrail logs (Amazon Athena)
- AWS Certified Data Engineer - Associate 試験ガイド