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を付与し、クレームで信頼のスコープを絞ります。
関連ガイド
What Is a GitHub Actions Secret?A GitHub Actions secret is an encrypted variable for sensitive values like API keys, available to workflows a…
What Is GITHUB_TOKEN in GitHub Actions?GITHUB_TOKEN is an automatic, short-lived credential GitHub injects into each workflow run so steps can call…
What Is an Environment in GitHub Actions?An environment in GitHub Actions is a named deployment target like staging or production, with its own secret…
Authenticating to the Cloud with OIDCAuthenticate to AWS, GCP, and Azure from GitHub Actions with OIDC and no static keys. Learn how short-lived t…