ストーリー
田
田中VPoE
ガードレールの実装を学んだ。最後に「Compliance as Code」だ。コンプライアンス要件をコードとして定義し、自動的に準拠状況をチェックする
あなた
Month 4のセキュリティパイプラインでも少し触れましたね
あ
田
田中VPoE
そうだ。今回はプラットフォームの文脈で、よりシステマティックに実装する。プラットフォームのガードレールとコンプライアンスチェックを統合し、「コンプライアンスに準拠した状態がデフォルト」になるよう設計する
あなた
開発者がコンプライアンスを意識しなくても、プラットフォームが自動的に準拠させるということですか
あ
田
田中VPoE
その通り。「コンプライアンス対応のための特別な作業」をゼロにする。Golden Pathに沿っていれば自動的にコンプライアンスに準拠する。これがPlatform Engineeringにおけるコンプライアンスの理想形だ
Compliance as Codeのアーキテクチャ
全体構成
Compliance as Code の構成:
1. ポリシー定義(Git管理)
├── security-policies/ # セキュリティポリシー
├── cost-policies/ # コスト管理ポリシー
├── operational-policies/ # 運用ポリシー
└── compliance-mappings/ # 規制へのマッピング
2. ポリシーエンジン
├── OPA(Open Policy Agent) # 汎用ポリシーエンジン
├── Kyverno # Kubernetes Admission
├── Checkov # IaCスキャン
└── Semgrep # コードセキュリティ
3. 実行ポイント
├── CI/CDパイプライン # PR時、ビルド時
├── Kubernetes Admission # デプロイ時
├── 定期スキャン # 日次、週次
└── リアルタイム監視 # 稼働中
4. レポーティング
├── コンプライアンスダッシュボード
├── 監査レポート自動生成
└── 違反通知(Slack、メール)
ポリシーの分類
CloudOps社のポリシーカタログ
| カテゴリ | ポリシー | 強制力 | チェックツール |
|---|
| セキュリティ | コンテナはrootで実行しない | Enforce | Kyverno |
| セキュリティ | イメージは承認レジストリのみ | Enforce | Kyverno |
| セキュリティ | シークレットはVault経由のみ | Enforce | OPA |
| セキュリティ | TLS 1.2以上を強制 | Enforce | OPA |
| 運用 | ヘルスチェック必須 | Enforce | OPA |
| 運用 | リソースlimits必須 | Enforce | Kyverno |
| 運用 | SLO定義必須(production) | Enforce | OPA |
| コスト | xlargeリソースは承認制 | Audit | OPA |
| コスト | 未使用リソースの警告 | Audit | カスタムスキャン |
| 命名規則 | サービス名のフォーマット | Enforce | OPA |
ポリシーのライフサイクル
ポリシーのライフサイクル:
1. Draft(草案)
ポリシーチームが草案作成
↓
2. Review(レビュー)
開発者代表を含むレビュー
↓
3. Audit(監査モード)
違反を検出するが、ブロックしない
→ 影響範囲を確認
↓
4. Enforce(強制モード)
違反を自動ブロック
↓
5. Monitor(モニタリング)
定期的な有効性レビュー
コンプライアンスダッシュボード
ダッシュボードの構成
| ビュー | 対象 | 表示内容 |
|---|
| エグゼクティブ | CTO、CISO | 全社コンプライアンススコア、規制準拠率 |
| チーム | テックリード | チームのポリシー準拠率、違反一覧 |
| サービス | 開発者 | 個別サービスの準拠状況、修正ガイド |
コンプライアンスレポートの自動生成
自動生成レポート:
月次コンプライアンスレポート:
- 全サービスのポリシー準拠率: 94%
- 違反件数の推移(前月比 -8件)
- 新規ポリシーの適用状況
- 未修正の違反一覧(優先度順)
監査用エビデンス:
- ポリシー定義(Git履歴)
- チェック実行ログ(日時、結果、対象)
- 違反の検出から修正までの履歴
- 承認フローのログ
プラットフォームによる自動準拠
Golden Pathに組み込まれたコンプライアンス
| コンプライアンス要件 | 手動対応の場合 | Golden Pathの場合 |
|---|
| TLS暗号化 | Ingress設定にTLS設定を手書き | Application CRDでtls: true→ cert-managerが自動発行 |
| 監査ログ | ロガーを設定し出力形式を合わせる | @cloudops/loggerが自動で監査ログ出力 |
| シークレット管理 | Vaultの設定を理解し手動設定 | テンプレートがVault連携を自動設定 |
| 脆弱性スキャン | SASTツールを選定し設定 | CI/CDテンプレートにSemgrep組み込み済み |
| ネットワーク分離 | NetworkPolicyを手書き | Application CRDからNetworkPolicy自動生成 |
| バックアップ | RDSのバックアップ設定を手動 | DBカタログアイテムで自動設定 |
「最高のコンプライアンスは、開発者がコンプライアンスの存在を意識しないコンプライアンスだ。Golden Pathに沿っていれば自動的に準拠している。これがPlatform Engineeringの真価だ」 — 田中VPoE
まとめ
| ポイント | 内容 |
|---|
| Compliance as Code | コンプライアンス要件をコードで定義し自動チェック |
| ポリシーライフサイクル | Draft → Review → Audit → Enforce → Monitor |
| ダッシュボード | エグゼクティブ、チーム、サービスの3ビュー |
| 自動準拠 | Golden Pathに沿えば自動的にコンプライアンス準拠 |
チェックリスト
次のステップへ
次は演習です。CloudOps社のGolden Pathとガードレールを設計しましょう。
推定読了時間: 30分