🛡️ GuardDuty ログソース完全ガイド

最大カバレッジを実現するための設定と依存ログソースを完全解説

🏢 ビルのセキュリティシステムで例えると超わかりやすい!

GuardDutyは「AI搭載の警備員」のようなもの!

ビルの警備員が監視カメラの映像をチェックして不審者を発見するように、
GuardDutyは 3種類の「監視カメラ」(ログソース) の情報を分析して
AWSアカウント内の脅威を自動検出します。

カメラを全部設置しないと死角ができるように、
すべてのログソースを正しく設定 しないと検知漏れが発生します!

🎬 GuardDutyを映画の警備システムで理解しよう

🏢

🔐 高層ビルのセキュリティシステム

あなたは高層ビルの警備責任者です。

ビルには3種類の監視システムがあります:

📋 入退館記録システム (= CloudTrail)
→ 誰がいつビルに入ったか、どの部屋に行ったかを記録

📦 倉庫監視カメラ (= S3データイベント)
→ 貴重品倉庫で何が取り出され、何が保管されたかを監視

🚗 駐車場・エレベーター監視 (= VPCフローログ)
→ ビル内の人や車の移動パターンを監視

GuardDutyはこれら全ての情報を統合分析するAI警備員です!

🔍 Detector(検出器)とは?

🎛️

GuardDutyの「心臓部」となるリソース

Detector(検出器)は、GuardDutyを有効化すると自動作成されるリソースです。
リージョンごとに1つ存在し、そのリージョン内の脅威検出を担当します。
ほぼ全てのGuardDuty API操作で Detector ID が必要になります。

🏢 ビルの例えで理解する
Detector = 各フロアの警備室

• 高層ビルの各フロア(= AWSリージョン)に1つずつ警備室がある
• 警備室が監視カメラの映像を受け取り、分析する
• 不審者を発見したら「Finding」というレポートを作成
• 警備室のID(= Detector ID)で、どのフロアの警備室か識別できる
📋
Detectorの基本情報
  • 作成タイミング: GuardDuty有効化時に自動作成
  • スコープ: リージョンごとに1つ
  • 識別子: 32文字の一意なDetector ID
  • 役割: データソース分析、Finding生成、設定管理
Detector IDの例:
12abc34d567e8fa901bc2d34e56789f0
⚙️
Detectorの主な設定項目
📁 Detector構造
Detector ├── ステータス(有効/無効) ├── Finding発行頻度 │ └── 15分 / 1時間 / 6時間 ├── データソース設定 │ ├── CloudTrail(自動) │ ├── VPCフローログ(自動) │ ├── DNSログ(自動) │ └── S3データイベント(オプション) ├── 保護機能 │ ├── S3保護 / EKS保護 │ ├── マルウェア保護 │ ├── RDS保護 / Lambda保護 └── タグ
🌏
リージョンとDetectorの関係
  • 1リージョン = 1 Detector の関係
  • 東京リージョンと大阪リージョンでは別々のDetectorが必要
  • 同一リージョンに複数のDetector作成は不可
  • 全リージョン監視には各リージョンでGuardDutyを有効化
💡 ポイント:
Detectorを削除 = そのリージョンのGuardDutyが停止
削除前に必ずFindingをS3へエクスポートしましょう
🏢
Organizations環境でのDetector
🔗 マルチアカウント構成
管理アカウント(委任管理者) └── Detector(マスター) ├── メンバーA の Detector を管理 ├── メンバーB の Detector を管理 └── メンバーC の Detector を管理 ※ 各メンバーアカウントにも 個別のDetectorが存在 ※ 委任管理者から一元的に 設定・管理が可能
💻 AWS CLI での Detector 操作
# Detector IDを取得
aws guardduty list-detectors
# 出力例: {"DetectorIds": ["12abc34d567e8fa901bc2d34e56789f0"]}

# Detectorの詳細を確認
aws guardduty get-detector --detector-id $DETECTOR_ID

# GuardDutyを有効化(Detectorを新規作成)
aws guardduty create-detector --enable

# Detectorを一時無効化
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --no-enable

# Detectorを削除(GuardDuty無効化)
aws guardduty delete-detector \
  --detector-id $DETECTOR_ID
❓ Detector よくある質問
Q: Detector IDはどこで確認できますか?
コンソール: GuardDuty → 設定 → 「検出器ID」に表示
CLI: aws guardduty list-detectors
Q: 全リージョンでGuardDutyを有効化するには?
各リージョンで個別にDetectorを作成する必要があります。
推奨: CloudFormation StackSetsを使用して一括有効化
Q: Detectorを削除するとFindingはどうなりますか?
90日後に全て削除されます。
削除前にS3へエクスポートすることを強く推奨します。
Q: Detector IDは変更できますか?
変更できません。
Detector IDはGuardDuty有効化時に自動生成される固定値です。
変更が必要な場合は、削除→再作成が必要ですが、Findingが失われます。

📊 GuardDutyが依存する3つのログソース

📋
CloudTrail
管理イベント・APIアクティビティ
🏢 ビルの例え:入退館記録
誰がいつ何をしたかの記録
📌 監視対象
• AWS APIコール全般
• IAMアクティビティ
• リソースの作成・変更・削除
⚙️ GuardDutyでの扱い
自動的に有効化!
GuardDutyが内部で独自に収集するため、
別途CloudTrailを設定する必要なし
🔍 検出できる脅威例
• 不正なAPIコール
• 認証情報の不正使用
• 疑わしいリソース作成
• 特権昇格の試み
📦
S3データイベント
S3オブジェクトレベル操作
🏢 ビルの例え:倉庫監視カメラ
貴重品の出し入れを監視
📌 監視対象
• GetObject(ダウンロード)
• PutObject(アップロード)
• DeleteObject(削除)
• ListBucket(一覧取得)
⚙️ GuardDutyでの扱い
手動で有効化が必要!
「S3保護」機能を有効にする必要あり
※追加コストが発生
🔍 検出できる脅威例
• 大量データ流出
• 不審なデータアクセスパターン
• マルウェアのアップロード
• 匿名アクセス検知
🚗
VPCフローログ
ネットワークトラフィック情報
🏢 ビルの例え:動線監視カメラ
人・車の移動パターンを監視
📌 監視対象
• 送信元/送信先IP
• ポート番号
• プロトコル
• パケット数・バイト数
⚙️ GuardDutyでの扱い
自動的に有効化!
GuardDutyが内部で独自に収集するため、
別途VPCフローログを設定する必要なし
🔍 検出できる脅威例
• ポートスキャン
• C&Cサーバーとの通信
• 暗号通貨マイニング
• DoS攻撃の兆候

🔄 GuardDutyのデータ処理フロー

📋
CloudTrail
管理イベント
➡️
🛡️
GuardDuty
脅威分析エンジン
➡️
🚨
Finding
(検知結果)
📦
S3データ
イベント
➡️
🤖
機械学習
異常検知
➡️
📊
Security Hub
EventBridge
🚗
VPCフロー
ログ
➡️
🔍
脅威インテリジェンス
照合
➡️
自動対応
Lambda

🎯 最大カバレッジを実現する設定チェックリスト

🛡️
基本設定(必須)
GuardDutyを有効化するだけで、CloudTrailとVPCフローログの分析が自動的に開始されます。
✅ 確認ポイント
GuardDuty → 設定
→ ステータス:「有効」を確認
→ 全リージョンで有効化を推奨
📦
S3保護(推奨)
S3バケットへの不審なアクセスを検知。データ流出対策には必須!
✅ 有効化手順
GuardDuty → 設定 → S3保護
→ 「有効化」をクリック
※追加コスト:S3イベント量に依存
🔑
EKS保護(Kubernetes利用時)
EKS監査ログを分析してKubernetesへの攻撃を検知。
✅ 有効化手順
GuardDuty → 設定 → EKS保護
→ EKS監査ログモニタリング:有効
→ EKSランタイムモニタリング:有効
💻
EC2マルウェア保護(推奨)
EBSボリュームをスキャンしてマルウェアを検出。
✅ 有効化手順
GuardDuty → 設定 → マルウェア保護
→ 「GuardDutyが開始したスキャン」:有効
→ オンデマンドスキャンも設定可能
🗄️
RDS保護(DB利用時)
RDSへの不審なログインアクティビティを検知。
✅ 有効化手順
GuardDuty → 設定 → RDS保護
→ RDSログイン
アクティビティモニタリング:有効
λ
Lambda保護(サーバーレス利用時)
Lambda関数のネットワークアクティビティを監視。
✅ 有効化手順
GuardDuty → 設定 → Lambda保護
→ Lambda Network Activity
Monitoring:有効

📊 ログソース・保護機能 比較表

データソース デフォルト 追加設定 追加コスト 検知範囲
📋 CloudTrail管理イベント ✅ 自動有効 不要 基本料金に含む API操作全般
🚗 VPCフローログ ✅ 自動有効 不要 基本料金に含む ネットワーク通信
🌐 DNS クエリログ ✅ 自動有効 不要 基本料金に含む DNS解決パターン
📦 S3データイベント ❌ 無効 要有効化 イベント量に依存 S3オブジェクト操作
🔑 EKS監査ログ ❌ 無効 要有効化 イベント量に依存 Kubernetes操作
💻 EBSマルウェアスキャン ❌ 無効 要有効化 スキャン量に依存 ファイルベースの脅威
🗄️ RDSログインアクティビティ ❌ 無効 要有効化 イベント量に依存 DB認証・アクセス
λ Lambdaネットワーク ❌ 無効 要有効化 イベント量に依存 Lambda通信パターン

✅ 最大カバレッジ達成チェックリスト

🏢

基本設定(全環境必須)

  • GuardDutyを全リージョンで有効化
  • マスターアカウントで委任管理者を設定
  • 全メンバーアカウントを招待・追加
  • Finding のエクスポート先(S3)を設定
  • EventBridge ルールでアラート設定
📦

データ保護(S3利用時)

  • S3保護を有効化
  • 重要バケットを特定
  • マルウェア保護を有効化
  • 自動スキャン設定を確認
⚠️ 注意
S3保護は追加コストが発生します。
30日間の無料トライアルで
コスト見積もりを確認しましょう。
🔑

コンテナ保護(EKS利用時)

  • EKS監査ログモニタリングを有効化
  • EKSランタイムモニタリングを有効化
  • GuardDutyエージェント自動管理を有効化
  • ECSランタイムモニタリングも検討
🛠️

運用設定(継続的改善)

  • 信頼できるIPリストを設定
  • 脅威リスト(カスタム)を追加
  • 抑制ルールで誤検知を管理
  • 定期的なFinding レビューを実施
  • Security Hub との統合を確認

💰 コストに関する重要な注意点

📋
基本データソース
CloudTrail管理イベント、
VPCフローログ、DNSログは
基本料金に含まれる
(分析量に応じた従量課金)
📦
オプション機能
S3保護、EKS保護、RDS保護、
Lambda保護、マルウェア保護は
追加コストが発生
(30日無料トライアルあり)
💡
コスト最適化Tips
「使用状況」ページで
各機能のコストを確認
必要な機能のみ有効化
で最適化しましょう
AWS CLI での最大カバレッジ設定例
# GuardDuty 検出器IDを取得
DETECTOR_ID=$(aws guardduty list-detectors --query 'DetectorIds[0]' --output text)

# S3保護を有効化
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --data-sources '{"S3Logs":{"Enable":true}}'

# EKS保護を有効化
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --features '[{"Name":"EKS_AUDIT_LOGS","Status":"ENABLED"},{"Name":"EKS_RUNTIME_MONITORING","Status":"ENABLED"}]'

# マルウェア保護を有効化
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --features '[{"Name":"EBS_MALWARE_PROTECTION","Status":"ENABLED"}]'

# RDS保護を有効化
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --features '[{"Name":"RDS_LOGIN_EVENTS","Status":"ENABLED"}]'

# Lambda保護を有効化
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --features '[{"Name":"LAMBDA_NETWORK_LOGS","Status":"ENABLED"}]'

# 現在の設定を確認
aws guardduty get-detector --detector-id $DETECTOR_ID
💡 最大カバレッジ達成のゴールデンルール
1. まずは基本から始める:
GuardDutyを有効化するだけでCloudTrail、VPCフローログ、DNSログの分析が自動開始。これだけで基本的な脅威は検知可能。

2. 利用サービスに応じて拡張:
• S3に重要データ → S3保護を有効化
• EKSを利用 → EKS保護を有効化
• RDSを利用 → RDS保護を有効化
• Lambdaを利用 → Lambda保護を有効化

3. Organizations統合を活用:
委任管理者を設定して、全アカウントを一元管理。新規アカウント作成時も自動でGuardDutyが有効化されるように設定。

4. コストを監視しながら最適化:
「使用状況」ページで各機能のコストを定期確認。不要な機能は無効化してコスト最適化。

5. Security Hubと連携:
GuardDutyのFindingをSecurity Hubに集約して、他のセキュリティサービスと統合管理。優先度付けと対応の効率化を実現。

🎓 まとめ

🏢 ビルの警備システム = GuardDuty

3種類の「監視カメラ」(ログソース)で
AWSアカウント全体を守るAI警備員です

📋
CloudTrail

入退館記録
自動有効
📦
S3データイベント

倉庫監視カメラ
要有効化
🚗
VPCフローログ

動線監視カメラ
自動有効

🎯 最大カバレッジの鉄則:

1️⃣ GuardDuty有効化で 基本3ソースは自動ON
2️⃣ S3保護・EKS保護等は 手動で有効化が必要
3️⃣ 利用サービスに応じて 必要な保護機能を追加
4️⃣ Organizations統合で 全アカウント一元管理

全ての「監視カメラ」を設置して
死角のないセキュリティ体制 を構築しましょう!🛡️✨

Created by SSuzuki1063

AWS SAP Learning Resources