Enabling keyless authentication from GitHub Actions
GitHub ActionsからGoogle Cloudをセキュアに利用するための認証メカニズム
Workload Identity連携とOIDCトークンを活用している
2021 GitHub Actions からのキーなしの認証の有効化
仕組み
1. OIDCトークンの発行
GitHub Actionsのワークフローが実行されると、GitHubはそのワークフロー専用の短命なOIDCトークン(JWT)を発行する
このトークンには、リポジトリ名やブランチ名などの情報が含まれている
2. Google Cloudへのトークン提示
ワークフロー内でgoogle-github-actions/authなどのアクションを使い、このOIDCトークンをGoogle CloudのWorkload Identity Providerに提示する
3. トークンの検証と属性マッピング
Google CloudはOIDCトークンを検証し、トークン内の情報とGoogle Cloud側で設定した条件(属性マッピング)を照合する
サービスアカウント名などが漏れても他のレポジトリやブランチでは動かないように設定しておけばよい
4. 一時的な認証情報の発行
条件を満たしていれば、Google Cloudは指定されたサービスアカウントの一時的な認証情報(アクセストークン)を発行する
このアクセストークンは短時間(通常1時間)しか有効でなく、長期的なクレデンシャルファイルの管理が不要となり安全
関連
GCP の Application Default Credentials を使った認証