Skip to content
Latchkey

Workload Identity Federation とは?鍵なしのクラウド認証

Workload Identity Federation は、外部の workload(GitHub Actions の実行など)が自身のアイデンティティトークンを、保存された鍵なしで短命の GCP 認証情報と交換できるようにします。

federation は、AWS で OIDC role が解決するのと同じ問題を GCP で解決します。長寿命のクラウド鍵を CI に保存するのをやめることです。Workload Identity Federation では、GCP が外部のアイデンティティプロバイダを信頼し、パイプラインからの署名付きトークンを受け取り、service account を impersonate するための一時的な認証情報を返します。

交換の仕組み

外部 issuer(例えば GitHub の OIDC)を信頼する workload identity pool と provider を構成します。パイプラインがトークンを提示すると、GCP がそれを検証し、属性条件をチェックして、service account に紐づいた短命の認証情報を発行します。

構成するもの

  • 外部アイデンティティを保持する workload identity pool。
  • 外部 issuer(GitHub など)を信頼する provider。
  • どのトークンを受け入れるかをスコープする属性マッピングと条件。
  • federate されたアイデンティティが impersonate できる service account。

アクセスを厳密にスコープする

provider の条件は、特定のリポジトリ、branch、その他のトークン claim を要求できるため、意図した workflow だけが認証できます。これは AWS の OIDC トラストポリシーと同じように、影響範囲を狭めます。

なぜ重要か

ダウンロード可能な鍵がなければ、漏洩やローテーションの対象がありません。認証情報は短命で監査可能であり、アクセスは実行に関する検証可能な claim に束縛されます。外部システムを GCP に認証させる推奨方法です。

CI/CD での役割

GitHub Actions は id-token: write を付与し、pool と service account を指定して公式の google-github-actions/auth step を使います。action が GitHub トークンを GCP 認証情報と交換し、後続のステップが secret に JSON 鍵を置くことなく Cloud Run、GKE、Artifact Registry へデプロイします。

重要なポイント

  • federation は外部トークンを短命の GCP 認証情報と、鍵なしで交換します。
  • provider の条件により、どの repo や branch を信頼するかをスコープします。
  • CI/CD 向けの、AWS OIDC role の GCP における相当物です。

関連ガイド