세 가지 인증, 세 가지 쓰임새
Gemini를 호출하는 쪽은 반드시 자기 신원을 밝혀야 해. 방법은 세 가지이고, 누가 호출의 주체인가에 따라 답이 정해져:
- API 키 — 애플리케이션 자체가 주체야. 가장 단순하고 AI Studio에 맞아.
- OAuth 2.0 — 최종 사용자가 주체고 앱은 그 사람을 대신해 Gemini를 호출해. 검색 API처럼 데이터가 Google 계정 범위에 묶인 경우에 써.
- 서비스 계정 — 서버 쪽 신원이 주체야. Vertex AI와 운영 GCP 작업에 맞아.
API 키 — 30초 경로
AI Studio에서 키를 받은 뒤 GEMINI_API_KEY나 GOOGLE_API_KEY로 설정하면 SDK가 자동으로 읽어. 둘 다 설정했을 때는 GOOGLE_API_KEY가 우선이야. 키를 커밋하거나 브라우저에서 실행되는 JavaScript에 넣으면 절대 안 돼. 키가 새면 청구서가 폭발할 뿐 아니라, 누군가 그 키로 민망한 콘텐츠를 만들어 계정 평판까지 망칠 수 있어.
OAuth 2.0 — 사용자가 데이터의 소유자일 때
로그인한 사용자의 Drive, Gmail, Generative Language 검색 데이터처럼 그 사람의 권한으로 행동해야 하는 앱에는 OAuth가 필요해. 흐름은 표준 Google OAuth야. 동의 화면으로 보내고, 받은 코드를 갱신 토큰과 액세스 토큰으로 교환한 뒤 필요할 때 토큰을 갱신해.
서비스 계정 — Vertex 운영 환경의 기본값
Vertex AI에서는 Application Default Credentials(ADC)가 권장 방식이야. SDK가 서비스 계정 JSON, 워크로드 아이덴티티 바인딩, 로컬의 gcloud auth application-default login 같은 환경에서 자격 증명을 찾아. 코드에 키를 넣을 필요가 없어.