Obtener información sobre las claves de API

En esta página, se describe cómo usar los métodos de la clave de API para realizar las siguientes acciones:

Cómo enumerar las claves de API en un proyecto

Puedes obtener una lista de todas las claves que pertenecen a un proyecto Google Cloud con el métodoListKeys:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys'

Si se ejecuta de forma correcta, recibirás una respuesta similar a la siguiente:

{
  "keys": [
    {
      "name": "projects/12345678/locations/global/keys/2885bf87-5b84-47fa-92af-08c3e9337349",
      "displayName": "API key 2",
      "createTime": "2019-05-29T22:07:22.036Z",
      "uid": "2885bf87-5b84-47fa-92af-08c3e9337349",
      "updateTime": "2019-05-29T22:07:22.058623Z",
      "restrictions": {
        "androidKeyRestrictions": {}
      },
      "etag": "zHib8eXEMCxe4ayQEbIaZg=="
    },
    {
      "name": "projects/12345678/locations/global/keys/a4db08b7-5729-4ba9-8c08-f2df493465a1",
      "displayName": "API key 1",
      "createTime": "2019-05-29T22:06:58.844Z",
      "uid": "a4db08b7-5729-4ba9-8c08-f2df493465a1",
      "updateTime": "2019-05-29T22:06:58.855103Z",
      "restrictions": {
        "androidKeyRestrictions": {}
      },
      "etag": "0L5KcPMGoNi53K5+FqPxiw=="
    }
  ]
}

De forma predeterminada, el método ListKeys devuelve una lista de las claves de API utilizables. Para ver la lista de todas las claves, incluidas las que están marcadas para su eliminación, agrega el parámetro de consulta show_deleted=true:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true'

Si se ejecuta de forma correcta, recibirás una respuesta similar a la siguiente:

{
  "keys": [
    {
      "name": "projects/12345678/locations/global/keys/5d3564ad-f08e-48df-b0ca-0f50858ba3f2",
      "displayName": "Key 1",
      "createTime": "2019-06-12T04:47:30.214Z",
      "uid": "5d3564ad-f08e-48df-b0ca-0f50858ba3f2",
      "updateTime": "2021-03-05T22:35:37.387645Z",
      "deleteTime": "2021-03-05T22:35:37.290544Z",
      "etag": "V96UGAyyz+6sUHttzK42pQ=="
    },
    {
      "name": "projects/12345678/locations/global/keys/7ad567fa-c11b-4903-99dc-88f89da7d73a",
      "displayName": "Key 2",
      "createTime": "2019-06-12T00:47:27.778Z",
      "uid": "7ad567fa-c11b-4903-99dc-88f89da7d73a",
      "updateTime": "2021-03-05T22:23:57.002187Z",
      "deleteTime": "2021-03-05T22:23:56.350234Z",
      "etag": "njPE6YjwHlrh6TLyxHibBg=="
    },
    {
      "name": "projects/12345678/locations/global/keys/a4db08b7-5729-4ba9-8c08-f2df493465a1",
      "displayName": "API key 1",
      "createTime": "2019-05-29T22:06:58.844Z",
      "uid": "a4db08b7-5729-4ba9-8c08-f2df493465a1",
      "updateTime": "2019-05-29T22:06:58.855103Z",
      "restrictions": {
        "androidKeyRestrictions": {}
      },
      "etag": "0L5KcPMGoNi53K5+FqPxiw=="
    }
  ]
}

El campo deleteTime almacena la fecha y hora en que se emitió el comando de eliminación. Las claves se borran de forma permanente 30 días después de que se emite el comando de eliminación.

Si tienes muchas claves de API en tu proyecto, tal vez prefieras paginar los resultados en lugar de que se devuelvan todas las claves. Para controlar la cantidad de resultados por página, agrega el parámetro de consulta pageSize establecido en la cantidad de resultados que deseas que se muestren:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?pageSize=25'

El final de la respuesta contiene el campo nextPageToken. Para obtener la siguiente página de resultados, incluye el token en la siguiente llamada agregando el parámetro de búsqueda pageToken:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?pageSize=25&pageToken=TOKEN'

Cómo obtener metadatos para una clave de API

Para obtener metadatos sobre una clave de API específica, llama al método GetKey con Key.name:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID'

Cómo obtener la cadena de clave

Por motivos de seguridad, los métodos ListKeys y GetKey no devuelven el objeto Key.keyString. Para obtener el keyString de una clave de API, llama al método GetKeyString con el Key.name:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/Key.name/keyString'

El usuario que llama debe tener el permiso apikeys.keys.getKeyString para llamar al método GetKeyString.

Cómo buscar un nombre de clave y un proyecto por cadena de clave

Si tienes un keyString y necesitas buscar la clave name y el proyecto propietario de la clave de API, llama al método LookupKey y especifica el parámetro de búsqueda keyString:

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING'

La respuesta es similar a lo que se muestra a continuación:

{
  "parent": "projects/12345678/locations/global",
  "name": "projects/12345678/locations/global/keys/2c437be3-1c77-417b-8f6f-748189760227"
}

En la respuesta, figura lo siguiente:

  • El campo parent contiene el número del proyecto Google Cloud en el que se creó la clave de API.
  • El campo name contiene el identificador único de la clave de API.

¿Qué sigue?