Instiq
第4章 · GitHub Actions の管理·v1.0.0·更新 2026/6/15·読了目安 約14分

変更要約: GH-100 第4章を新規作成(ガバナンスとランナー=再利用可能コンポーネント配布・Actions 組織ポリシー[許可リスト/SHA 必須化/フォークPR承認]・ランナーグループ/ホスト型vsセルフホスト・IP 許可リスト/Azure プライベートネットワーキング・性能監視[ラベル不一致/自動スケール]、暗号化シークレット=組織/リポジトリ/環境のスコープと優先順位・組織レベル一元管理・REST API 自動化・サードパーティ Vault 連携(OIDC で実行時取得))

4.2暗号化シークレットと外部 Vault 連携

この節の要点

シークレットのスコープとアクセスの定義、組織レベルとリポジトリレベルでのシークレットの構成、そしてサードパーティの Vault(シークレット管理基盤)との連携を、管理者の視点で理解します。

ワークフローはデプロイや外部サービス連携のために シークレット(API トークン・接続情報)を使います。管理者は、これらの秘密が 最小限の範囲 でのみアクセスされ、漏洩しないように統制します。GH-100 では、シークレットの スコープとアクセス組織/リポジトリレベルの構成、そして 外部 Vault との連携 が問われます。

4.2.1シークレットのスコープとアクセス

GitHub Actions のシークレットは 組織・リポジトリ・環境(environment) の 3 レベルにスコープでき、同名は 狭いスコープが優先(環境 > リポジトリ > 組織)です(GH-200 と共通)。組織レベル のシークレットは複数リポで共有でき、アクセスできるリポジトリを限定 できます。環境シークレット は環境の保護ルール(必須レビュアー等)と組み合わせ、本番デプロイのみで使う、といった統制が可能です。管理者は「必要なワークフローにだけ最小限の秘密を見せる」設計をします。

4.2.2組織/リポジトリレベルの構成

共通の認証情報(例:社内レジストリのトークン)は 組織レベル に置き、許可したリポジトリだけがアクセスできるようにします——リポごとに重複登録せず、ローテーション時も一箇所で更新できます。リポジトリ固有の値は リポジトリレベル に置きます。シークレットはログ上で自動マスクされますが、echo や式に出さない など漏えい防止の運用が前提です。シークレットは REST API からも作成・更新でき(書き込みは公開鍵で暗号化)、多数リポへの配布やローテーションを自動化できます(GH-200 と共通)。

4.2.3サードパーティ Vault 連携

企業が 外部のシークレット管理基盤(Vault)(HashiCorp Vault・Azure Key Vault・AWS Secrets Manager 等)を使っている場合、ワークフローから OIDC 等で Vault に接続し、実行時に動的に秘密を取得 する構成にできます。これにより、GitHub にシークレットを 長期保存せず、企業の Vault を 単一の真実のソース として一元管理できます——ローテーションや監査も Vault 側に集約されます。OIDC(GH-200)と組み合わせると、長期クラウド資格情報も排除できます。

試験ポイント

頻出:
①シークレットは組織/リポジトリ/環境でスコープ、同名は狭いスコープ優先(環境>リポ>組織)。組織シークレットは許可リポを限定
②共通認証情報は組織レベルで一元管理(ローテーション容易)、漏えい防止に echo/式に出さないREST API で配布/ローテーション自動化。
サードパーティ VaultOIDC 等で接続し実行時に動的取得=GitHub に長期保存しない。

注意

混同・注意:
①同名シークレットは狭いスコープ(環境)が優先——意図しない上書きに注意。
②組織シークレットはアクセスできるリポを限定する(全リポ公開にしない)。
③自動マスクは万能でない——加工出力で漏れ得る。
④Vault 連携は「GitHub に長期保存しない」ための仕組みで、OIDC と併用して長期資格情報も排除する。

スコープ・組織レベル一元管理・OIDC・サードパーティ Vault の図。
同名は狭いスコープ優先

4.2.4この節のまとめ

  • シークレットは組織/リポジトリ/環境でスコープ、同名は狭いスコープ優先、組織シークレットは許可リポを限定
  • 共通認証情報は組織レベルで一元管理、REST API で配布/ローテーション自動化、echo/式に出さない
  • サードパーティ Vault に OIDC 等で接続し実行時に動的取得=GitHub に長期保存しない
  • OIDC と併用して長期クラウド資格情報も排除

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 複数リポで共通のデプロイトークンを一元管理し、許可したリポだけがアクセスできるようにしたいです。どこに置きますか?

Q2. 組織・リポジトリ・環境に同名のシークレットがある場合、実際に使われるのは?

Q3. 企業の HashiCorp Vault や Azure Key Vault を単一の真実のソースとし、GitHub にシークレットを長期保存しない構成にしたいです。適切な方法は?

Q4. 多数のリポジトリへ同じシークレットを配布し、定期的に自動ローテーションしたいです。使う手段は?

Q5. 環境シークレットの利点として正しいものはどれですか?

Q6. シークレットの漏えい防止として正しい運用はどれですか?

理解度を確認第4章「GitHub Actions の管理」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。