세 가지 인증, 세 가지 use case
모든 Gemini 호출은 자기를 어떻게든 식별해야 돼. 세 패턴 있고, 누가 actor 인가에 따라 옳은 게 결정돼:
- API key — application 자체가 actor. 가장 단순. AI Studio 용.
- OAuth 2.0 — end user 가 actor 고 앱이 그 user 대신 Gemini 호출. retrieval API 처럼 데이터가 Google account scope 인 경우.
- Service account — server-side identity 가 actor. Vertex AI 와 production GCP workload 용.
API key — 30 초 path
AI Studio 에서 key 받고, GEMINI_API_KEY (또는 GOOGLE_API_KEY; 둘 다 set 되면 GOOGLE_API_KEY 우선) 로 세팅하면 SDK 가 자동으로 읽어. 절대 commit 하지 마. 절대 client-side JS 에 박지 마. key 유출 blast radius 는 청구서 + 누군가 그걸로 부끄러운 거 생성하면 평판도.
OAuth 2.0 — user 가 데이터 owner
로그인된 user 로서 (그 사람의 Drive, Gmail, Generative Language retriever data) 행동해야 하는 앱이라면 OAuth 필요. 흐름은 표준 Google OAuth — consent 화면으로 redirect, code 를 refresh + access token 으로 교환, 필요할 때 refresh.
Service account — Vertex 의 production default
Vertex AI 에서는 Application Default Credentials (ADC) 가 권장 패턴. SDK 가 환경에서 credential pick up — service account JSON, workload identity binding, 또는 로컬 gcloud auth application-default login. 코드에 key 없음.