ストーリー
田
田中VPoE
目標アーキテクチャ、プラットフォーム戦略、統合設計が揃った。だが、設計図があっても「全チームが同じ方向に向かう」仕組みがなければ、またバラバラになる
あなた
技術標準とガバナンスで一貫性を保つわけですね
あ
田
田中VPoE
そうだ。ただし、過度な標準化はイノベーションを殺す。Month 8で学んだように、「自律と統制のバランス」が鍵だ。チームの自律性を尊重しながら、一貫性を担保する。これが技術ガバナンスの本質だ
田
田中VPoE
だからこそ「自動化されたガードレール」が重要だ。人間の承認ではなく、自動的にポリシーが適用される仕組みを作る
技術標準の体系
3層の標準化モデル
┌────────────────────────────────────────────┐
│ Layer 3: 推奨(Recommended) │
│ ・ベストプラクティスガイド │
│ ・参考テンプレート │
│ ・技術レーダーのTRIAL/ASSESS │
│ → チームの裁量で採用/不採用を判断 │
├────────────────────────────────────────────┤
│ Layer 2: 標準(Standard) │
│ ・コーディング規約 │
│ ・API設計ガイドライン │
│ ・テスト戦略ガイドライン │
│ → 原則として従う。例外は技術リードの承認が必要 │
├────────────────────────────────────────────┤
│ Layer 1: 必須(Mandatory) │
│ ・セキュリティポリシー │
│ ・データ分類・取り扱い規程 │
│ ・コンプライアンス要件 │
│ → 例外なし。自動化されたガードレールで強制 │
└────────────────────────────────────────────┘
技術標準カタログ
| カテゴリ | 標準名 | 層 | 適用範囲 | 関連Month |
|---|
| CI/CD | GitHub Actions標準パイプライン | 必須 | 全リポジトリ | M1 |
| CI/CD | テスト自動化ガイドライン | 標準 | 全チーム | M1 |
| セキュリティ | セキュリティスキャン必須化 | 必須 | 全パイプライン | M4 |
| セキュリティ | 秘密情報管理ポリシー | 必須 | 全チーム | M4 |
| 信頼性 | SLI/SLO定義テンプレート | 標準 | 全サービス | M2 |
| 信頼性 | インシデント対応プロセス | 必須 | 全チーム | M2 |
| クラウド | IaCテンプレート(Terraform) | 標準 | インフラ変更時 | M5 |
| クラウド | コスト管理タグ付けポリシー | 必須 | 全リソース | M5 |
| API | REST API設計ガイドライン | 標準 | 外部/内部API | M6 |
| データ | データ分類・ラベリング規程 | 必須 | 全データ | M7 |
| データ | データ品質基準 | 標準 | 重要データセット | M7 |
| AI | AI利用ガイドライン | 必須 | 全AI利用 | M3 |
| AI | モデル品質基準 | 標準 | 本番AIシステム | M3 |
Policy as Code
自動化されたガードレール
ポリシー定義(OPA/Rego)
│
↓
┌──────────────────────────────────────┐
│ Policy Engine (OPA) │
├──────────┬──────────┬───────────────┤
│ CI/CD │ クラウド │ Kubernetes │
│ ゲート │ ゲート │ Admission │
│ │ │ Controller │
└──────────┴──────────┴───────────────┘
│ │ │
↓ ↓ ↓
パイプライン Terraform Pod作成の
の通過/ブロック plan検証 許可/拒否
ポリシー例
# セキュリティポリシー: コンテナイメージは承認済みレジストリからのみ許可
package kubernetes.admission
deny[msg] {
input.request.kind.kind == "Pod"
container := input.request.object.spec.containers[_]
not startswith(container.image, "123456789.dkr.ecr.ap-northeast-1.amazonaws.com/")
not startswith(container.image, "ghcr.io/techforward/")
msg := sprintf("未承認のコンテナレジストリ: %v", [container.image])
}
# コスト管理ポリシー: 全リソースにコストタグ必須
deny[msg] {
input.resource_type == "aws_instance"
not input.resource.tags.cost_center
msg := "cost_centerタグが設定されていません"
}
# データポリシー: PIIデータは暗号化必須
deny[msg] {
input.resource_type == "aws_rds_instance"
input.resource.tags.data_classification == "pii"
not input.resource.storage_encrypted
msg := "PIIデータを含むRDSは暗号化が必須です"
}
技術ガバナンス体制
ガバナンス組織
┌─────────────────────────────────────────┐
│ Technology Governance Board │
│ CTO、VPoE、各部門技術リード │
│ ・アーキテクチャ原則の策定・更新 │
│ ・技術レーダーの四半期レビュー │
│ ・重大な技術判断の承認 │
│ 開催頻度: 月1回 │
└────────────────┬────────────────────────┘
│
┌────────────┼────────────┐
↓ ↓ ↓
┌────────┐ ┌─────────┐ ┌─────────┐
│ アーキ │ │ セキュリ │ │ データ │
│ テクチャ│ │ ティ │ │ ガバナンス│
│ レビュー│ │ レビュー │ │ レビュー │
│ 委員会 │ │ 委員会 │ │ 委員会 │
└────────┘ └─────────┘ └─────────┘
週1回 週1回 隔週
ガバナンスプロセス
| プロセス | 目的 | 頻度 | 参加者 |
|---|
| 技術レーダーレビュー | 技術選定の見直し | 四半期 | TGB全員 |
| ADR(Architecture Decision Record)レビュー | 重要な技術判断の承認 | 随時 | アーキテクチャ委員会 |
| セキュリティ監査 | コンプライアンス確認 | 月次 | セキュリティ委員会 |
| ポリシー更新 | ガードレールの改善 | 月次 | 各委員会 |
| 技術健全性レビュー | 技術的負債の追跡 | 四半期 | TGB + チームリード |
| 例外申請レビュー | 標準からの逸脱承認 | 随時 | 該当委員会 |
例外管理プロセス
例外申請
│
↓
┌──────────────────────┐
│ 申請内容の確認 │
│ ・どの標準からの逸脱か │
│ ・なぜ必要か │
│ ・代替案の検討結果 │
│ ・リスク評価 │
│ ・期限(暫定措置か永続か)│
└──────────┬───────────┘
│
┌──────┴──────┐
↓ ↓
承認 却下
│ │
↓ ↓
期限付き 代替案の
例外登録 提案
│
↓
定期レビュー
(解消計画の追跡)
コンプライアンスの自動化
Compliance as Code
| コンプライアンス要件 | 自動化手段 | 検証頻度 |
|---|
| SOC2 アクセス制御 | IAMポリシー自動監査 | 日次 |
| SOC2 変更管理 | Git + CI/CDの監査ログ | 継続的 |
| ISMS 情報資産管理 | データカタログ + 自動分類 | 日次 |
| PCI DSS 暗号化 | IaCポリシーチェック | デプロイ時 |
| 個人情報保護法 | PIIスキャン + マスキング | データ取り込み時 |
まとめ
| ポイント | 内容 |
|---|
| 3層標準化 | 必須/標準/推奨の3層で、一貫性と自律性のバランスを取る |
| Policy as Code | OPAで自動ガードレールを実装し、人手の承認を最小化 |
| ガバナンス体制 | TGBを頂点に、アーキテクチャ/セキュリティ/データの3委員会 |
| 例外管理 | 標準からの逸脱は期限付きで承認し、定期レビューで追跡 |
| コンプライアンス自動化 | Compliance as Codeで監査対応コストを削減 |
チェックリスト
次のステップへ
次は演習です。Step 2で学んだ目標アーキテクチャ、プラットフォーム戦略、統合設計、技術標準を統合して、TechForward社の目標アーキテクチャを設計しましょう。
推定読了時間: 30分