CloudTrailとGuardDuty
🔥 Vibe プロンプト
「すべてのアカウントでCloudTrailを設定、組織トレイルを作成。自動応答付きGuardDutyを有効化。」
CloudTrail設定
resource "aws_cloudtrail" "org_trail" {
name = "org-trail"
s3_bucket_name = aws_s3_bucket.cloudtrail.id
include_global_service_events = true
is_multi_region_trail = true
is_organization_trail = true
}
重要なCloudTrailイベント
# MFAなしコンソールログイン
{ "eventName": "ConsoleLogin", "responseElements": { "ConsoleLogin": "Failure" } }
# ルートアクティビティ
{ "userIdentity": { "type": "Root" } }
# IAMポリシー変更
{ "eventName": "PutRolePolicy" }
GuardDuty
resource "aws_guardduty_detector" "main" {
enable = true
}
GuardDuty検出タイプ
| 検出 | 重大度 | 意味 | |------|--------|------| | CryptoCurrency:EC2/BitcoinTool | 高 | 仮想通貨マイニング | | Backdoor:EC2/C&CActivity | 高 | マルウェアC&C | | UnauthorizedAccess:IAM/User | 中 | 不審なIAM操作 |
自動応答
def lambda_handler(event, context):
finding = event['detail']['finding']
if finding['severity'] >= 7:
if 'EC2' in finding['type']:
ec2.modify_instance_attribute(
InstanceId=instance_id,
Groups=['sg-quarantine']
)
アーキテクチャ
GuardDuty → Security Hub → EventBridge → Lambda (自動修復) → Slack通知
ベストプラクティス
- 全リージョンでCloudTrail有効化
- 組織トレイル作成(単一ログバケット)
- ログファイル検証有効化
- 全アカウントでGuardDuty有効化
- 重要検出の自動応答設定
重要なポイント
- コアコンセプトをしっかり理解する
- ハンズオンコード例で実践する
- 実世界の問題に応用する
- 演習で知識を強化する
さらに学ぶ
- 公式ドキュメント
- GitHubのオープンソースプロジェクト
- コミュニティフォーラムとディスカッション
- 関連コースとチュートリアル