Google Cloud4 択難易度 応用

GitHub Actions から Cloud Run へデプロイする。認証の方法として最も適切なものは?

正答

  1. サービスアカウントキーの JSON をリポジトリにコミットする
  2. 担当者個人の gcloud 認証情報を CI に保存する
  3. Workload Identity 連携で、キーを発行せず短期トークンを使う
  4. キーの JSON を Secrets に入れ、期限を決めずに使い続ける

解説

Workload Identity 連携(Workload Identity Federation)を使うと、GitHub Actions が発行する OIDC トークンを Google Cloud の短期のアクセストークンに交換できる。サービスアカウントキーのような長期の鍵をどこにも保存しないので、鍵の漏えいやローテーション漏れが起きない。リポジトリへのコミットは論外で、公開リポジトリでなくてもフォークや履歴から漏れる。Secrets に入れる方法は動くが、期限の無い鍵が残り続け、漏れたときに気づきにくい。個人の認証情報は、その人の全権限が CI に乗り、異動や退職で止まる。

参考: docs.cloud.google.com

service-accountworkload-identity-federationci

この問題を含む Google Cloud のテストを制限時間つきで解く

Google Cloudクイズへ