📌 結論:自動で「防犯カメラ」を設置してくれるシステム!
AWS Configは「CloudTrail(防犯カメラ)が無効になっていたら自動で有効化」してくれます
AWS Config
ビルの管理人
24時間体制で全フロアを
監視・チェック
24時間体制で全フロアを
監視・チェック
管理ルール
ビルのルールブック
「全フロアに防犯カメラ
必須」などのルール
「全フロアに防犯カメラ
必須」などのルール
CloudTrail
防犯カメラ
誰がいつ何をしたか
すべて記録
誰がいつ何をしたか
すべて記録
修復アクション
自動修理サービス
カメラがなければ
自動で設置!
カメラがなければ
自動で設置!
🏢 ビルの防犯システムで完全理解!
🏢 AWSアカウント(高層ビル)
5階
開発環境
開発環境
📹 CloudTrail有効
✅ 準拠
✅ 準拠
4階
本番環境
本番環境
📹 CloudTrail有効
✅ 準拠
✅ 準拠
3階
テスト環境
テスト環境
❌ CloudTrail無効
⚠️ 非準拠
➡️
⚠️ 非準拠
🔧 自動修復!
📹 有効化完了
📹 有効化完了
2階
ステージング
ステージング
📹 CloudTrail有効
✅ 準拠
✅ 準拠
AWS Config(管理人室)
「3階に防犯カメラがない!ルール違反だ!」
「SSM Automationに連絡して、自動で設置させよう!」
「SSM Automationに連絡して、自動で設置させよう!」
🔄 AWS-EnableCloudTrail 修復アクションの流れ
Step 1: 検出
ConfigがCloudTrailの状態をチェック
➡️
Step 2: 評価
管理ルールに照らして準拠/非準拠を判定
➡️
Step 3: 修復
非準拠ならSSMが自動でCloudTrailを有効化
➡️
Step 4: 確認
再評価で準拠状態になったことを確認
🏢 ビルのたとえ:
管理人が巡回 → カメラがないフロアを発見 →
業者に連絡して自動設置 → 設置完了を確認!
🧩 4つのコンポーネントを詳しく理解
AWS Config
🏢 たとえ:ビルの管理人
24時間体制で全フロアを巡回し、ルール違反がないかチェック。問題を見つけたら即座に報告。
24時間体制で全フロアを巡回し、ルール違反がないかチェック。問題を見つけたら即座に報告。
- 📊 AWSリソースの設定を継続的に記録
- 🔍 設定変更の履歴を追跡
- ⚖️ ルールに基づいて準拠状態を評価
- 🔔 非準拠を検出したら通知
管理ルール
(cloudtrail-enabled)
(cloudtrail-enabled)
🏢 たとえ:ビルのルールブック
「全フロアに防犯カメラを設置すること」というルール。AWSが事前に用意してくれている。
「全フロアに防犯カメラを設置すること」というルール。AWSが事前に用意してくれている。
- ✅ AWSが作成済みのルール(Managed Rule)
- 🎯 CloudTrailが有効かをチェック
- ⚡ 設定変更時に自動評価
- 📝 カスタマイズ不要ですぐ使える
CloudTrail
🏢 たとえ:防犯カメラ
誰が・いつ・何をしたかを24時間録画。不審な動きがあれば証拠として活用できる。
誰が・いつ・何をしたかを24時間録画。不審な動きがあれば証拠として活用できる。
- 📝 API呼び出しを記録(監査ログ)
- 🔐 セキュリティ調査に必須
- 📊 コンプライアンス要件を満たす
- ⚠️ 無効だと何が起きたか分からない!
修復アクション
(AWS-EnableCloudTrail)
(AWS-EnableCloudTrail)
🏢 たとえ:自動修理サービス
管理人から連絡を受けたら、即座にカメラを設置しに来てくれる業者さん。
管理人から連絡を受けたら、即座にカメラを設置しに来てくれる業者さん。
- 🤖 SSM Automationドキュメントを使用
- ⚡ 非準拠検出時に自動実行
- 📹 CloudTrailを自動で有効化
- 🔄 手動実行も可能
⚙️ SSM Automation(自動修復の実行役)
非準拠を検出
➡️
SSM Automation
ドキュメント実行
ドキュメント実行
➡️
CloudTrail有効化
📜 AWS-EnableCloudTrail ドキュメント
動作内容:
1. 指定リージョンでCloudTrail証跡を作成
2. S3バケットにログを保存
3. マルチリージョン証跡として設定(オプション)
4. ログファイル検証を有効化
1. 指定リージョンでCloudTrail証跡を作成
2. S3バケットにログを保存
3. マルチリージョン証跡として設定(オプション)
4. ログファイル検証を有効化
🏢 ビルのたとえ:
SSM Automation = 防犯カメラ設置業者
管理人(Config)から「3階にカメラがない!」と連絡が来たら
自動で現場に行って設置作業を完了させる
🔧 修復アクション設定の5ステップ
1
AWS Configを有効化
まず管理人室を設置!AWS Configをリージョンで有効にして、リソースの記録を開始します。
2
管理ルール「cloudtrail-enabled」を追加
ルールブックにルールを追加。「CloudTrailが有効であること」というチェック項目を設定します。
3
修復アクションを設定
ルールに「AWS-EnableCloudTrail」の修復アクションを紐付け。非準拠時に自動実行されるよう設定します。
4
IAMロールを設定
SSM Automationがクラウドトレイルを有効化できる権限を持ったIAMロールを指定します。
5
自動/手動を選択
自動修復: 非準拠検出時に即座に実行
手動修復: 管理者の承認後に実行
手動修復: 管理者の承認後に実行
📊 自動修復 vs 手動修復 比較
| 比較項目 | 🤖 自動修復 | 👆 手動修復 |
|---|---|---|
| ⚡ 対応速度 | 即座に実行(秒単位) | 承認待ちで遅延あり |
| 👀 管理者介入 | 不要 | 必要(承認ボタン) |
| 🔐 リスク管理 | 意図しない変更の可能性 | 確認してから実行 |
| 🎯 おすすめシーン | クリティカルな設定 (CloudTrail必須) |
影響範囲が大きい設定 |
| 🏢 ビルのたとえ | 無人で自動設置 | 管理人の許可後に設置 |
💼 どんな時に使う?ユースケース
金融業界のコンプライアンス
規制要件でCloudTrailの有効化が必須。うっかり無効化されても自動で復旧させる。
✅ 監査で「常に有効だった」と証明可能
医療業界のセキュリティ
HIPAA要件で監査ログが必須。患者データへのアクセスを常に記録する必要がある。
✅ データアクセスの完全な追跡を保証
マルチアカウント環境
複数のAWSアカウントを管理。新規アカウント作成時も自動でCloudTrailを有効化。
✅ 全アカウントで一貫したセキュリティ
DevOps環境
開発者が誤ってCloudTrailを無効化しても、自動で復旧。インシデント調査に備える。
✅ ヒューマンエラーを自動でリカバリー
📝 CloudFormationでの設定例
# AWS Config ルールと修復アクションの設定 Resources: # 管理ルール: CloudTrailが有効かチェック CloudTrailEnabledRule: Type: AWS::Config::ConfigRule Properties: ConfigRuleName: cloudtrail-enabled Source: Owner: AWS SourceIdentifier: CLOUD_TRAIL_ENABLED # 修復アクション: 自動でCloudTrailを有効化 EnableCloudTrailRemediation: Type: AWS::Config::RemediationConfiguration Properties: ConfigRuleName: !Ref CloudTrailEnabledRule TargetType: SSM_DOCUMENT TargetId: AWS-EnableCloudTrail Automatic: true # 自動修復を有効化 MaximumAutomaticAttempts: 5 RetryAttemptSeconds: 60 Parameters: AutomationAssumeRole: StaticValue: Values: - !GetAtt RemediationRole.Arn S3BucketName: StaticValue: Values: - !Ref CloudTrailBucket
⚠️
設定時の注意事項
1. IAMロールの権限:
修復アクションを実行するIAMロールには、CloudTrailを作成・変更する権限が必要です。最小権限の原則に従って設定しましょう。
2. S3バケットの事前準備:
CloudTrailのログを保存するS3バケットを事前に作成しておく必要があります。バケットポリシーも適切に設定してください。
3. リージョン設定:
マルチリージョン証跡を作成する場合は、パラメータで明示的に指定する必要があります。
4. コスト考慮:
CloudTrailを有効にするとS3へのログ保存でストレージ料金が発生します。ライフサイクルポリシーの設定も検討しましょう。
修復アクションを実行するIAMロールには、CloudTrailを作成・変更する権限が必要です。最小権限の原則に従って設定しましょう。
2. S3バケットの事前準備:
CloudTrailのログを保存するS3バケットを事前に作成しておく必要があります。バケットポリシーも適切に設定してください。
3. リージョン設定:
マルチリージョン証跡を作成する場合は、パラメータで明示的に指定する必要があります。
4. コスト考慮:
CloudTrailを有効にするとS3へのログ保存でストレージ料金が発生します。ライフサイクルポリシーの設定も検討しましょう。
💡
ベストプラクティス
1. 組織全体で展開:
AWS Organizationsと組み合わせて、全アカウントに一括でルールを適用しましょう。
2. SNS通知を設定:
修復アクションの実行結果をSNSで通知するよう設定すると、何が起きたか把握できます。
3. 最初は手動修復で:
いきなり自動修復を有効にせず、まず手動修復で動作を確認してから自動化しましょう。
4. CloudWatch Logsと連携:
修復アクションのログをCloudWatch Logsに送信して、トラブルシューティングに備えましょう。
5. 複数ルールを組み合わせ:
CloudTrailだけでなく、S3バケット暗号化やセキュリティグループなど、他のルールも組み合わせて多層防御を実現しましょう。
AWS Organizationsと組み合わせて、全アカウントに一括でルールを適用しましょう。
2. SNS通知を設定:
修復アクションの実行結果をSNSで通知するよう設定すると、何が起きたか把握できます。
3. 最初は手動修復で:
いきなり自動修復を有効にせず、まず手動修復で動作を確認してから自動化しましょう。
4. CloudWatch Logsと連携:
修復アクションのログをCloudWatch Logsに送信して、トラブルシューティングに備えましょう。
5. 複数ルールを組み合わせ:
CloudTrailだけでなく、S3バケット暗号化やセキュリティグループなど、他のルールも組み合わせて多層防御を実現しましょう。
❓ よくある質問
🤔
修復アクションが失敗したらどうなる?
設定したリトライ回数まで自動で再試行されます。それでも失敗した場合は、Config画面で「失敗」ステータスが表示され、SNS通知(設定している場合)が送られます。CloudWatch Logsで失敗理由を確認して、IAM権限やパラメータを見直しましょう。
🤔
すでにCloudTrailが有効な場合は?
AWS Configは「準拠」と判定し、修復アクションは実行されません。ルールは定期的に(または設定変更時に)評価されるので、将来無効化されても自動で検出・修復されます。
🤔
カスタムルールでも修復アクションを使える?
はい!Lambda関数で作成したカスタムルールにも修復アクションを設定できます。ただし、修復用のSSMドキュメントは自分で作成するか、既存のAWS管理ドキュメントを使用する必要があります。
🤔
修復アクションの実行を一時的に止めたい場合は?
修復設定で「Automatic」をfalseに変更するか、修復設定自体を削除します。ルール自体は残るので、非準拠の検出は継続されますが、自動修復は実行されなくなります。
🎓 まとめ
AWS Config
ビルの管理人
24時間監視して
ルール違反を検出
24時間監視して
ルール違反を検出
管理ルール
ルールブック
CloudTrail必須という
ルールを定義
CloudTrail必須という
ルールを定義
修復アクション
自動修理サービス
問題を見つけたら
即座に自動修復
問題を見つけたら
即座に自動修復
CloudTrail
防犯カメラ
誰が何をしたか
すべて記録
誰が何をしたか
すべて記録