このページでは、API Keys API を使用して API キーを作成および管理する方法について説明します。
API の呼び出しで API キーを使用する方法については、 Google Cloud APIs, API キーを使用するをご覧ください。
始める前に
このページでは、curl と Google Cloud CLI を使用して API Keys API にリクエストを送信します。API を試すための設定方法について詳しくは、
API Keys のスタートガイド
をご覧ください。
API キーを作成する
CreateKey メソッドを使用して API キーを作成できます。このメソッドには
Key パラメータが必要です。
Key オブジェクトの displayName フィールドと restrictions フィールドのみを指定できます。CreateKey は同期メソッドではありません。代わりに、
を呼び出すと、長時間実行
オペレーションが開始されます。CreateKey次の例では、CreateKey 呼び出しを発行して、制限のない API キーを作成します。
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys -X POST -d '{"displayName" : "Example API key"}'成功すると、このメソッドはレスポンスで長時間実行オペレーションを返します。長時間実行オペレーションのポーリングで説明されているように、operations.get呼び出しをnameフィールドの値を使用して繰り返し行います。operations.get
からのレスポンスに "done": true が含まれている場合、response オブジェクトには次のような Key が含まれます。
{ "name": "operations/akmf.p7-103621867718-06f94db2-7e91-4c58-b826-e6b80e4dc3eb", "done": true, "response": { "@type": "type.googleapis.com/google.api.apikeys.v2.Key", "name": "projects/PROJECT_NUMBER/locations/global/keys/aecd7943-98ff-4ce2-a876-ec1b37c671ca", "displayName": "Example API key", "keyString": "----REDACTED----", "createTime": "2021-03-23T17:39:46.721099Z", "uid": "aecd7943-98ff-4ce2-a876-ec1b37c671ca", "updateTime": "2021-03-23T17:39:47.046746Z", "etag": "k0bsYGkIvSxDVwNxyw49NQ==" } }
response オブジェクト内:
nameフィールドには、API キーの一意の識別子が含まれます。キー名を必要とする他のメソッドでは、nameフィールドの値を使用します。この値は Google Cloud コンソールには表示されませんが、ListKeysメソッドを呼び出して、 すべての API キーのnamesを取得できます。Key.nameフィールドは常に 次の形式です:projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.displayNameフィールドはコンソールのNameフィ 101Google Cloud ールドにマッピングされるため、displayNameを呼び出すときにCreateKeyを指定することをおすすめします。keyStringフィールドには、API キーを必要とする API に送信する文字列が含まれます。keyStringは、API keyフィールドに Google Cloud マッピングされます。GetKeyStringメソッドを呼び出して、API キーのkeyStringを取得できます。etagフィールドには、キーの現在の値に基づいてサーバーによって計算されたチェックサムが含まれます。UpdateKeyメソッドとDeleteKeyメソッドを呼び出すときに、etag値を渡してください。
ユーザー指定のキー ID
クエリ パラメータとして CreateKey メソッドの
keyId
を指定できます。指定すると、その値は Key.name の最後のコンポーネントになります。
たとえば、CreateKey の次の呼び出しについて考えてみます。
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?keyId=my-test-key1 -X POST -d '{"displayName" : "Example API key"}'この例では、Key.name フィールドの値は次のようになります。
"name": "projects/PROJECT_NUMBER/locations/global/keys/my-test-key1"
表示名を更新する
API キーの displayName を変更する場合、または displayName がない API キーに displayName を追加する場合は、UpdateKey メソッドを呼び出します。UpdateKey を呼び出すと、キーを更新する長時間実行オペレーションが開始されます。
次の例は、UpdateKey を呼び出す方法を示しています。
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?updateMask=displayName -X PATCH -d '{"displayName": "New display name", "etag" : "ETAG"}'operations.get からのレスポンスに "done": true が含まれている場合、response
には更新された displayName を持つ Key オブジェクトが含まれます。
API キーを削除する
API キーを削除するには、DeleteKey メソッドを使用します。DeleteKey を呼び出すと、キーを DELETED としてマークする長時間実行オペレーションが開始されます。
次の例は、DeleteKey を呼び出す方法を示しています。
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?etag="ETAG" -X DELETE
operations.get からのレスポンスに "done": true が含まれている場合、response
は次のようになります。
{ "name": "operations/akmf.cdabc4df-cbff-4420-8c7e-65dc832c945d", "done": true, "response": { "@type": "type.googleapis.com/google.api.apikeys.v2.Key" "name": "projects/PROJECT_NUMBER/locations/global/keys/aecd7943-98ff-4ce2-a876-ec1b37c671ca", "displayName": "Example API key", "keyString": "----REDACTED----", "createTime": "2021-03-23T17:39:46.721099Z", "uid": "aecd7943-98ff-4ce2-a876-ec1b37c671ca", "updateTime": "2021-03-23T17:39:47.046746Z", "deleteTime": "2021-03-24T22:35:37.290544Z", "etag": "k0bsYGkIvSxDVwNxyw49NQ==" } }
DELETED とマークされた API キーは使用できませんが、システムから完全に削除されるわけではありません。まだ存在しているが DELETED とマークされている API キーを一覧表示するには、ListKeys メソッドの show_deleted を true に設定します。
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true
30 日後に、API キーは完全に削除されます。
API キーを復元する
API キーが完全に削除される前に復元するには、UndeleteKey メソッドを呼び出します。UndeleteKey を呼び出すと、キーを ACTIVE としてマークする長時間実行オペレーションが開始されます。
次の例は、UndeleteKey を呼び出す方法を示しています。
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID/:undelete -X POST