静的なサービスアカウントキーを使わず、外部 ID プロバイダ(GitHub Actions・GitLab CI 等)の OIDC アサーション を信頼してクラウド側の権限を付与する仕組み。鍵漏洩リスクを根本から排除し、短命トークンによる キーレス運用 を実現する。
概要
CI / CD パイプラインや外部ワークロードからクラウドリソースを操作する際、従来は 長寿命のサービスアカウントキー(JSON) や アクセスキー をシークレットとして埋め込むのが一般的だった。しかしこの方式には以下の問題がある。
- 漏洩時の被害が大きい(無効化まで攻撃継続可能)
- ローテーション運用の負荷
- リポジトリ・CI ログへの偶発的な漏洩リスク
WIF は、外部システムが発行する OIDC トークンをクラウド IAM が 直接検証 し、 短命のアクセストークンに交換 する仕組みでこれを解決する。
主な実装
| クラウド | 機能名 |
|---|---|
| GCP | Workload Identity Federation |
| AWS | OIDC Identity Provider + AssumeRoleWithWebIdentity |
| Azure | Workload 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 はマシン間認証)