ストーリー
田
田中VPoE
ランディングゾーンが設計できた。次はコンプライアンスの自動化だ。ポリシーを策定しても、手動でチェックしていたら追いつかない。自動化こそがガバナンスをスケールさせる鍵だ
あなた
手動監査だと、数百のアカウントと数千のリソースをチェックするのは不可能ですよね
あ
田
田中VPoE
そうだ。うちの環境だけでも数十アカウント、数千リソースが存在する。これを人間がチェックするのは現実的ではない。Policy as Code — ポリシーをコードで表現し、自動的にチェック・修復する仕組みを構築する
Policy as Code の考え方
従来型 vs Policy as Code
| 観点 | 従来型(手動) | Policy as Code |
|---|
| チェック方法 | 手動チェックリスト | 自動スキャン |
| チェック頻度 | 四半期/年次 | リアルタイム/日次 |
| カバレッジ | サンプリング | 全リソース |
| レスポンス | 指摘→修正依頼→確認 | 自動検出→自動修復 |
| ドリフト検出 | 困難 | 自動検出 |
| スケーラビリティ | 低い | 高い |
| エビデンス | 手動記録 | 自動生成 |
コンプライアンスチェックの分類
| フェーズ | チェックタイミング | ツール例 |
|---|
| 設計時 | IaCコードのレビュー時 | tfsec, checkov, cfn-nag |
| デプロイ時 | CI/CDパイプライン内 | OPA/Gatekeeper, Sentinel |
| 稼働時 | リアルタイム/定期スキャン | AWS Config, Security Hub |
| 監査時 | 定期監査レポート生成 | AWS Audit Manager |
継続的コンプライアンスの実装
AWS Config Rules の活用
| ルール名 | チェック内容 | 対象 | 修復 |
|---|
| encrypted-volumes | EBSボリュームの暗号化 | 全EC2 | 自動暗号化適用 |
| s3-bucket-public-read-prohibited | S3パブリック読取禁止 | 全S3 | 自動ブロック |
| iam-root-access-key-check | ルートアクセスキー禁止 | 全アカウント | アラート通知 |
| required-tags | 必須タグの存在確認 | 全リソース | 通知→停止 |
| rds-multi-az-support | RDSマルチAZ確認 | 本番DB | アラート通知 |
| vpc-flow-logs-enabled | VPCフローログ有効化 | 全VPC | 自動有効化 |
コンプライアンスダッシュボード
全社コンプライアンススコア: 87% [████████░░]
部門別スコア:
Engineering 92% [█████████░]
IoT Platform 88% [████████░░]
Data Team 84% [████████░░]
Marketing 79% [███████░░░] ← 要改善
HR/Admin 73% [███████░░░] ← 要改善
ルール別準拠率:
暗号化 98% [█████████░]
タグ付け 82% [████████░░]
ネットワーク 91% [█████████░]
IAM 85% [████████░░]
ログ取得 95% [█████████░]
未準拠リソース: 342件
Critical: 12件(即時対応必要)
High: 45件(72h以内に対応)
Medium: 128件(次スプリントで対応)
Low: 157件(計画的に対応)
セキュリティコンプライアンス
フレームワーク別の自動チェック
| フレームワーク | チェック項目数 | 自動化率 | ツール |
|---|
| CIS AWS Benchmark | 約50項目 | 90% | Security Hub |
| AWS Foundational Security | 約200項目 | 95% | Security Hub |
| PCI DSS | 約400項目 | 60% | Audit Manager |
| SOC 2 | 約60項目 | 70% | Audit Manager |
| ISO 27001 | 約100項目 | 50% | Audit Manager + 手動 |
セキュリティ自動修復パイプライン
異常検出 → 分析 → 修復判断 → 実行 → 記録
例: 公開S3バケットの検出と修復
1. Config Rule検出: s3-bucket-public-read-prohibited
2. EventBridge: イベントをキャプチャ
3. Lambda: 自動修復ロジック実行
├── パブリックアクセスをブロック
├── バケットポリシーを修正
└── 所有者に通知
4. CloudWatch: 修復完了を記録
5. チケット: 自動で監査記録を作成
ドリフト検出と是正
構成ドリフトの種類
| ドリフト種類 | 説明 | 影響 |
|---|
| IaCドリフト | IaCで管理されている設定がコンソールから変更された | IaCとの乖離 |
| ポリシードリフト | ポリシーに準拠していたリソースが変更により違反状態に | コンプライアンス違反 |
| ベースラインドリフト | セキュリティベースラインからの逸脱 | セキュリティリスク |
ドリフト対応プロセス
| ステップ | 内容 | 自動化 |
|---|
| 1. 検出 | Config/CloudFormation Drift Detection | 自動 |
| 2. 分類 | 重要度の判定(Critical/High/Medium/Low) | 自動 |
| 3. 通知 | 担当者への通知 | 自動 |
| 4. 是正 | IaCの更新 or 設定の修復 | 一部自動、一部手動 |
| 5. 予防 | 再発防止策の実装(SCPの追加等) | 手動 |
監査レポートの自動生成
レポート体系
| レポート | 頻度 | 対象 | 内容 |
|---|
| デイリーレポート | 日次 | CoE | 新規違反、修復状況、重要アラート |
| ウィークリーレポート | 週次 | 部門長 | 部門別スコア、トレンド、アクション |
| マンスリーレポート | 月次 | CTO/CISO | 全社コンプライアンス状況、リスク評価 |
| クォータリーレポート | 四半期 | 経営会議 | 監査結果サマリー、改善計画の進捗 |
まとめ
| ポイント | 内容 |
|---|
| Policy as Code | ポリシーをコードで表現し、自動チェック・修復 |
| 4フェーズチェック | 設計時→デプロイ時→稼働時→監査時の多層チェック |
| ドリフト管理 | 構成のドリフトを自動検出し、是正する仕組み |
| 自動レポート | ステークホルダーごとに適切なレポートを自動生成 |
チェックリスト
次のステップへ
次は演習です。実際の組織シナリオを使って、クラウドガバナンスポリシーとランディングゾーンを設計しましょう。
推定読了時間: 30分