GitHub ActionsはCI/CDの強力なツールですが、認証情報の扱い方を誤ると深刻なセキュリティリスクにつながります。開発現場では、トークンやシークレットの漏洩が権限昇格の入り口になるケースが少なくありません。ここでは、実際のリスクパターンと実践的な対策を整理します。
📑目次
GitHub Actionsにおける認証情報リスクの概要
GitHub Actionsでは、さまざまな認証情報が利用されます。代表的なものはPersonal Access Token (PAT)、GitHub Appのインストールトークン、OIDC経由のクラウド認証情報です。これらのうち、PATは有効期限が長く、権限範囲が広いため漏洩時の影響が大きい傾向があります。一方、OIDCは一時的なトークンを発行するため、漏洩リスクを大幅に低減できます。
実際のインシデントでは、PATがリポジトリにハードコードされたまま公開され、攻撃者に悪用される事例が報告されています。こうしたリスクを正しく理解することが、第一歩です。
OIDCを活用した短期認証のメリットと導入手順
OIDC (OpenID Connect) を利用すると、GitHub Actionsからクラウドプロバイダー (AWS、GCP、Azure) へ一時的な認証情報を取得できます。長期的なクレデンシャルを保存する必要がなく、権限昇格の機会を減らせます。
導入手順は以下の通りです。まず、クラウド側でOIDCプロバイダーを設定し、GitHubリポジトリを信頼できる発行元として登録します。次に、ワークフローファイルで permissions を明示的に指定し、必要な権限のみを付与します。最後に、 id-token: write を有効にしてトークンを取得します。
この方法により、シークレット管理の手間が減り、セキュリティが向上します。
permissionsキーで実現する最小権限の設定方法
GitHub Actionsのワークフローファイルでは、トップレベルまたはジョブレベルで permissions を設定できます。デフォルトはリポジトリの権限を継承しますが、明示的に最小限に絞ることでリスクを抑えられます。
例えば、コンテンツの読み取りのみが必要な場合、以下のように記述します。
permissions:
contents: read
書き込み権限が必要な場面でも、pull-requests や issues など特定のリソースに限定することが推奨されます。これにより、万一トークンが漏洩しても被害範囲を限定できます。
Secretsの安全な管理とログ漏洩防止策
SecretsはGitHubの暗号化ストレージに保存されますが、ワークフロー内で誤ってログに出力すると漏洩します。 echo コマンドやデバッグログでシークレットが露出するケースが典型的です。
対策として、Secretsを扱うステップでは set +x を使用してコマンド出力を抑制し、ログにマスクされるよう ::add-mask:: コマンドを活用します。また、Secretsは必要最小限のスコープで作成し、定期的にローテーションを行うことが重要です。
Self-hosted runnerが抱える特有のリスク
Self-hosted runnerはオンプレミスや自社サーバーで実行されるため、GitHubの管理外となります。runnerがマルウェアに感染したり、ホストマシンのファイルシステムにアクセスされたりするリスクがあります。
GitHubホストのランナーと異なり、ネットワーク隔離やOSレベルのセキュリティパッチ適用が運用者の責任になります。機密性の高い作業では、ephemeral runnerの利用や、runnerのネットワークを制限した運用を検討してください。
権限昇格パターンの具体例と攻撃シナリオ
典型的な攻撃シナリオは、漏洩したPATを使ってリポジトリのコードを改ざんし、CI/CDパイプラインを通じて本番環境へ侵入するものです。あるいは、Actionsのログから一時トークンを取得し、クラウドリソースを操作するケースもあります。
こうしたシナリオを防ぐには、トークンのスコープを厳格にし、定期的な監査を行うことが有効です。
実践的な対策チェックリストと比較表
以下は主な認証方法の比較表です。
| 認証方法 | 有効期限 | 権限範囲 | 漏洩時の影響 | おすすめ度 |
|---|---|---|---|---|
| PAT | 長期間 | 広い | 大 | 低 |
| OIDC | 短期 | 最小限 | 小 | 高 |
| GitHub App | 中期間 | 限定 | 中 | 中 |
| Self-hosted | 運用依存 | 広範 | 大 | 条件付き |
出典: GitHub公式ドキュメントおよびセキュリティガイドライン (2026年時点)
この表を参考に、自社のワークフローに合った方法を選択してください。
よくある質問(FAQ)
関連記事:
- 旧型 iPhone / iPad に修正不能な脆弱性「usbliter8」— 対象機種とリスクを解説
- BIGLOBE 不正アクセスでパスワード漏えい可能性 — 至急変更を
- マネーフォワード、GitHub不正アクセスで新たに6.3万人分の情報流出可能性 — 公式調査完了
まとめ
GitHub Actionsのセキュリティは、認証情報の選択と権限管理が鍵となります。OIDCの導入やpermissionsの最小化により、権限昇格のリスクを大幅に下げることが可能です。まずは自社のワークフローを棚卸しし、表の比較を参考に改善を進めてください。定期的な見直しを習慣にすることで、安全なCI/CD環境を維持できます。
関連する新しい記事:
- FeliCa 脆弱性公表の背景と実務的な影響 – This published update adds current operational context for GitHub Actions 認証情報リスクと権限昇格対策 | 実践ガイド.
著者
krona23
IT業界20年以上の実務経験を持ち、日本国内有数のPVを誇る大規模Webサービスで事業部長・CTOを複数社で歴任。Windows/iOS/Android/Webと技術の変遷を経験し、現在はAIネイティブへの変革に注力。DevGENTでは、AIコードエディタ・自動化ツール・LLMの実践的な使い方を日英西3言語で発信中。













コメントを残す