このページでは、API キーを使用して、API キーをサポートする Google Cloud APIs およびサービスに対する認証を行う方法について説明します。
ほとんどの Google Cloud APIs は API キーをサポートしていません。この認証方法を使用する前に、使用する API が API キーをサポートしていることを確認してください。
API キーを使用して Google Maps Platform の認証を行う方法については、Google Maps Platform のドキュメントをご覧ください。API Keys API の詳細については、API Keys API のドキュメントをご覧ください。API キーの概要
API キーを使用して API を認証する場合、API キーはプリンシパルを識別しません。また、認可情報も提供しません。したがって、リクエストされた操作を実行する権限が呼び出し元にあるかどうかを Identity and Access Management(IAM)へのリクエストにより確認することはありません。
API キーは、課金と割り当てのために、リクエストを Google Cloud プロジェクトに関連付けます。API キーは呼び出し元を特定しないため、一般公開のデータやリソースへアクセスする際によく使用されます。
多くの Google Cloud APIs では、認証に API キーを使用できません。使用するサービスまたは API の認証ドキュメントで、API キーに対応しているかどうかを確認してください。
API キーには次のコンポーネントがあり、キーの管理と使用に使用します。
- 文字列
- API キー文字列は暗号化された文字列です(例:
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
)。API キーを使用して認証する場合は、常にキーの文字列を使用します。API キーには、関連付けられた JSON ファイルがありません。 - ID
- API キー ID は、Google Cloud 管理ツールでキーを一意に識別するために使用されます。キー ID を使用して認証することはできません。キー ID は、Google Cloud コンソールのキー編集ページの URL で確認できます。Google Cloud CLI を使用してプロジェクトのキーを一覧表示することで、キー ID を取得することもできます。
- 表示名
- 表示名は、キーを作成または更新するときに設定できるオプションのわかりやすい名前です。
API キーを管理するには、そのプロジェクトで API キー管理者のロール(roles/serviceusage.apiKeysAdmin
)が必要です。
始める前に
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
このページの gcloud CLI のサンプルは、次のいずれかの開発環境から使用できます。
Java
このページの Java サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Python
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
API キーを作成する
API キーを作成するには、次のいずれかのオプションを使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
[認証情報の作成] を選択し、メニューから [API キー] を選択します。
[API キーを作成しました] ダイアログに、新しく作成されたキーの文字列が表示されます。
gcloud
API キーを作成するには、gcloud beta services api-keys create
コマンドを使用します。
DISPLAY_NAME
は、わかりやすいキー名に置き換えます。
gcloud beta services api-keys create --display-name=DISPLAY_NAME
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
API キーを作成するには、keys.create
メソッドを使用します。このリクエストは、長時間実行オペレーションを返します。新しいキーの情報を取得するには、オペレーションをポーリングする必要があります。
次の値を置き換えます。
DISPLAY_NAME
: 省略可。キーのわかりやすい名前。PROJECT_ID
: Google Cloud プロジェクト ID または名前。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
REST API を使用した API キーの作成の詳細については、API Keys API ドキュメントの API キーの作成をご覧ください。
キー文字列をコピーして安全に保管します。後で削除する予定のテストキーを使用している場合を除き、アプリケーションと API キーの制限を追加してください。
API キーを使用する
API が API キーの使用をサポートしている場合は、API キーを使用して API を認証できます。REST リクエストと、それをサポートするクライアント ライブラリで、API キーを使用します。
REST で API キーを使用する
API キーは、次の形式のクエリ パラメータとして REST API 呼び出しに渡すことができます。API_KEY
は、API キーのキー文字列に置き換えます。
たとえば、documents.analyzeEntities
に対する Cloud Natural Language API リクエストの API キーを渡すには、次のようにします。
POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY
または、x-goog-api-key
ヘッダーを使用してキーを渡すこともできます。このヘッダーは gRPC リクエストとともに使用する必要があります。
curl -X POST \ -H "X-goog-api-key: API_KEY" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://translation.googleapis.com/language/translate/v2"
クライアント ライブラリで API キーを使用する
API キーのクライアント ライブラリのサポートは言語固有です。
Python
この例では、認証用に API キーをサポートする Cloud Natural Language API を使用し、ライブラリに API キーを提供する方法を示します。
このサンプルを実行するには、Natural Language クライアント ライブラリと API キー クライアント ライブラリをインストールする必要があります。
API キーを保護する
アプリケーションで API キーを使用する場合は、保存時と転送時の両方でキーの安全確保に努めてください。API キーが公開されると、アカウントに対して予想外の料金が課される可能性があります。API キーの安全性を保つには、以下のベスト プラクティスに従ってください。
キーに API キー制限を追加します。
制限を追加することで、API キーの使用方法を制限し、API キーが不正使用された場合の影響を軽減できます。
不要な API キーを削除して、攻撃を受けるリスクを最小限に抑えます。
API キーを定期的に再作成します。
新しい API キーを定期的に作成し、古いキーを削除して、新しい API キーを使用するようにアプリケーションを更新します。
API キーの制限を適用する
API キーは、デフォルトでは制限されません。制限されていないキーは、誰でもどこからでも使用できるため安全ではありません。本番環境アプリケーションの場合は、アプリケーションの制限と API の制限の両方を設定する必要があります。
アプリケーションの制限を追加する
アプリケーションの制限では、API キーの使用を許可するウェブサイト、IP アドレス、またはアプリを指定します。
一度に適用できるアプリケーションの制限は 1 種類のみです。アプリケーションのニーズに合わせて、制限のタイプを選択します。
オプション | アプリケーションの種類 | メモ |
---|---|---|
HTTP リファラー | ウェブ アプリケーション | このキーを使用できるウェブサイトを指定します。 |
IP アドレス | 特定のサーバーによって呼び出されるアプリケーション | キーを使用できるサーバーまたは cron ジョブを指定します。 |
Android アプリ | Android アプリ | キーを使用できる Android アプリを指定します。 |
iOS アプリ | iOS アプリ | キーを使用できる iOS バンドルを指定します。 |
HTTP リファラー
API キーを使用できるウェブサイトを制限するには、HTTP リファラーの制限を 1 つ以上追加します。
サブドメインまたはパスにはワイルドカード文字(*
)を使用できますが、URL の途中にワイルドカード文字を挿入することはできません。たとえば、*.example.com
は有効で、.example.com
で終わるすべてのサイトを受け入れます。しかし、mysubdomain*.example.com
は有効な制限ではありません。
HTTP リファラーの制限にはポート番号を含めることができます。ポート番号を含めると、そのポートを使用するリクエストのみが照合されます。ポート番号を指定しない場合、任意のポート番号からのリクエストが照合されます。
API キーには、最大 1,200 件の HTTP リファラーを追加できます。
次の表に、シナリオとブラウザの制限の例を示します。
シナリオ | 制限事項 |
---|---|
特定の URL を許可する | 正確なパスの URL を追加してください。例:www.example.com/path www.example.com/path/path 一部のブラウザでは、クロスオリジン リクエストのオリジン URL のみを送信するリファラー ポリシーが実装されています。これらのブラウザのユーザーは、ページ限定 URL の制限が設定されたキーを使用できません。 |
サイトの任意の URL を許可する | allowedReferers リストに 2 つの URL を設定する必要があります。
|
1 つのサブドメインまたはネイキッド ドメイン内の任意の URL を許可する |
ドメイン全体を許可するには、
|
API キーを特定のウェブサイトに制限するには、次のいずれかのオプションを使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
制限する API キーの名前をクリックします。
[アプリケーションの制限] で [HTTP リファラー] を選択します。
追加する制限ごとに、[項目を追加] をクリックし、制限を入力して、[完了] をクリックします。
[保存] をクリックして変更を保存し、API キーリストに戻ります。
gcloud
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
gcloud services api-keys list
コマンドを使用して、プロジェクト内のキーを一覧表示します。API キーに HTTP リファラーの制限を追加するには、
gcloud beta services api-keys update
コマンドを使用します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。ALLOWED_REFERRER_1
: HTTP リファラーの制限。必要に応じて制限を追加できます。制限はカンマで区切ります。更新コマンドでは、すべてのリファラーの制限を指定する必要があります。指定したリファラー制限により、キー上の任意の既存のリファラー制限が置き換えられます。
gcloud beta services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、keys.list メソッドを使用します。ID はレスポンスの
uid
フィールドに示されます。PROJECT_ID
は、Google Cloud プロジェクト ID または名前に置き換えます。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
API キーに HTTP リファラーの制限を追加するには、keys.patch メソッドを使用します。
このリクエストは、長時間実行オペレーションを返します。オペレーションをポーリングして、オペレーションが完了したタイミングを把握し、オペレーションのステータスを取得する必要があります。
次の値を置き換えます。
ALLOWED_REFERRER_1
: HTTP リファラーの制限。必要に応じて制限を追加できます。制限はカンマで区切ります。すべてのリファラー制限にリクエストを指定する必要があります。指定したリファラー制限により、キー上の任意の既存のリファラー制限が置き換えられます。
PROJECT_ID
: Google Cloud プロジェクト ID または名前。KEY_ID
: 制限するキーの ID。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "browserKeyRestrictions": { "allowedReferrers": ["ALLOWED_REFERRER_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
REST API を使用してキーに HTTP リファラー制限を追加する方法については、API Keys API ドキュメントのブラウザ制限の追加をご覧ください。
IP アドレス
API キーの使用が許可されている呼び出し元(ウェブサーバーや cron ジョブなど)の IP アドレスを 1 つ以上指定できます。IP アドレスは、次のいずれかの形式で指定できます。
- IPv4(
198.51.100.1
) - IPv6(
2001:db8::1
) - CIDR 表記を使用したサブネット(
198.51.100.0/24
、2001:db8::/64
)
localhost
の使用は、サーバーの制限ではサポートされていません。
API キーを特定の IP アドレスに制限するには、次のいずれかのオプションを使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
制限する API キーの名前をクリックします。
[アプリケーションの制限] で [IP アドレス] を選択します。
追加する IP アドレスごとに [項目を追加] をクリックし、アドレスを入力して [完了] をクリックします。
[保存] をクリックして変更を保存し、API キーリストに戻ります。
gcloud
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
gcloud services api-keys list
コマンドを使用して、プロジェクト内のキーを一覧表示します。gcloud beta services api-keys update
コマンドを使用して、サーバー(IP アドレス)の制限を API キーに追加します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。ALLOWED_IP_ADDR_1
: 許可する IP アドレス。IP アドレスは必要な数だけ追加できます。複数のアドレスを入力する場合は、カンマで区切ります。
gcloud beta services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、keys.list メソッドを使用します。ID はレスポンスの
uid
フィールドに示されます。PROJECT_ID
は、Google Cloud プロジェクト ID または名前に置き換えます。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
keys.patch メソッドを使用して、サーバー(IP アドレス)の制限を API キーに追加します。
このリクエストは、長時間実行オペレーションを返します。オペレーションをポーリングして、オペレーションが完了したタイミングを把握し、オペレーションのステータスを取得する必要があります。
次の値を置き換えます。
ALLOWED_IP_ADDR_1
: 許可する IP アドレス。IP アドレスは必要な数だけ追加できます。制限はカンマで区切ります。すべての IP アドレスにリクエストを指定する必要があります。指定したリファラー制限により、キー上の任意の既存の IP アドレス制限が置き換えられます。
PROJECT_ID
: Google Cloud プロジェクト ID または名前。KEY_ID
: 制限するキーの ID。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "serverKeyRestrictions": { "allowedIps": ["ALLOWED_IP_ADDR_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
REST API を使用してキーに IP アドレスの制限を追加する方法について詳しくは、API Keys API ドキュメントのサーバー制限の追加をご覧ください。
Android アプリ
API キーの使用を特定の Android アプリに制限できます。アプリごとに、パッケージ名と 20 バイトの SHA-1 証明書のフィンガープリントを指定する必要があります。
リクエストで API キーを使用する場合は、次の HTTP ヘッダーを使用してパッケージ名と証明書フィンガープリントを指定する必要があります。
X-Android-Package
X-Android-Cert
API キーを 1 つ以上の Android アプリに制限するには、次のいずれかのオプションを使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
制限する API キーの名前をクリックします。
[アプリケーションの制限] で、[Android アプリ] を選択します。
追加する Android アプリごとに、[項目を追加] をクリックし、パッケージ名と SHA-1 証明書のフィンガープリントを入力して、[完了] をクリックします。
[保存] をクリックして変更を保存し、API キーリストに戻ります。
gcloud
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
gcloud services api-keys list
コマンドを使用して、プロジェクト内のキーを一覧表示します。API キーを使用できる Android アプリを指定するには、
gcloud beta services api-keys update
コマンドを使用します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。SHA1_FINGERPRINT
とPACKAGE_NAME
: キーを使用できる Android アプリのアプリ情報。アプリは必要に応じていくつでも追加できます。追加の
--allowed-application
フラグを使用します。
gcloud beta services api-keys update KEY_ID \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、keys.list メソッドを使用します。ID はレスポンスの
uid
フィールドに示されます。PROJECT_ID
は、Google Cloud プロジェクト ID または名前に置き換えます。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
keys.patch メソッドを使用して、API キーを使用できる Android アプリを指定します。
このリクエストは、長時間実行オペレーションを返します。オペレーションをポーリングして、オペレーションが完了したタイミングを把握し、オペレーションのステータスを取得する必要があります。
次の値を置き換えます。
SHA1_FINGERPRINT_1
と PACKAGE_NAME_1: キーを使用できる Android アプリのアプリ情報。情報は必要な数のアプリに追加できます。AndroidApplication オブジェクトを区切るにはカンマを使用します。すべてのアプリケーションにリクエストを提供する必要があります。指定したアプリケーションにより、キー上の任意の既存のアプリケーションが置き換えられます。
PROJECT_ID
: Google Cloud プロジェクト ID または名前。KEY_ID
: 制限するキーの ID。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "androidKeyRestrictions": { "allowedApplications": [ { "sha1Fingerprint": "SHA1_FINGERPRINT_1", "packageName": "PACKAGE_NAME_1" }, ] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
REST API を使用してキーに Android アプリの制限を追加する方法については、API Keys API ドキュメントの Android の制限の追加をご覧ください。
iOS アプリ
各アプリのバンドル ID を指定して、特定の iOS アプリに API キーの使用を制限できます。
リクエストで API キーを使用する場合は、X-Ios-Bundle-Identifier
HTTP ヘッダーを使用してバンドル ID を指定する必要があります。
API キーを 1 つ以上の iOS アプリに制限するには、次のいずれかのオプションを使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
制限する API キーの名前をクリックします。
[アプリケーションの制限] で、[iOS アプリ] を選択します。
追加する iOS アプリごとに [項目を追加] をクリックし、バンドル ID を入力して、[完了] をクリックします。
[保存] をクリックして変更を保存し、API キーリストに戻ります。
gcloud
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
gcloud services api-keys list
コマンドを使用して、プロジェクト内のキーを一覧表示します。gcloud beta services api-keys update
メソッドを使用して、キーを使用できる iOS アプリを指定します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。ALLOWED_BUNDLE_ID
: この API キーを使用できるようにする iOS アプリのバンドル ID。バンドル ID は必要な数だけ追加できます。ID はカンマで区切ります。
gcloud beta services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、keys.list メソッドを使用します。ID はレスポンスの
uid
フィールドに示されます。PROJECT_ID
は、Google Cloud プロジェクト ID または名前に置き換えます。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
API キーを使用できる iOS アプリを指定するには、keys.patch メソッドを使用します。
このリクエストは、長時間実行オペレーションを返します。オペレーションをポーリングして、オペレーションが完了したタイミングを把握し、オペレーションのステータスを取得する必要があります。
次の値を置き換えます。
ALLOWED_BUNDLE_ID
: キーを使用できる iOS アプリのバンドル ID。情報は必要な数のアプリに追加できます。バンドル ID はカンマで区切ります。すべてのバンドル ID にリクエストを指定する必要があります。指定したバンドル ID により、そのキーで許可されている既存のアプリケーションが置き換えられます。
PROJECT_ID
: Google Cloud プロジェクト ID または名前。KEY_ID
: 制限するキーの ID。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "iosKeyRestrictions": { "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
REST API を使用してキーに iOS アプリの制限を追加する方法については、API Keys API ドキュメントの iOS の制限の追加をご覧ください。
API 制限を追加する
API の制限では、API キーを使用した呼び出しを許可する API を指定します。
API 制限を追加するには、次のいずれかの方法を使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
制限する API キーの名前をクリックします。
[API の制限] セクションで、[キーを制限] をクリックします。
API キーをアクセスに使用するすべての API を選択します。
[保存] をクリックして変更を保存し、API キーリストに戻ります。
gcloud
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
gcloud services api-keys list
コマンドを使用して、プロジェクト内のキーを一覧表示します。gcloud beta services api-keys update
コマンドを使用して、API キーで認証できるサービスを指定します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。SERVICE_1
、SERVICE_2
...: キーへのアクセスに使用できる API のサービス名。update コマンドでは、すべてのサービス名を指定する必要があります。指定されたサービス名がキーの既存のサービスを置き換えます。
サービス名を確認するには、API ダッシュボードで API を検索します。サービス名は
bigquery.googleapis.com
のような文字列です。gcloud beta services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
制限するキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、keys.list メソッドを使用します。ID はレスポンスの
uid
フィールドに示されます。PROJECT_ID
は、Google Cloud プロジェクト ID または名前に置き換えます。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
keys.patch メソッドを使用して、API キーで認証できるサービスを指定します。
このリクエストは、長時間実行オペレーションを返します。オペレーションをポーリングして、オペレーションが完了したタイミングを把握し、オペレーションのステータスを取得する必要があります。
次の値を置き換えます。
SERVICE_1
、SERVICE_2
...: キーへのアクセスに使用できる API のサービス名。リクエストにはすべてのサービス名を指定する必要があります。指定されたサービス名がキーの既存のサービスを置き換えます。
サービス名を確認するには、API ダッシュボードで API を検索します。サービス名は
bigquery.googleapis.com
のような文字列です。PROJECT_ID
: Google Cloud プロジェクト ID または名前。KEY_ID
: 制限するキーの ID。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "apiTargets": [ { "service": "SERVICE_1" }, { "service" : "SERVICE_2" }, ] } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
REST API を使用してキーに API の制限を追加する方法については、API Keys API ドキュメントの API の制限の追加をご覧ください。
キー文字列からプロジェクト情報を取得する
API キーがどの Google Cloud プロジェクトに関連付けられているかは、その文字列から判断できます。
KEY_STRING
は、プロジェクト情報が必要なキー文字列に置き換えます。
gcloud
gcloud beta services api-keys lookup
コマンドを使用して、キー文字列からプロジェクト ID を取得します。
gcloud beta services api-keys lookup KEY_STRING
Java
このサンプルを実行するには、google-cloud-apikeys
クライアント ライブラリをインストールする必要があります。
Python
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
REST
lookupKey
メソッドを使用して、キー文字列からプロジェクト ID を取得します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"
API キーの削除を取り消す
API キーを誤って削除した場合、キーを削除してから 30 日以内であれば、そのキーの削除を取り消す(復元する)ことができます。30 日を経過すると、API キーの削除を取り消すことはできません。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
[削除した認証情報を復元] をクリックします。
復元したい API キーを探して、そのキーの [復元] をクリックします。
API キーの削除が取り消されるまでに、数分かかることがあります。反映されると、削除を取り消した API キーが API キーのリストに表示されます。
gcloud
削除を取り消すキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
gcloud services api-keys list --show-deleted
コマンドを使用して、プロジェクトで削除されたキーを一覧表示します。API キーの削除を取り消すには、
gcloud beta services api-keys undelete
コマンドを使用します。gcloud beta services api-keys undelete KEY_ID
次の値を置き換えます。
KEY_ID
: 削除を取り消すキーの ID。
REST
削除を取り消すキーの ID を取得します。
ID は表示名やキー文字列とは異なります。ID を取得するには、
showDeleted
クエリ パラメータをtrue
に設定して、keys.list メソッドを使用します。キー ID はレスポンスのuid
フィールドに示されます。PROJECT_ID
は、Google Cloud プロジェクト ID または名前に置き換えます。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys?showDeleted=true"
API キーの削除を取り消すには、undelete メソッドを使用します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID:undelete"
このリクエストは、長時間実行オペレーションを返します。オペレーションをポーリングして、オペレーションが完了したタイミングを把握し、オペレーションのステータスを取得する必要があります。
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID または名前。KEY_ID
: 制限するキーの ID。
長時間実行オペレーションをポーリングする
API Keys API メソッドは、長時間実行オペレーションを使用します。REST API を使用して API キーの作成と管理を行う場合は、最初のメソッドのリクエストからオペレーション オブジェクトが返されます。オペレーション名を使用して、長時間実行オペレーションをポーリングします。長時間実行リクエストが完了したときに、オペレーションをポーリングすると、長時間実行リクエストからデータが返されます。
長時間実行 API Keys API オペレーションをポーリングするには、operations.get
メソッドを使用します。
OPERATION_NAME
は、長時間実行オペレーションによって返されたオペレーション名に置き換えます。例: operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/OPERATION_NAME"
API キーの制限
プロジェクトごとに最大 300 個の API キーを作成できます。これはシステム上の上限です。割り当て増加リクエストを使用して変更することはできません。
API キーがさらに必要な場合は、複数のプロジェクトを使用する必要があります。
次のステップ
- 認証方法の概要を表示する。
- API Keys API について学習する。