このページでは、API キーの作成、編集、制限を行う方法について説明します。
API キーの概要
API キーを使用して API を認証する場合、API キーはプリンシパルを識別しません。API キーは、課金と割り当ての目的で、リクエストを Google Cloud プロジェクトに関連付けます。プリンシパルがなければ、リクエストされたオペレーションを実行する権限を呼び出し元が持っているかどうかを確認するために、リクエストが Identity and Access Management(IAM)を使用することはできません。
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
)が必要です。
始める前に
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C++
ローカル開発環境でこのページの C++ サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Java
ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Python
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
API キーを作成する
API キーを作成するには、次のいずれかのオプションを使用します。
コンソール
Google Cloud コンソールで、[認証情報] ページに移動します。
[認証情報の作成] を選択し、メニューから [API キー] を選択します。
[API キーを作成しました] ダイアログに、新しく作成されたキーの文字列が表示されます。
gcloud
API キーを作成するには、gcloud services api-keys create
コマンドを使用します。
DISPLAY_NAME
は、わかりやすいキー名に置き換えます。
gcloud services api-keys create --display-name=DISPLAY_NAME
C++
このサンプルを実行するには、API キー クライアント ライブラリをインストールする必要があります。
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 キーの使用を許可するウェブサイト、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 services api-keys update
コマンドを使用します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。ALLOWED_REFERRER_1
: HTTP リファラーの制限。必要に応じて制限を追加できます。制限はカンマで区切ります。更新コマンドでは、すべてのリファラーの制限を指定する必要があります。指定したリファラー制限により、キー上の任意の既存のリファラー制限が置き換えられます。
gcloud 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 services api-keys update
コマンドを使用して、サーバー(IP アドレス)の制限を API キーに追加します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。ALLOWED_IP_ADDR_1
: 許可する IP アドレス。IP アドレスは必要な数だけ追加できます。複数のアドレスを入力する場合は、カンマで区切ります。
gcloud 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 services api-keys update
コマンドを使用します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。SHA1_FINGERPRINT
とPACKAGE_NAME
: キーを使用できる Android アプリのアプリ情報。アプリは必要に応じていくつでも追加できます。追加の
--allowed-application
フラグを使用します。
gcloud 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 services api-keys update
メソッドを使用して、キーを使用できる iOS アプリを指定します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。ALLOWED_BUNDLE_ID
: この API キーを使用できるようにする iOS アプリのバンドル ID。バンドル ID は必要な数だけ追加できます。ID はカンマで区切ります。
gcloud 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 services api-keys update
コマンドを使用して、API キーで認証できるサービスを指定します。次の値を置き換えます。
KEY_ID
: 制限するキーの ID。SERVICE_1
、SERVICE_2
...: キーへのアクセスに使用できる API のサービス名。update コマンドでは、すべてのサービス名を指定する必要があります。指定されたサービス名がキーの既存のサービスを置き換えます。
サービス名を確認するには、API ダッシュボードで API を検索します。サービス名は
bigquery.googleapis.com
のような文字列です。gcloud 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 services api-keys lookup
コマンドを使用して、キー文字列からプロジェクト ID を取得します。
gcloud 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 services api-keys undelete
コマンドを使用します。gcloud 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 キーの安全性を保つためのベスト プラクティスをご覧ください。
- API Keys API について学習する。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-19 UTC。