API キーの使用

このガイドでは、GCP アプリケーションで使用する API キーを作成する方法と API キーの制限を設定する方法を説明します。GCP API に対する認証について詳しくは、認証の概要をご覧ください。Google マップで使用する API キーの設定については、Google マップのドキュメントをご覧ください。

API は単純な暗号化された文字列であり、プライベート ユーザーデータにアクセスする必要のない、特定の API を呼び出すときに使用できます。API キーは、バックエンド サーバーを持たないモバイル アプリケーションやブラウザなどのクライアントで使用すると便利です。API キーは、割り当てや課金のためにプロジェクトに関連付けられた API リクエストをトラッキングするために使用されます。

API キーには、以下のような重要な制限があります。

このため、代わりに標準の認証フローを使用することをおすすめします。ただし、API キーのほうが適切である場合もあります。たとえば、Google Cloud Translation API を使用する必要のあるモバイル アプリケーションを開発している場合に、バックエンド サーバーが必要ないときは、API キーを使用してその API を認証する方法が最も簡単です。大部分の場合、Google Cloud Platform サービスの認証や呼び出しを処理するバックエンド サーバーとアプリケーションを通信させることをおすすめします。

API キーを作成する

API キーを作成するには、使用するアカウントに現在のプロジェクトに対する基本の役割として、編集者の役割(roles/editor)が付与されている必要があります。詳しくは、基本の役割をご覧ください。

API キーを作成するには:

  1. GCP Console の [API とサービス] → [認証情報] パネルに移動します。

  2. [認証情報を作成] を選択し、プルダウン メニューから [API キー] を選択します。

  3. [作成] ボタンをクリックします。[API キーを作成しました] ダイアログ ボックスに、新たに作成されたキーが表示されます。

キーをコピーして、安全な場所に保管することもできます。後で削除する予定のテストキーを使用している場合を除き、アプリケーションと API キーの制限を追加してください。

API キーを使用する

以下の形式で、クエリ パラメータとして API キーを REST API 呼び出しに渡します。API_KEY を API キーに置き換えます。

key=API_KEY

たとえば、documents.analyzeEntities に対する Cloud Natural Language API リクエストの API キーを渡すには、次のようにします。

POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY

API キーを保護する

アプリケーションで API キーを利用するときは、キーの安全確保に努めてください。認証情報が公開されると、アカウントが侵害され、アカウントに対して予想外の料金が課される可能性があります。API キーの安全性を保つには、以下のベスト プラクティスに従ってください。

  • API キーをコードに直接埋め込まないでください。コードに埋め込まれた API キーは、誤って公開されてしまう可能性があります。たとえば、共有するコードからキーを削除し忘れた場合などです。API キーはアプリケーションに埋め込む代わりに、アプリケーションのソースツリー外部にある環境変数やファイル内に保存してください。

  • アプリケーションのソースツリー内のファイルに API キーを保存しないでください。API キーをファイルに保存する場合は、キーがソースコード制御システム内に保存されないよう、ファイルをアプリケーションのソースツリー外部に保持するようにします。これは特に、GitHub のような公共のソースコード管理システムを使用する場合に重要です。

  • アプリケーションと API キーの制限を設定します。制限を追加することで、API キーが不正使用された場合の影響を軽減できます。

  • 不要な API キーを削除して、攻撃を受けるリスクを最小限に抑えます。

  • 定期的に API キーを再生成します。API キーを再生成するには、各キーの [キーを再生成] をクリックして [認証情報] ページに移動し、そのページで再生成します。その後、新たに生成したキーが使用されるようにアプリケーションを更新します。古いキーは置換用のキーを生成した後も 24 時間は機能し続けます。

  • 公開する前に、コードを確認します。コードを公開する前に、コードに API キーやその他のプライベート情報が含まれていないことを確認してください。

API キーに制限を追加する

デフォルトでは、API キーの制限は適用されません。制限されていないキーは、ブラウザ内などから公開されたり、キーが置かれているデバイスからアクセスされたりする可能性があるため、安全ではありません。

本番環境アプリケーションについては、アプリケーションと API の両方の制限を設定してください。

API キーの制限を追加するには:

  1. GCP Console の [API とサービス] → [認証情報] パネルに移動します。

  2. 既存の API キーの名前を選択します。制限セクションがページの下部に表示されます。

    API キーの追加

アプリケーションの制限

アプリケーションの制限では、API キーの使用を許可するウェブサイト、IP アドレス、またはアプリを指定します。アプリケーション タイプに基づいてアプリケーションの制限を追加します。1 つの API キーに設定できる制限のタイプは 1 つのみです。

  1. [キーの制限] セクションで [アプリケーションの制限] タブを選択します。

  2. アプリケーションのニーズに合わせて、制限のタイプを選択します。任意の制限について複数の値を追加するには、最初の値を入力した後、Enter キーを押します。同じ手順で値を追加します。

    • [なし] は、テスト目的でのみ使用します。

    • ウェブブラウザで実行される API クライアントには [HTTP リファラー] を使用して、指定されたページでのみ API を呼び出せるようにします。このようなタイプのアプリケーションでは API キーが公開されるため、代わりにサービス アカウントを使用することをおすすめします。例については、HTTP 制限の追加をご覧ください。

    • API キーアクセスを特定の IP アドレスに制限するには、[IP アドレス] を使用します。

    • Android アプリケーションには [Android アプリ] を使用します。このオプションを使用するには、パッケージ名と SHA-1 署名証明書フィンガープリントを追加する必要があります。

    • iOS アプリケーションには [iOS アプリ] を使用します。このオプションを使用するには、iOS バンドル識別子を少なくとも 1 つ追加して、特定の iOS バンドルに API 呼び出しを制限する必要があります。

  3. [保存] ボタンを選択します。

HTTP 制限の追加

HTTP 制限を追加するには:

  • フォーム フィールドに制限を少なくとも 1 つ入力します。

  • ドメインで HTTP と HTTPS の両方がサポートされている場合は、両方の制限を別個に追加する必要があります。

  • 複数の値を追加するには、最初の値を入力した後、Enter キーを押します。同じ手順で値を追加します。

    HTTP リファラーの制限

  • 必要に応じて、サブドメインやパスにワイルドカード文字(*)を使用できます。

次の表に、シナリオと制限の例を記載します。これらの例は、制限の厳しいものから緩いものへの順で記載されています。ユースケースに合った例のうち、最も制限の厳しいものを使用することをおすすめします。

シナリオ 制限
特定の URL を許可する。

正確なパスを指定して 1 つの制限を追加します。次に例を示します。

  • https://www.example.com/path
  • http://www.example.com/path/path
1 つのサブドメインまたはネイキッド ドメイン内の任意の URL を許可する。

ドメイン全体を許可するには、少なくとも 2 つの制限を設定する必要があります。

  1. 末尾のスラッシュを付けずにドメインの制限を設定します。次に例を示します。
    • https://www.example.com
    • http://sub.example.com
    • http://example.com
  2. パスにワイルドカードを含めた、ドメインの 2 つ目の制限を設定します。次に例を示します。
    • https://www.example.com/*
    • http://sub.example.com/*
    • http://example.com/*
  3. ドメインで HTTP と HTTPS の両方が許可されている場合は、制限を別個に追加する必要があります。
1 つのドメイン内の任意のサブドメイン URL を許可する。

少なくとも 2 つの制限を設定する必要があります。

  1. サブドメインにワイルドカードを使用し、末尾のスラッシュを付けずにドメインの制限を設定します。次に例を示します。
    • https://*.example.com
  2. パスにワイルドカードを含めた、ドメインの 2 つ目の制限を設定します。次に例を示します。
    • https://*.example.com/*
  3. ドメインで HTTP と HTTPS の両方が許可されている場合は、制限を別個に追加する必要があります。

API の制限

API の制限では、API キーを使用した呼び出しを許可する API を指定します。本番環境アプリケーションで使用されるすべての API キーに、API の制限を適用する必要があります。

API の制限を設定するには:

  1. [キーの制限] セクションで [API の制限] タブを選択します。

  2. プルダウンから API 名を選択します。

  3. API キーで呼び出す必要があるすべての API について、上記の手順を繰り返します。

  4. [保存] ボタンを選択します。

既存の API キーを表示する

既存の API キーを表示するには、GCP Console を使用します。GCP Console の [API とサービス] → [認証情報] パネルに移動すると、[API キー] ヘッダーの下に既存の API キーが表示されます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...