API キーを使用する

Google Maps Platform サービスでは、適切な認証情報を提供している API 呼び出し以外を制限することで、不正使用を防止しています。これらの認証情報は API キーの形式になります。API キーとは、Google の請求先アカウントをプロジェクトや特定の API、SDK に関連付ける一意の英数字文字列です。

このガイドでは、Google Maps Platform 用の API キーを作成、制限、使用する方法について説明します。

始める前に

Maps JavaScript API のご利用にあたっては、請求先アカウントと Maps JavaScript API が有効なプロジェクトが必要です。詳しくは、Cloud コンソールでのセットアップをご覧ください。

API キーを作成する

API キーは、使用量を正確に集計して課金するため、プロジェクトに関連付けられたリクエストであることを認証する一意の識別子です。少なくとも 1 つの API キーをプロジェクトに関連付ける必要があります。

API キーを作成するには:

コンソール

  1. [Google Maps Platform] > [認証情報] ページに移動します。

    [認証情報] ページに移動

  2. [認証情報] ページで、[認証情報を作成] > [API キー] をクリックします。
    [API キーを作成しました] ダイアログで、新しく作成された API キーが表示されます。
  3. [閉じる] をクリックします。
    新しい API キーは、[認証情報] ページの [API キー] に一覧で表示されます。
    (本番環境で使用する前に必ず API キーを制限するようにしてください)

Cloud SDK

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

詳しくは、Google Cloud SDKCloud SDK のインストール、および以下のコマンドをご覧ください。

API キーを制限する

アプリケーションに必要な API しか使用しないよう、API キーの使用に制限をかけておくことを強くおすすめします。API キーに制限をかけることにより、不正なリクエストからアプリケーションを守り、セキュリティを強化できます。詳しくは、API の保護に関するベスト プラクティスをご覧ください。

API キーを制限する手順は次のとおりです。

コンソール

  1. [Google Maps Platform] > [認証情報] ページに移動します。

    [認証情報] ページに移動

  2. 制限を設定する API キーを選択します。選択した API キーのプロパティ ページが表示されます。
  3. [キーの制限] で、次の制限を設定します。
    • アプリケーションの制限:
      1. 指定したウェブサイトからのリクエストを受け入れるには、[アプリケーションの制限] のリストで [HTTP リファラー(ウェブサイト)] を選択します。
      2. 参照元のウェブサイトを 1 つ以上指定します。ワイルドカード文字を使ってサブドメインを一括承認することも可能です。たとえば https://*.google.com と指定すれば、末尾が .google.com のサイトのリクエスト(HTTPS 経由のアクセス)をまとめて承認できます。www.domain.com を指定した場合、ワイルドカード付きの www.domain.com/* として機能するため、このホスト名でどのようなサブパスでも使用できます。 https://http:// はそのまま指定します。他のリファラー URL プロトコルを指定する場合は特殊な記法が必要になります。たとえば file:///path/to/__file_url__//path/to/* と記述します。ウェブサイトを有効化した後は、使用量が想定内で推移しているか確認しましょう。利用可能なプロトコルは次のとおりです。about://app://applewebdata://asset://chrome://content://file://ftp://ionic://local://ms-appx://ms-appx-web://ms-local-stream://prism://qrc://res://saphtmlp://
    • API の制限:
      1. [キーを制限] をクリックします。
      2. [API を選択] プルダウンから [Maps JavaScript API] を選択します。 Maps JavaScript API がリストに表示されない場合は、この API を有効にする必要があります)。
      3. プロジェクトでプレイス ライブラリを使用する場合は、[Places API] も選択します。同様に、プロジェクトで JavaScript API の他のサービス(Directions サービスDistance Matrix サービスElevation サービスGeocoding サービスなど)を使用する場合は、このリストで該当する API を有効にして、選択する必要があります。
  4. 変更が完了したら、[保存] をクリックします。

Cloud SDK

既存のキーを一覧表示します。

gcloud services api-keys list --project="PROJECT"

既存のキーに対する既存の制限を削除します。

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --clear-restrictions

既存のキーに新しい制限を設定します。

gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \
    --api-target="maps-backend.googleapis.com"
    --allowed-referrers="referer"

詳しくは、Google Cloud SDKCloud SDK のインストール、および以下のコマンドをご覧ください。

リクエストに API キーを追加する

すべての Maps JavaScript API リクエストに API キーを追加する必要があります。次の例では、YOUR_API_KEY を API キーに置き換えます。

<script>
  (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
    key: "YOUR_API_KEY",
    v: "weekly",
    // Use the 'v' parameter to indicate the version to use (weekly, beta, alpha, etc.).
    // Add other bootstrap parameters as needed, using camel case.
  });
</script>