LESSON 30分

ストーリー

田中VPoE
セキュリティスキャンの技術的な側面は理解できたな。次は「コンプライアンスゲート」だ。これは技術とビジネスの交差点にある
あなた
コンプライアンスというと、SOC2やPCI DSSのような規格のことですか?
田中VPoE
そうだ。うちの組織はSOC2 Type IIの認証を受けている。さらに、一部のプロダクトはPCI DSSの対象だ。これらの要件をパイプラインのゲートとして自動化する必要がある
あなた
手動の監査からパイプラインでの自動チェックに移行するわけですね
田中VPoE
そう。ただし、すべてを自動化できるわけではない。自動化できるものと、人間の判断が必要なものの区別が重要だ

コンプライアンスゲートとは

パイプラインの特定のポイントで、コンプライアンス要件への適合性を自動的にチェックし、基準を満たさない場合はパイプラインを停止する仕組みです。

ゲートの配置ポイント

コード → [Gate 1] → ビルド → [Gate 2] → ステージング → [Gate 3] → 本番
         PR品質       セキュリティ       リリース承認
ゲートチェック内容対応規格
Gate 1: PR品質コードレビュー、SAST、SCA、テストカバレッジSOC2 CC8.1
Gate 2: セキュリティコンテナスキャン、SBOM生成、脆弱性閾値PCI DSS 6.3
Gate 3: リリース承認承認者確認、変更記録、監査ログSOC2 CC6.1

SOC2対応のゲート設計

SOC2 Type IIで求められるコントロールをパイプラインに実装します。

変更管理コントロール

SOC2要件パイプライン実装
CC6.1: 論理的アクセス制御ブランチ保護ルール、CODEOWNERS
CC6.8: 不正変更の防止PRレビュー必須、署名付きコミット
CC8.1: 変更管理プロセス承認ワークフロー、変更ログ自動記録
# GitHub Branch Protection: SOC2対応設定
branch_protection:
  required_status_checks:
    strict: true
    contexts:
      - "security/sast"
      - "security/sca"
      - "test/unit"
      - "test/integration"
  required_pull_request_reviews:
    required_approving_review_count: 2
    dismiss_stale_reviews: true
    require_code_owner_reviews: true
  required_signatures: true
  enforce_admins: true

ポリシー as Code

コンプライアンス要件をコードとして定義し、バージョン管理します。

Open Policy Agent (OPA)

# opa/deployment-policy.rego
package deployment

# 本番デプロイには2名以上の承認が必要
deny[msg] {
  input.environment == "production"
  count(input.approvers) < 2
  msg := "本番デプロイには2名以上の承認が必要です"
}

# 承認者はデプロイ実施者と異なる必要がある
deny[msg] {
  input.environment == "production"
  input.deployer == input.approvers[_]
  msg := "デプロイ実施者は承認者になれません(職務分離)"
}

# Critical脆弱性が存在する場合はデプロイを阻止
deny[msg] {
  input.vulnerabilities[v]
  v.severity == "CRITICAL"
  msg := sprintf("Critical脆弱性が検出されました: %s", [v.id])
}

ポリシーの管理

側面方針
保管場所専用リポジトリ(org/compliance-policies
バージョン管理SemVer、変更にはセキュリティチームの承認が必要
テストポリシー自体のユニットテスト
配布パイプラインがポリシーリポジトリを参照

監査ログの自動化

コンプライアンス監査で必要な情報を自動的に記録します。

記録すべきイベント

イベント記録内容
コード変更変更者、レビュー者、承認者、コミットハッシュ
ビルドビルドID、使用イメージ、依存関係一覧
セキュリティスキャンスキャン結果、検出された脆弱性、対処状況
デプロイデプロイ者、承認者、環境、アーティファクトバージョン
ロールバック実施者、理由、影響範囲

監査ダッシュボード

監査ダッシュボード項目:
- デプロイ履歴(誰が、いつ、何を、どこに)
- セキュリティスキャン結果の推移
- 未対処の脆弱性一覧と対応期限
- コンプライアンスゲートの通過率
- ポリシー違反の発生件数と傾向

まとめ

ポイント内容
コンプライアンスゲートパイプラインの3箇所に配置(PR、ビルド後、リリース前)
SOC2対応変更管理、アクセス制御、監査ログを自動化
ポリシー as CodeOPAでコンプライアンス要件をコード化
監査ログ全イベントを自動記録、ダッシュボードで可視化

チェックリスト

  • コンプライアンスゲートの3つの配置ポイントを理解した
  • SOC2要件のパイプライン実装方法を理解した
  • ポリシー as Codeの概念と実装を理解した
  • 監査ログの自動化の重要性を理解した

次のステップへ

次は「サプライチェーンセキュリティ」です。アーティファクトの生成から配布までのサプライチェーン全体をセキュアにする方法を学びましょう。


推定読了時間: 30分