Skip to content
Latchkey

GitHub Actions の OIDC とは?

OIDC を使うと、ワークフローは短命のトークンでクラウドプロバイダーに自身の ID を証明できるため、長命の認証情報を保存する必要がありません。

静的なクラウドキーをシークレットとして保存するのはリスクがあります。OpenID Connect (OIDC) では、GitHub が実行ごとに署名付きの ID トークンを発行し、あなたのクラウドがそれを信頼して、保存されたシークレットなしに一時的な認証情報と交換します。

概要

OIDC はフェデレーテッド ID の標準です。GitHub が ID プロバイダーとして機能し、実行内容を記述した JWT を発行します。あなたのクラウドはそれを検証し、短命のアクセスを付与します。

OIDC cloud auth
permissions:
  id-token: write
  contents: read
steps:
  - uses: aws-actions/configure-aws-credentials@v4
    with:
      role-to-assume: arn:aws:iam::123:role/ci
      aws-region: us-east-1

仕組み

ジョブに id-token: write を付与し、リポジトリやブランチなどのクレームをキーとした信頼関係をクラウド側で構成すると、ワークフローは OIDC トークンを一時的な認証情報と交換します。

保存されたキーより優れている理由

  • 漏洩やローテーションの対象となる長命のシークレットがありません。
  • アクセスは特定のリポジトリ、ブランチ、または environment にスコープされます。
  • 認証情報はジョブ終了時に自動的に期限切れになります。

重要な理由

OIDC は AWS、GCP、Azure などへワークフローを認証する、現代的で推奨される方法です。パイプラインからシークレット漏洩リスクのクラス全体を取り除きます。

関連する概念

OIDC は id-token 権限を必要とし、クラウドキーをシークレットとして保存する方法の代替です。厳密な信頼のスコープ設定のために environment とよく組み合わせられます。

重要なポイント

  • OIDC はワークフローに短命の ID トークンを与えます。
  • 保存されたクラウドキーをフェデレーテッドな信頼へ置き換えます。
  • id-token: write を付与し、クレームで信頼のスコープを絞ります。

関連ガイド