安全にGemini CLI Github Actionsを検証する: Vertex AI + WIF + GitHub Appで鍵レス運用
エンタープライズでGeminiを検証するなら、APIキーに依存したクイックスタートは避け、Vertex AI をバックエンドに据えた Workload Identity Federation (WIF) と GitHub App による鍵レス・最小権限の構成で始めるべきなのではないかと思っています。Google公式の run-gemini-cli
リポジトリには、GCP側のWIF設定を一括自動化する scripts/setup_workload_identity.sh
が用意されており、さらに Gemini CLI の /setup-github
を使えば、公式のオープンソースWorkflowをほぼそのまま導入できます。結果として、Pull Request を作成すると GitHub Actions が Vertex AI の Gemini を呼び出してレビューを自動実行する、セキュアで再現性の高い検証体験を短時間で整えられます。細かな手順や最新のセキュリティ推奨値は必ず公式ドキュメントを参照してください。
WIFとは?
WIF (Workload Identity Federation) は、GitHub Actions の OIDC トークンを Google Cloud に連携し、短期認証情報でサービスアカウント(SA)へのインパーソネーションを可能にする仕組みです。これにより、長期秘密鍵不要・最小権限・監査容易という要件を満たせます。
Google公式スクリプトでWIF構築
gemini CLI github Actinosのリポジトリには自動セットアップスクリプトがおいてあります
run-gemini-cli/scripts/setup_workload_identity.sh
を実行すると、以下を自動作成します:
- Workload Identity Pool / OIDC Provider(issuer-uri、attribute.mappingを設定)
-
実行用Service Account(例:
roles/aiplatform.user
を付与) -
WIFバインディング(
attribute.repository
等で対象を限定)
スクリプトの最新仕様・オプションは必ず公式READMEを参照。
bash ./scripts/setup_workload_identity.sh --project_id your-project --repo ORG/REPO --sa_name gemini-actions --location global
GitHub Appとリポジトリ設定
- GitHub App を作成し、PRレビューに必要な最小権限で対象リポジトリへ限定インストール(Private Keyをダウンロード)
-
Variables(
Settings → Secrets and variables → Actions → Variables
)例:GCP_PROJECT
-
GCP_WIF_PROVIDER
(projects/<PROJECT_NUMBER>/locations/global/workloadIdentityPools/<POOL>/providers/<PROVIDER>
) -
SERVICE_ACCOUNT_EMAIL
(例:gemini-actions@<PROJECT_ID>.iam.gserviceaccount.com
) -
GOOGLE_CLOUD_LOCATION
(例:us-central1
) -
GOOGLE_GENAI_USE_VERTEXAI
(true
:APIキーではなく Vertex AI 経由で実行)
-
Secrets(必要時):
GITHUB_APP_ID
,GITHUB_APP_PRIVATE_KEY
変数名や必要権限は運用により異なるため、必ず公式ドキュメントを参照。
/setup-github
でWorkflow導入
Gemini CLI の /setup-github
を使うと、公式推奨のWorkflowと設定ガイドが自動生成されます。
gemini /setup-github
自動PRレビューの流れ
- 開発者が Pull Request を作成
- GitHub Actions が起動し、
google-github-actions/auth@v2
が WIF で GCP 認証(鍵レス) -
run-gemini-cli@v0
が Vertex AI の Gemini を呼び出し - AI が PR の差分を解析してレビューコメントを投稿
全体像(Github→Github Actions→WIF→Vertex AI(Gemini Model)
セキュリティ設計チェックリスト
- APIキーは使わない(鍵レス)
-
WIFでリポジトリ/ブランチを制限(
attribute.repository
,attribute.ref
) -
SAには最小権限(例:
roles/aiplatform.user
)のみ付与 - GitHub App は最小権限・限定インストール
- Private Key/変数の適切な保護とローテーション方針
- Cloud Audit Logs / Actions ログでの監査体制
- 詳細は必ず公式ドキュメントを参照
参考(必読)
- 公式リポジトリ(認証・WIF・Workflowの詳細):
https://github.com/google-github-actions/run-gemini-cli#authentication - Workload Identity Federation 公式ドキュメント:
https://cloud.google.com/iam/docs/workload-identity-federation - google-github-actions/auth:
https://github.com/google-github-actions/auth
Discussion