GitHub アカウント 1 つの侵害で本番まで行かれない CD 権限設計
単独の GitHub ユーザーが CD をトリガーできる構成だと、そのアカウントの侵害=インフラ管理者権限の奪取になる。ブランチ保護・複数承認・Environment 保護で「一人では本番を動かせない」状態にする。
想定される攻撃の流れ(@poly_soft による CAMPFIRE 事案の推測)
- CD を単独でトリガーできる GitHub アカウントが侵害される。
- マイグレーションファイルから DB スキーマを把握。
- GitHub Secrets に DB 資格情報がある。
- IaC(Terraform)に public サブネットの EC2 などを追記し、環境変数に
secrets.DB_USER等を流し込む。 - CD を実行 → EC2 を踏み台に DB からデータを抜く。
対策
- ブランチ保護 / Rulesets: デプロイ対象ブランチへの直接 push 禁止、2 人以上の承認必須、CODEOWNERS レビュー必須、「最後の push は別の人が承認」を有効化。
- Environment 保護:
productionEnvironment に Required reviewers を設定し、シークレットは Environment シークレットに置く。 - 長期シークレットを置かない: AWS などへは OIDC で短命クレデンシャルを取得し、IAM ロールの信頼ポリシーで
repo:org/repo:environment:productionに限定。 - IaC 変更の監視: ネットワーク公開(public サブネット、0.0.0.0/0 の SG)を伴う変更をポリシー(OPA / tfsec 等)で検出・ブロック。
- DB 資格情報をデプロイ経路に流さない: アプリは IAM 認証やシークレットマネージャから実行時取得。
出典
- @poly_soft · 2026-04-24
- @yusukebe · 2026-06-07 (開発者が攻撃対象になった時代の開発環境・CI/CD)