Gemini API キーと Google API キーの保護

Leonid Yankulin
Senior Developer Relations Engineer
※この投稿は米国時間 2026 年 5 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。
現在、AI サービスは API キーに大きく依存しています。ユーザーが AI エージェントを実行するには、有料トークン、サブスクリプション、または有料アカウントを示す API キーを提示する必要があります。API キーは簡単に使用できますが、安全でない方法で使用することも同じくらい簡単です。キーが盗まれると、環境が侵害され、不正使用や悪用につながります。
ユーザーが講じるべき自衛策についてのチュートリアルを求めるスレッドが Reddit 内の r/googlecloud ページに投稿されているのを見たことをきっかけに、このブログ投稿を書くことにしました。この投稿では、Google が作成した API キーのリスクを軽減し、セキュリティを向上させるための簡単な手順をいくつかご紹介します。
Google API キーは、Gemini やその他の AI Google プロダクト、あるいは Google Cloud API にアクセスするのに使用されます。Gemini API キーは、バックグラウンドで使用される標準の Google API キーです。ここでは Google API キーのセキュリティに焦点を当てますが、これらの推奨事項の一部は、他の場所で作成された API キーやプロダクト トークンにも適用できます。
ステップ 1: 新しい API キーを生成する
どこから始めても、最終的には Google Cloud プロジェクトのいずれかで新しい API キーを作成することになります。Cloud コンソールの [API とサービス] メニューにある [認証情報] を使用することになるでしょう。


代わりに gcloud services api-keys create コマンドを使用することもできます。また、新しい Google Cloud API キーを作成できる他のインターフェースもあります。経路やインターフェースにかかわらず、次のことを行う必要があります。
-
他の目的に使用されていないスタンドアロン プロジェクトでキーを作成する。
-
新しい API キーの API アクセスとクライアント アプリケーションを制限する。
これらの手順により、キーの潜在的なリーチが制限され、問題が発生した場合のトラブルシューティング作業が大幅に簡素化されます。
API の制限
API の制限では、キーを使用してアクセスできるサービスを指定します。制限のないキーは作成しないでください。キーが盗まれると、攻撃者は利用可能なサービスにユーザーの費用でアクセスできてしまうからです。
そのキーが使用されるサービスのリストを常に制限して、キーが乗っ取りや漏洩の被害にあった場合の潜在的な損害(影響範囲)を軽減します。間接的な UI を使用して新しいキーを作成する場合は、注意が必要です。たとえば、Firebase で API キーを作成するときは、使用できる API の数を Datastore、Firestore、Cloud SQL Admin などの 24 個に制限します。


Firebase を使用してウェブサイトを保存する場合は、ほとんどの API を使用しないでしょう。AI Studio で使用する API キーを作成するときは、アクセスできる API を「Gemini API」のみに制限してください。
注意点:
-
デフォルトでは、新しい API キーは制限なしで作成されます。
-
選択したい API を検索しても見つからない場合は、使用している Google Cloud プロジェクトでその API が有効になっていない可能性があります。まず Cloud コンソールの [API ライブラリ] に移動し、名前で API を検索して、有効にします。
-
Cloud コンソールまたは gcloud CLI では、すべてのアクションを実行できます。他のインターフェース(Firebase など)では、API キーの一部のパラメータにアクセスできない場合があります。
アプリケーションの制限
API 制限がキーを使用できるサービスを制限するのと同様に、アプリケーションの制限はキーを使用できるアプリケーションを制限します。たとえば、Google AI Studio でのみ使用する API キーを作成する場合、アプリケーションの制限をウェブサイト https://aistudio.google.com/ に設定すると、Gemini を利用して大量のトークンを大規模に消費する自動化でキーが使用されるのを防ぐことができます。
次のいずれかのタイプの制限を 1 つ以上設定できます。
-
URL のリストを使用してウェブサイトやウェブ アプリケーションの制限を設定する
-
IPv4 や IPv6 アドレスのリストまたはサブネット マスクを使用してサービスの制限を設定する
-
バンドル ID のリストを使用して iOS アプリケーションの制限を設定する
-
パッケージ名と証明書フィンガープリントのペアのリストを使用して Android アプリケーションの制限を設定する
キーに対して適用できるアプリケーションの制限は 1 種類のみです。アプリケーションの種類ごとに指定の API キーを作成します。アプリケーション種類ごとにキーを用意しておくと、キーの使用状況を把握し、侵害された可能性のあるキーを調査する際に役立ちます。
ステップ 2: API キーを保存する
ここで今一度確認したいことは、API キーはユーザーの ID とペアになっていないということです。API キーは誰でも利用できます。そのため、キーを安全に保管することは、ステップ 1 でのキーの使用の制限と同じくらい重要です。
ルールは簡単です。キーを簡単に見える場所に保存してはいけません。
アプリケーションで API キーを使用する場合は、Secret Manager または同様のシークレット管理サービスに保存します。Secret Manager を使用すると、API キーを Cloud Run 環境と GKE 環境に簡単に挿入できます。ただし、キーの保護を強化するために、コードでキーを読み取ることもできます。例については、ドキュメントをご覧ください。
外部アプリケーションで API キーを使用する場合、キーの入力を求められたら、アプリケーションがキーをどのように管理しているかを確認する追加の手順を踏んでください。キーがどのように保存され、リクエストでどのように使用されているかを調べる必要があります。ウェブ アプリケーションの場合は、ブラウザのデベロッパー ツールを使用してアプリケーションのトラフィックを検査し、キーが暗号化されていない通信チャネルで送信されていないことを確認します。たとえば、Google AI Studio は暗号化されたローカル ストレージを使用し、TLS で暗号化されたチャネルを介してキーを送信します。
問題が発生した場合
キーが侵害された疑いがある場合、どうすべきでしょうか?クレジット カードの場合と同じように、単純な手順で対処します。まず、キーを削除します。Cloud コンソールで削除するか、gcloud services api-keys delete コマンドを使用して削除できます。実際は侵害されていなかったことがわかった場合は、30 日以内であれば削除を取り消すことができます。
どのキーが侵害されたかわからない場合はどうすればよいでしょうか?その場合は、次の 2 つのステップで調査する必要があります。
-
組織またはプロジェクト内のすべての API キーを検出する
-
このキーでアクセスできる API の API 使用量のグラフを確認する
すべての API キーを確認する
API キーのリソースを見つける方法は複数あります。Cloud コンソールの [アセット インベントリ] を使用し、ダッシュボードを [リソースの種類] でフィルタリングして apikeys.Key を確認できます。このリソース種類が表示されない場合は、[さらに表示…] を見つけてクリックし、リソース種類のリストを展開します。削除された API キーもリストに表示されます。
CLI を使用する場合で、特定のプロジェクトがわかっている場合は、gcloud services api-keys list コマンドを使用できます。
組織内のすべてのアクティブなキーを表示するには、gcloud asset search-all-resources コマンドを使用し、その JSON 出力をクエリして削除されたキーを除外する必要があります。
API の使用量を確認する
API キーの使用状況を追跡する方法があります。Cloud Monitoring の serviceruntime.googleapis.com/api/request_count 指標を使用することです。この指標は、さまざまなサービスが呼び出された回数を示します。特定の API キーのサービス リクエスト数を確認するには、指標の credential_id ラベルを使用し、API キーの一意の ID でフィルタリングする必要があります。指標のデータを確認するには、Metrics Explorer を使用するか、次の PromQL 式で Monitoring API を呼び出します。
service_name ラベルを使用して、API 名(例: mapstools.googleapis.com)でこの指標をさらにフィルタリングできます。
API キーの ID を確認するには、次のいずれかの方法を使用する必要があります。
-
Cloud コンソールを使用して [認証情報] ページを開き、目的の API キーを選択します。ブラウザで API キーページの URL を確認します。URL は
https://console.cloud.google.com/apis/credentials/key/[KEY_ID]?project=[PROJECT_ID]のように表示されます。[KEY_ID]の部分をコピーします。 -
gcloud CLI を使用して、
gcloud services api-keys list --format='value(displayName,uid)'コマンドを実行し、表示名でキーを見つけます。表示名の横にある UID をコピーします。
API 呼び出しが異常に多い場合は、通常、API キーが侵害され、悪意のあるユーザーによって API にアクセスするために使用されたことを示します。
ステップ 3: API キー管理のハイジーン
エンジニア、経験豊富なクラウド ユーザー、あるいは単に試してみようという方であっても、環境が乗っ取られるのを防ぐためには、API キーの適切な管理が重要です。
すでに Google API キーを使用している場合は、今すぐ次の対応を行ってください。
-
所有しているすべての API キーを確認します。
-
使用しなくなったキーや認識できないキーをすべて削除します(30 日以内であれば復元できますので心配無用です)。
-
API キーがアクセスできる API を、使用する予定の API のみに制限します。可能であれば、API を使用できるクライアントもリストを使って制限します。
-
Google Cloud プロジェクトまたは組織を管理している場合は、API キーの管理に必要な作業を最小限に抑えるために apikeys.googleapis.com/Key 組織ポリシーを設定することを検討してください。
-
API キーを定期的にローテーション(更新)し、まったく同じ制限を共有するキーを新しく作成して置き換えることを検討してください。既存のキーが使用されているすべての場所を追跡して更新してからそのキーを削除するようにしてください。そうすることで、アプリケーションが予期せず破損したり、突然アクセスできなくなったりするのを防ぐことができます。
まとめ
API キーの保護は、クラウド エコシステムを保護するうえで重要なステップです。API とアプリケーションの厳格な制限の実装、安全な保管の利用、消費の積極的なモニタリングは、不正アクセスを防止する非常に効果的な方法です。これらの対策により、開発環境を悪用から保護し、予期しない請求を回避できます。
これらの手法を導入するのに役立つ、実用的なツールとリソースをいくつかご紹介します。
-
API についてさらに確認する: API キーの管理に関するベスト プラクティスを確認し、「Google API を検索して選択する」のラボを実践します。
-
クイック チュートリアルを見る: Cloud Run シークレットの Secret Manager でのセキュアな管理に関する Google Cloud Tech の動画で、安全な保管のコンセプトが実際にどのように機能するかをご確認ください。
-
Codelab で実際に体験する: Codelab でPython または Spring Boot を使って Secret Manager を利用してみて、ガイド付き環境で認証情報を安全に取得する練習をします。
ドキュメントで詳細を確認する: 指標の選択、グラフの作成、アラートの設定を通じて API の使用状況を把握する方法をご確認ください。
- シニア デベロッパーリレーションズ エンジニア、Leonid Yankulin



