マガジン

Gemini APIはGoogle AI StudioとVertex AIで何が違う?認証と使い分けの判断

AIを使いこなす

Claudeで執筆し、GPTで自動校閲・修正しています。

机の上の保管箱に鍵を収める手元
記事の内容をもとに制作したAI生成イメージです。実際の製品画面や検証結果の写真ではありません。

結論から言うと、基本の選択肢は Gemini Developer API と、Google Cloudの管理機能が必要な場合のVertex AI側です。Developer APIは試作から本番まで利用でき、AI Studioで発行するAPIキーで始められます。ただし、現在の新規キーはサービスアカウントに結び付くため、「誰として呼び出すか」だけでは区別できません。鍵を配布せずADCで認証したい場合や、Cloud側固有の企業向け管理機能が必要な場合に、Vertex AI側を検討します。 なお、2026年10月時点の Google Cloud ドキュメントでは、Vertex AI Platform は「Gemini Enterprise Agent Platform」に名称変更されています(名称変更ページ、最終更新2026-10-28 UTC)。このページには既存のAPIエンドポイントが変わるかどうかの記載はありませんでした。本稿では検索で使われる「Vertex AI」を旧称として併記します。 確認した資料は次のとおりです。Gemini API側のCloud移行ガイド(更新2026-10-08 UTC)、APIキーのページ、課金ページ、利用規約、Cloud側のADC解説です。

この記事の目次
  1. 認証の違い:キーかCloudの資格情報か
  2. 比較表:認証・管理機能
  3. 選択フローチャート
  4. 試作から本番に移す手順
  5. 切り替え前に人が確認すること

認証の違い:キーかCloudの資格情報か

Gemini Developer API(AI Studio)

Developer APIはAPIキーで始められます。APIキーの公式説明によると、すべてのキーはGoogle Cloudプロジェクトに関連付けられます。新規ユーザーには規約への同意後にデフォルトのプロジェクトとキーが自動作成され、既存のCloudアカウントがある場合はプロジェクトをインポートします。2026年5月28日以降、AI Studioで新規発行するキーはサービスアカウントに結び付くauthorization keyです。SDKは環境変数 GEMINI_API_KEY か GOOGLE_API_KEY を読み、両方あれば GOOGLE_API_KEY が優先されます。

Vertex AI(Gemini Enterprise Agent Platform)

移行ガイドでは、Google Cloud プロジェクトとサービスアカウントの認証が必要と説明されています。資格情報の探し方は ADC(Application Default Credentials)が基本で、Cloud側の解説では次の順に探します。

  1. 環境変数 GOOGLE_APPLICATION_CREDENTIALS が指すファイル
  2. gcloud auth application-default login で作ったローカルの資格情報
  3. リソースにアタッチされたサービスアカウント

Google Cloud 上の本番では、アタッチされたサービスアカウントが推奨されています。一方、サービスアカウントの鍵ファイルは「セキュリティリスクがあり推奨されない」と明記されています。

Cloud側にもAPIキー認証があります。認証の公式説明では、Vertex AIのexpress mode(Preview)はAPIキーを使います。また、APIキー管理の説明では、aiplatform.googleapis.com がサービスアカウントに結び付くauthorization keyに対応しています。ただし、Cloudリソースを作成・管理するAPIでは、このキーを本番で使わないよう注意されています。本稿のCloud側の本番構成はADCを前提にします。

比較表:認証・管理機能

  • 認証の中身、Developer API(AI Studio):APIキー。現在の新規キーはサービスアカウントに結び付く、Cloud側(旧Vertex AI):本稿ではADC。APIキー認証にも対応
  • 開始条件、Developer API(AI Studio):Cloudプロジェクトに関連付いたキー。新規ユーザーには自動作成、Cloud側(旧Vertex AI):Google Cloud プロジェクトが必要
  • 資格情報の保管、Developer API(AI Studio):環境変数、本番はSecret Manager推奨、Cloud側(旧Vertex AI):本番はアタッチされたサービスアカウントなら鍵ファイル不要
  • 漏えい時の対応、Developer API(AI Studio):新キー発行、再デプロイ、旧キー無効化、ログ監査、Cloud側(旧Vertex AI):鍵ファイルを使う場合は同様に失効が必要。アタッチ方式では配布する秘密が減る
  • 権限・キー管理、Developer API(AI Studio):プロジェクトの権限でキーの作成・更新を管理。キーにAPI・利用元の制限を設定、Cloud側(旧Vertex AI):サービスアカウントに必要最小限のIAMロールを付与し、実行リソースへアタッチ
  • SDKの書き方、Developer API(AI Studio):genai.Client()、Cloud側(旧Vertex AI):enterprise=True(Interactions API)または vertexai=True(generateContent)に project と location を指定
  • リージョン、Developer API(AI Studio):移行ガイドに指定の記載なし、Cloud側(旧Vertex AI):Interactions APIはPreview中 global のみ
  • AI Studio上の資産、Developer API(AI Studio):AI Studioで作ったモデルはCloud側で再学習が必要、Cloud側(旧Vertex AI):

データの扱いは別問題です。Developer APIのUnpaid Servicesでは、入力と出力が製品改善に使われ、人間がレビューする可能性があるため、機密・個人情報は送らないよう規約に書かれています(2026-03-23発効)。ただしEEA・スイス・英国では、無料提供分にもPaid Servicesのデータ利用条件が適用されます。APIを有効な請求先アカウントに関連付いたプロジェクト経由で使う場合もPaid Servicesとなり、プロンプトと応答は製品改善に使われません。一方、不正利用検知などのための一時的なログ保存はあります。Cloud側も、データ保持の公式説明では、事前の許可・指示なしにデータを学習・調整に使わないとされていますが、不正利用監視や機能に応じた保持があります。認証方式と、学習利用・保持条件は分けて確認します。

選択フローチャート

mermaid
flowchart TD
  A[何を作る?] --> B{実データに機密・個人情報が含まれる?}
  B -- はい --> C[無料枠では送らない。課金有効のAPIか<br>Cloud側かを規約で確認して選ぶ]
  B -- いいえ --> D{実行環境はGoogle Cloud上?}
  C --> D
  D -- はい --> E{鍵を配布せずADCで<br>認証したい?}
  E -- はい --> I[Cloud側 + ADC<br>アタッチしたサービスアカウント]
  E -- いいえ --> F{Cloud側固有の企業向け<br>管理機能が必要?}
  D -- いいえ --> F
  F -- はい --> G[Cloud側。ローカルは<br>gcloud ADCログイン]
  F -- いいえ --> H[Developer API + APIキー<br>本番はSecret Managerで保管]

文章で読む場合は、次の順に判断してください。

  1. 実データに機密・個人情報が入るなら、無料枠は使いません。
  2. Google Cloud上で鍵を配らずに認証したいなら、Cloud側でADCとアタッチしたサービスアカウントを使います。
  3. Cloud側固有の企業向け管理機能が必要なら、Cloud側を選びます。IAMという言葉だけで決めず、必要な権限制御を具体的に確認します。
  4. そうした要件がなければ、本番も含めDeveloper APIとAPIキーを基本の候補にします。

どちらを選んでも、ウェブやモバイルアプリにキーを直接埋め込むのは避けます。公式ページはこれを禁止事項として挙げており、呼び出しはサーバー経由にします。

試作から本番に移す手順

移行ガイドにある注意点を、実作業の順に並べます。

  1. Google Cloud プロジェクトを作るか既存のものを選び、サービスアカウントを用意します。
  2. コードのクライアント生成部分を差し替えます(下の例)。利用モデル・機能の対応とIAM権限も確認し、切り替え後の呼び出しをテストします。
  3. AI Studioで作ったモデルがあれば、Cloud側で作り直します。
  4. リージョンを確認します。Interactions API は Preview 中 global のみです。
  5. 使わなくなったAPIキーを削除します。

クライアント生成を切り替える例です。公式ドキュメントの引数に合わせた説明用の例で、私は実行しておらず、動作は未検証です。環境変数 USE_CLOUD は例のために私が決めた名前で、公式の変数ではありません。

python
import os
from google import genai

def make_client():
    if os.environ.get("USE_CLOUD") == "1":
        # Cloud認証(ADC)。project と location は自分の環境の値に置き換える
        return genai.Client(
            vertexai=True,  # generateContent API の場合
            project=os.environ["GCP_PROJECT"],
            location="us-central1",
        )
    # APIキー。GEMINI_API_KEY または GOOGLE_API_KEY を環境変数に置く
    return genai.Client()

client = make_client()

Interactions APIを使う場合は、公式の例に従い vertexai=True の代わりに enterprise=True と location="global" を指定します。移行ガイドでは、この例に google-genai>=2.3.0 が必要とされています。

切り替え前に人が確認すること

AIに任せられるのはコードの書き換え案の作成までです。次の項目は人が確認してください。

  • 送るデータに機密・個人情報がないか。ある場合は、使うプランの規約を読む
  • キーや鍵ファイルがGitや画像、チャットに残っていないか
  • 漏えいが疑われるときの手順。新キー発行、デプロイ、旧キー無効化、ログ監査の順
  • 課金アラートが設定されているか(公式ページが推奨)
  • 名称変更後のドキュメントとコンソールの表記が、手元の画面と合っているか

コード生成AIに相談するときは、実際のキーやプロジェクトIDを貼らず、次のように架空の値に置き換えて渡します。

text
Pythonのgoogle-genaiを使うアプリで、APIキー方式からCloud認証(ADC)方式へ
切り替える変更案を作ってください。
- 現状: genai.Client() を環境変数のキーで使用
- 実行先: Cloud Run(例)
- project: example-project、location: global(例の値)
鍵ファイルを使わない構成にし、変更点と、人が確認すべき項目を箇条書きにしてください。

出典・参考資料