このトピックでは、Maps SDK for Android 用の API キーを作成してアプリに追加し、そのキーを制限することでアプリを保護する方法を説明します。この SDK を使うアプリには、API キーを必ず追加してください。
始める前に
Maps SDK for Android のご利用にあたっては、請求先アカウントと Maps SDK for Android が有効なプロジェクトが必要です。詳しくは、Cloud Console での設定をご覧ください。
API キーを作成する
API キーは、使用量を正確に集計して課金するため、プロジェクトに関連付けられたリクエストであることを認証する一意の識別子です。少なくとも 1 つの API キーをプロジェクトに関連付ける必要があります。
API キーを作成するには:
コンソール
-
[Google Maps Platform] > [認証情報] ページに移動します。
-
[認証情報] ページで、[認証情報を作成] > [API キー] をクリックします。
[API キーを作成しました] ダイアログで、新しく作成された API キーが表示されます。 -
[閉じる] をクリックします。
新しい API キーは、[認証情報] ページの [API キー] に一覧で表示されます。
(本番環境で使用する前に必ず API キーを制限するようにしてください)
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
詳しくは、Google Cloud SDK、Cloud SDK のインストール、および以下のコマンドをご覧ください。
API キーの制限
アプリケーションに必要な API しか使用しないよう、API キーの使用に制限をかけておくことを強くおすすめします。API キーに制限をかけることにより、不正なリクエストからアプリケーションを守り、セキュリティを強化できます。詳しくは、API の保護に関するベスト プラクティスをご覧ください。
API キーを制限する際は、そのアプリケーションの署名に使われた署名鍵の SHA-1 証明書フィンガープリントを指定する必要があります。証明書には次の 2 種類があります。
- デバッグ用証明書: この証明書は、テスト中のアプリおよび他の非本番環境のコードでのみ使用できます。デバッグ用証明書で署名されたアプリは公開しないでください。この証明書は、デバッグビルドを行う際に Android SDK Tools によって自動的に生成されます。
- リリース用証明書: この証明書は、アプリをアプリストアにリリースする準備が整ったときに使用します。この証明書は、リリースビルドを行う際に Android SDK Tools によって生成されます。
デジタル証明書について詳しくは、アプリへの署名のガイドをご覧ください。
証明書のフィンガープリントを取得する方法については、クライアントの認証に関する記事をご覧ください。Play アプリ署名を使用している場合は、Google Play Console のアプリ署名ページに移動して証明書のフィンガープリントを取得する必要があります。
API キーを制限するには:
コンソール
-
[Google Maps Platform] > [認証情報] ページに移動します。
- 制限を設定する API キーを選択します。選択した API キーのプロパティ ページが表示されます。
- [キーの制限] で、次の制限を設定します。
- アプリケーションの制限:
- [Android アプリ] を選択します。
- [+ パッケージ名とフィンガープリントを追加] をクリックします。
- パッケージ名と SHA-1 証明書のフィンガープリントを入力します。例:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- API の制限:
- [キーを制限] をクリックします。
- [API を選択] プルダウンから [Maps SDK for Android] を選択します。 Maps SDK for Android がリストに表示されない場合は、この SDK を有効にする必要があります。
- 変更が完了したら、[保存] をクリックします。
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-android-backend.googleapis.com" --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"
詳しくは、Google Cloud SDK、Cloud SDK のインストール、および以下のコマンドをご覧ください。