CTS-KB

Workload Identity Federation

わーくろーどあいでんてぃてぃふぇでれーしょん

WIF Workload Identity 連携
#キーレス認証 #GCP #AWS #CI/CD #OIDC #セキュリティ

静的なサービスアカウントキーを使わず、外部 ID プロバイダ(GitHub Actions・GitLab CI 等)の OIDC アサーション を信頼してクラウド側の権限を付与する仕組み。鍵漏洩リスクを根本から排除し、短命トークンによる キーレス運用 を実現する。

概要

CI / CD パイプラインや外部ワークロードからクラウドリソースを操作する際、従来は 長寿命のサービスアカウントキー(JSON)アクセスキー をシークレットとして埋め込むのが一般的だった。しかしこの方式には以下の問題がある。

  • 漏洩時の被害が大きい(無効化まで攻撃継続可能)
  • ローテーション運用の負荷
  • リポジトリ・CI ログへの偶発的な漏洩リスク

WIF は、外部システムが発行する OIDC トークンをクラウド IAM が 直接検証 し、 短命のアクセストークンに交換 する仕組みでこれを解決する。

主な実装

クラウド機能名
GCPWorkload Identity Federation
AWSOIDC Identity Provider + AssumeRoleWithWebIdentity
AzureWorkload Identity Federation

GCP / AWS / Azure それぞれで命名は違うが、 「外部 OIDC を信頼して短命トークンを払い出す」 という構造は共通している。

CTS での活用例

CTS-EC では CI(GitLab Runner)から GCP リソースを操作する際に WIF を採用。Service Account キーをリポジトリにもシークレットストアにも置かず、 GitLab CI の OIDC アサーション を GCP IAM が検証して短命トークンを払い出す構成にしている。

関連用語

  • 多層防御 — WIF が担うインフラ層のキーレス化
  • AWS Cognito — エンドユーザー側の認証基盤(WIF はマシン間認証)

外部リソース