テック技報最新号へ →
セキュリティ

GitHub アカウント 1 つの侵害で本番まで行かれない CD 権限設計

単独の GitHub ユーザーが CD をトリガーできる構成だと、そのアカウントの侵害=インフラ管理者権限の奪取になる。ブランチ保護・複数承認・Environment 保護で「一人では本番を動かせない」状態にする。

@poly_soft · 2026-10-09
#github#ci-cd#least-privilege#aws#oidc

想定される攻撃の流れ(@poly_soft による CAMPFIRE 事案の推測)

  1. CD を単独でトリガーできる GitHub アカウントが侵害される。
  2. マイグレーションファイルから DB スキーマを把握。
  3. GitHub Secrets に DB 資格情報がある。
  4. IaC(Terraform)に public サブネットの EC2 などを追記し、環境変数に secrets.DB_USER 等を流し込む。
  5. CD を実行 → EC2 を踏み台に DB からデータを抜く。

対策

  1. ブランチ保護 / Rulesets: デプロイ対象ブランチへの直接 push 禁止、2 人以上の承認必須、CODEOWNERS レビュー必須、「最後の push は別の人が承認」を有効化。
  2. Environment 保護: production Environment に Required reviewers を設定し、シークレットは Environment シークレットに置く。
  3. 長期シークレットを置かない: AWS などへは OIDC で短命クレデンシャルを取得し、IAM ロールの信頼ポリシーで repo:org/repo:environment:production に限定。
  4. IaC 変更の監視: ネットワーク公開(public サブネット、0.0.0.0/0 の SG)を伴う変更をポリシー(OPA / tfsec 等)で検出・ブロック。
  5. DB 資格情報をデプロイ経路に流さない: アプリは IAM 認証やシークレットマネージャから実行時取得。

出典

X の元の投稿を開く