En esta página, se describe cómo usar las claves de API para autenticarte en las APIs de Google Cloud y los servicios que admiten las claves de API.
La mayoría de las APIs de Google Cloud no admiten claves de API. Verifica que la API que quieras usar admita claves de API antes de usar este método de autenticación.
Si deseas obtener información sobre el uso de claves de API para autenticarte en Google Maps Platform, consulta la documentación de Google Maps Platform. Para obtener más información sobre la API de las claves de API, consulta la documentación de la API de claves de API.Introducción a las claves de API
Cuando usas una clave de API para autenticarte en una API, esta no identifica una principal ni proporciona información de autorización. Por lo tanto, la solicitud no usa la administración de identidades y accesos (IAM) para verificar si el emisor tiene permiso para realizar la operación solicitada.
La clave de API asocia la solicitud con un proyecto de Google Cloud para fines de facturación y cuota. Debido a que las claves de API no identifican al emisor, a menudo se usan para acceder a recursos o datos públicos.
Muchas APIs de Google Cloud no aceptan claves de API para la autenticación. Revisa la documentación de autenticación del servicio o la API que deseas usar para determinar si es compatible con las claves de API.
Una clave de API tiene los siguientes componentes, que se usan para administrar y usar la clave:
- String
- La string de clave de API es una string encriptada, por ejemplo,
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
. Cuando uses una clave de API para autenticar, siempre usarás la string de la clave. Las claves de API no tienen un archivo JSON asociado. - ID
- Las herramientas administrativas de Google Cloud usan el ID de la clave de API para identificar de forma única la clave. No se puede usar el ID de clave para la autenticación. El ID de clave se puede encontrar en la URL de la página de edición de la clave en la consola de Google Cloud. También puedes obtener el ID de clave a través de Google Cloud CLI para enumerar las claves de tu proyecto.
- Nombre visible
- El nombre visible es un nombre descriptivo y opcional de la clave, que puedes configurar cuando creas o actualizas la clave.
Para administrar las claves de API, debes tener el rol de administrador de claves de API (roles/serviceusage.apiKeysAdmin
) en el proyecto.
Antes de comenzar
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.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- 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.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- 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.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Crea una clave de API
Para crear una clave de API, usa una de las siguientes opciones:
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en Crear credenciales y, luego, selecciona Clave de API en el menú.
Se mostrará la string a la clave recién creada en el cuadro de diálogo Se creó la clave de API.
gcloud
Usa el
comando gcloud services api-keys create
para crear una clave de API.
Reemplaza DISPLAY_NAME
por un nombre descriptivo para tu clave.
gcloud services api-keys create --display-name=DISPLAY_NAME
Java
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Usarás el
método keys.create
para crear una clave de API. Esta solicitud muestra una operación de larga duración. Debes consultar la operación para obtener la información de la clave nueva.
Reemplaza los siguientes valores:
DISPLAY_NAME
: Opcional Un nombre descriptivo para tu clave.PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.
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"
Para obtener más información sobre cómo crear claves de API con la API de REST, consulta Crea una clave de API en la documentación de la API de claves de API.
Copia tu string de clave y mantenla segura. A menos que uses una clave de prueba que pretendas borrar más adelante, agrega restricciones de aplicación y de clave de API.
Usa una clave de API
Si una API admite el uso de claves de API, puedes usar claves de API para autenticarla. Puedes usar claves de API con solicitudes de REST y bibliotecas cliente que las admitan.
Usa una clave de API con REST
Puedes pasar la clave de API a una llamada a la API de REST como un parámetro de consulta con el siguiente formato. Reemplaza API_KEY
por la string de clave de tu clave de API.
Por ejemplo, si deseas pasar una clave de API para solicitar documents.analyzeEntities
a la API de Cloud Natural Language, usa lo siguiente:
POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY
Como alternativa, puedes usar el encabezado x-goog-api-key
para pasar la clave.
Este encabezado se debe usar con solicitudes de 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"
Usa una clave de API con bibliotecas cliente
La compatibilidad de la biblioteca cliente con las claves de API es específica del lenguaje.
Python
En este ejemplo, se usa la API de Cloud Natural Language, que admite claves de API para la autenticación, a fin de demostrar cómo se proporciona una clave de API a la biblioteca.
Para ejecutar esta muestra, debes instalar la biblioteca cliente de Natural Language y la biblioteca cliente de claves de API.
Protege una clave de API
Cuando uses claves de API en tus aplicaciones, asegúrate de que se mantengan seguras durante el almacenamiento y la transmisión. Si expones tus claves de API de forma pública, puedes generar cargos inesperados en tu cuenta. Para ayudarte a mantener tus claves de API seguras, sigue estas prácticas recomendadas:
Agrega restricciones de clave de API a tu clave.
Si agregas restricciones, puedes limitar las formas en que se puede usar una clave de API, lo que reduce el impacto de una clave de API vulnerada.
Borra las claves de API innecesarias para minimizar la exposición a los ataques.
Recrea tus claves de API de forma periódica.
Crea periodicamente claves de API nuevas de forma periódica, borrar las claves antiguas y actualizar tus aplicaciones para que usen las claves de API nuevas.
Aplica restricciones de claves de API
Las claves de API no están restringidas de forma predeterminada. Las claves no restringidas son inseguras porque cualquier persona puede usarlas desde cualquier lugar. Para las aplicaciones de producción, debes establecer restricciones de aplicaciones y restricciones de API.
Agrega restricciones de aplicaciones
Las restricciones de aplicaciones especifican qué sitios web, direcciones IP o apps pueden usar una clave de API.
Solo puedes aplicar un tipo de restricción de aplicación a la vez. Elige el tipo de restricción según el tipo de tu aplicación:
Opción | Application type | Notas |
---|---|---|
URL de referencia HTTP | Aplicaciones web | Especifica los sitios web que pueden usar la clave. |
Direcciones IP | Aplicaciones llamadas por servidores específicos | Especifica los servidores o los trabajos cron que pueden usar la clave. |
Apps para Android | Aplicaciones para Android | Especifica la aplicación para Android que puede usar la clave. |
Apps para iOS | Aplicaciones para iOS | Especifica los paquetes de iOS que pueden usar la clave. |
URL de referencia HTTP
Para restringir los sitios web que pueden usar tu clave de API, agrega una o más restricciones de referente HTTP.
Puedes reemplazar un carácter comodín (*
) por el subdominio o la ruta, pero no puedes insertar un carácter comodín en el medio de la URL. Por ejemplo, *.example.com
es válido y acepta todos los sitios que terminan en .example.com
. Sin embargo, mysubdomain*.example.com
no es una restricción válida.
Los números de puerto se pueden incluir en las restricciones de referente HTTP. Si incluyes un número de puerto, solo se detectarán coincidencias con las solicitudes que usen ese puerto. Si no especificas un número de puerto, las solicitudes de cualquier número de puerto coincidirán.
Puedes agregar hasta 1,200 referentes HTTP a una clave de API.
En la siguiente tabla, se muestran algunos ejemplos de situaciones y restricciones de navegador:
Situación | Restricciones |
---|---|
Permite una URL específica | Agrega una URL con una ruta de acceso exacta. Por ejemplo:www.example.com/path www.example.com/path/path Algunos navegadores implementan una política de referencia que envía solo la URL de origen para las solicitudes de origen cruzado. Los usuarios de estos navegadores no pueden usar claves con restricciones de URL específicas de una página. |
Permitir cualquier URL en tu sitio | Debes establecer dos URLs en la lista allowedReferers .
|
Permitir cualquier URL en un solo subdominio o dominio simple |
Debes establecer dos URLs en la lista
|
Para restringir tu clave de API a sitios web específicos, usa una de las siguientes opciones:
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en el nombre de la clave de API que deseas restringir.
En la sección Restricciones de aplicaciones, selecciona URL de referencia HTTP.
Para cada restricción que desees agregar, haz clic en Agregar un elemento, ingresa la restricción y haz clic en Listo.
Haz clic en Guardar para guardar los cambios y volver a la lista de claves de API.
gcloud
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el comando
gcloud services api-keys list
para enumerar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para agregar restricciones de referentes HTTP a una clave de API.Reemplaza los siguientes valores:
KEY_ID
: Es el ID de la clave que deseas restringir.ALLOWED_REFERRER_1
: Es la restricción de referente HTTP.Puedes agregar tantas restricciones como sea necesario. Usa comas para separar las restricciones. Debes proporcionar todas las restricciones de referencia con el comando update. Las restricciones de referencia que se proporcionan reemplazan cualquier restricción de referencia existente en la clave.
gcloud services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el método keys.list. El ID se enumera en el campo
uid
de la respuesta.Reemplaza
PROJECT_ID
por el ID o el nombre de tu proyecto de Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Usa el método keys.patch para agregar restricciones de referentes HTTP a la clave de API.
Esta solicitud muestra una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Reemplaza los siguientes valores:
ALLOWED_REFERRER_1
: Es la restricción de referente HTTP.Puedes agregar tantas restricciones como sea necesario. Usa comas para separar las restricciones. Debes proporcionar todas las restricciones de referencia con la solicitud. Las restricciones de referencia que se proporcionan reemplazan cualquier restricción de referencia existente en la clave.
PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.KEY_ID
: Es el ID de la clave que deseas restringir.
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"
Para obtener más información sobre cómo agregar restricciones de referentes HTTP a una clave mediante la API de REST, consulta Agrega restricciones de navegador en la documentación de la API de claves de API.
Direcciones IP
Puedes especificar una o más direcciones IP de los emisores, como un servidor web o un trabajo cron, que tienen permiso para usar tu clave de API. Puedes especificar las direcciones IP en cualquiera de los siguientes formatos:
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Una subred con notación CIDR (
198.51.100.0/24
,2001:db8::/64
)
El uso de localhost
no es compatible con las restricciones del servidor.
Para restringir tu clave de API a direcciones IP específicas, usa una de las siguientes opciones:
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en el nombre de la clave de API que deseas restringir.
En la sección Restricciones de aplicaciones, selecciona Direcciones IP.
Por cada dirección IP que desees agregar, haz clic en Agregar un elemento, ingresa la dirección y haz clic en Listo.
Haz clic en Guardar para guardar los cambios y volver a la lista de claves de API.
gcloud
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el comando
gcloud services api-keys list
para enumerar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para agregar restricciones de servidor (dirección IP) a una clave de API.Reemplaza los siguientes valores:
KEY_ID
: Es el ID de la clave que deseas restringir.ALLOWED_IP_ADDR_1
: La dirección IP permitida.Puedes agregar tantas direcciones IP como sea necesario. Usa comas para separar las direcciones.
gcloud services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el método keys.list. El ID se enumera en el campo
uid
de la respuesta.Reemplaza
PROJECT_ID
por el ID o el nombre de tu proyecto de Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Usa el método keys.patch para agregar restricciones de servidor (dirección IP) a una clave de API.
Esta solicitud muestra una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Reemplaza los siguientes valores:
ALLOWED_IP_ADDR_1
: La dirección IP permitida.Puedes agregar tantas direcciones IP como sea necesario. Usa comas para separar las restricciones. Debes proporcionar todas las direcciones IP con la solicitud. Las restricciones de referente proporcionadas reemplazan cualquier restricción de dirección IP existente en la clave.
PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.KEY_ID
: Es el ID de la clave que deseas restringir.
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"
Para obtener más información sobre cómo agregar restricciones de direcciones IP a una clave mediante la API de REST, consulta Agrega restricciones de servidores en la documentación de la API de claves de API.
Apps para Android
Puedes restringir el uso de una clave de API a apps para Android específicas. Debes proporcionar el nombre del paquete y la huella digital del certificado SHA-1 de 20 bytes para cada app.
Cuando usas la clave de API en una solicitud, debes especificar el nombre del paquete y la huella digital del certificado con los siguientes encabezados HTTP:
X-Android-Package
X-Android-Cert
Para restringir tu clave de API a una o más apps para Android, usa una de las siguientes opciones:
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en el nombre de la clave de API que deseas restringir.
En la sección Restricciones de aplicaciones, selecciona Apps para Android.
Por cada app para Android que desees agregar, haz clic en Agregar un elemento y, luego, ingresa el nombre del paquete y la huella digital del certificado SHA-1. Luego, haz clic en Listo.
Haz clic en Guardar para guardar los cambios y volver a la lista de claves de API.
gcloud
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el comando
gcloud services api-keys list
para enumerar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para especificar las apps para Android que pueden usar una clave de API.Reemplaza los siguientes valores:
KEY_ID
: Es el ID de la clave que deseas restringir.SHA1_FINGERPRINT
yPACKAGE_NAME
: Es la información de una app de Android que puede usar la clave.Puedes agregar tantas apps como sea necesario. Usa marcas
--allowed-application
adicionales.
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
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el método keys.list. El ID se enumera en el campo
uid
de la respuesta.Reemplaza
PROJECT_ID
por el ID o el nombre de tu proyecto de Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Usa el método keys.patch para especificar las apps para Android que pueden usar una clave de API.
Esta solicitud muestra una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Reemplaza los siguientes valores:
SHA1_FINGERPRINT_1
y PACKAGE_NAME_1: Es la información de una app de Android que puede usar la clave.Puedes agregar la información para tantas aplicaciones como sea necesario. Usa comas para separar los objetos AndroidApplication. Debes proporcionar todas las aplicaciones con la solicitud. Las aplicaciones proporcionadas reemplazan cualquier aplicación permitida existente en la clave.
PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.KEY_ID
: Es el ID de la clave que deseas restringir.
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"
Para obtener más información sobre cómo agregar restricciones de apps para Android a una clave mediante la API de REST, consulta Agrega restricciones de Android en la documentación de la API de claves de API.
Apps para iOS
Puedes restringir el uso de una clave de API a apps para iOS específicas si proporcionas el ID del paquete de cada app.
Cuando usas la clave de API en una solicitud, debes especificar el ID del paquete con el encabezado HTTP X-Ios-Bundle-Identifier
.
Para restringir tu clave de API a una o más apps para iOS, usa una de las siguientes opciones:
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en el nombre de la clave de API que deseas restringir.
En la sección Restricciones de aplicaciones, selecciona Apps para iOS.
Por cada app para iOS que desees agregar, haz clic en Agregar un elemento, ingresa el ID del paquete y, luego, haz clic en Listo.
Haz clic en Guardar para guardar los cambios y volver a la lista de claves de API.
gcloud
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el comando
gcloud services api-keys list
para enumerar las claves de tu proyecto.Usa el método
gcloud services api-keys update
para especificar las apps para iOS que pueden usar la clave.Reemplaza los siguientes valores:
KEY_ID
: Es el ID de la clave que deseas restringir.ALLOWED_BUNDLE_ID
: El ID del paquete de una app para iOS que deseas que pueda usar esta clave de API.Puedes agregar tantos ID del paquete como sea necesario. Usa comas para separar los IDs.
gcloud services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el método keys.list. El ID se enumera en el campo
uid
de la respuesta.Reemplaza
PROJECT_ID
por el ID o el nombre de tu proyecto de Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Usa el método keys.patch para especificar las apps para iOS que pueden usar una clave de API.
Esta solicitud muestra una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Reemplaza los siguientes valores:
ALLOWED_BUNDLE_ID
: El ID del paquete de una app para iOS que puede usar la clave.Puedes agregar la información para tantas aplicaciones como sea necesario. Usa comas para separar los ID del paquete. Debes proporcionar todos los ID del paquete con la solicitud. Los ID del paquete proporcionados reemplazan cualquier aplicación permitida existente en la clave.
PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.KEY_ID
: Es el ID de la clave que deseas restringir.
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"
Para obtener más información sobre cómo agregar restricciones de apps para iOS a una clave mediante la API de REST, consulta Agrega restricciones de iOS en la documentación de la API de claves de API.
Agrega restricciones de API
Las restricciones de API especifican a qué API se puede llamar mediante la clave de API.
Para agregar restricciones de API, usa una de las siguientes opciones:
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en el nombre de la clave de API que deseas restringir.
En la sección Restricciones de API, haz clic en Restringir clave .
Selecciona todas las APIs a las que se usará tu clave de API para acceder.
Haz clic en Guardar para guardar los cambios y volver a la lista de claves de API.
gcloud
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el comando
gcloud services api-keys list
para enumerar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para especificar en qué servicios se puede usar una clave de API a fin de autenticarse.Reemplaza los siguientes valores:
KEY_ID
: Es el ID de la clave que deseas restringir.SERVICE_1
,SERVICE_2
…: Los nombres de los servicios de las APIs a las que se puede acceder la clave.Debes proporcionar todos los nombres de los servicios con el comando update. Los nombres de los servicios proporcionados reemplazan cualquier servicio existente en la clave.
Para encontrar el nombre del servicio, busca la API en el panel de la API. Los nombres de servicios son strings como
bigquery.googleapis.com
.gcloud services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Obtén el ID de la clave que deseas restringir.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el método keys.list. El ID se enumera en el campo
uid
de la respuesta.Reemplaza
PROJECT_ID
por el ID o el nombre de tu proyecto de Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Usa el método keys.patch para especificar en qué servicios se puede usar una clave de API a fin de autenticarse.
Esta solicitud muestra una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Reemplaza los siguientes valores:
SERVICE_1
,SERVICE_2
…: Los nombres de los servicios de las APIs a las que se puede acceder la clave.Debes proporcionar todos los nombres de servicios con la solicitud. Los nombres de los servicios proporcionados reemplazan cualquier servicio existente en la clave.
Para encontrar el nombre del servicio, busca la API en el panel de la API. Los nombres de servicios son strings como
bigquery.googleapis.com
.PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.KEY_ID
: Es el ID de la clave que deseas restringir.
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"
Para obtener más información sobre cómo agregar restricciones de API a una clave mediante la API de REST, consulta Agrega restricciones de API en la documentación de la API de claves de API.
Obtén información del proyecto a partir de una string de clave
Puedes determinar con qué proyecto de Google Cloud se asocia una clave de API desde su string.
Reemplaza KEY_STRING
por la string de clave para la que necesitas información del proyecto.
gcloud
Usa el
comando gcloud services api-keys lookup
para obtener el ID del proyecto de una cadena de clave.
gcloud services api-keys lookup KEY_STRING
Java
Para ejecutar esta muestra, debes instalar la biblioteca cliente google-cloud-apikeys
.
Python
Para ejecutar esta muestra, debes instalar la biblioteca cliente de claves de API.
REST
Usa el método lookupKey
para obtener el ID del proyecto de una string de clave.
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"
Recuperar una clave de API
Si borras una clave de API por error, puedes recuperarla (en un plazo de 30 días después de borrarla). Después de 30 días, no puedes recuperar la clave de API.
Console
En la consola de Google Cloud, ve a la página Credenciales.
Haz clic en Restablecer credenciales borradas.
Busca la clave de API borrada que deseas recuperar y haz clic en Restablecer.
La recuperación de una clave de API puede tardar unos minutos en propagarse. Después de la propagación, la clave de API recuperada se muestra en la lista de claves de API.
gcloud
Obtén el ID de la clave que deseas reperar.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el comando
gcloud services api-keys list --show-deleted
para enumerar las claves de tu proyecto.Usa el comando
gcloud services api-keys undelete
para recuperar una clave de API.gcloud services api-keys undelete KEY_ID
Reemplaza los siguientes valores:
KEY_ID
: El ID de la clave que deseas restringir.
REST
Obtén el ID de la clave que deseas reperar.
El ID no es el mismo que el nombre visible o la string de clave. Puedes obtener el ID mediante el método keys.list y el parámetro de consulta
showDeleted
configurado comotrue
. El ID de clave se enumera en el campouid
de la respuesta.Reemplaza
PROJECT_ID
por el ID o el nombre de tu proyecto de Google Cloud.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys?showDeleted=true"
Usa el método undelete para recuperar la clave de API.
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"
Esta solicitud muestra una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Reemplaza los siguientes valores:
PROJECT_ID
: el nombre o el ID de tu proyecto de Google Cloud.KEY_ID
: Es el ID de la clave que deseas restringir.
Sondea operaciones de larga duración
Los métodos de API de la clave de API usan operaciones de larga duración. Si usas la API de REST para crear y administrar claves de API, se muestra un objeto de operación a partir de la solicitud del método inicial. Usa el nombre de la operación para sondear la operación de larga duración. Cuando se completa la solicitud de larga duración, el sondeo de la operación muestra los datos de la solicitud de larga duración.
Para sondear una operación de API de claves de API de larga duración, usa el método operations.get
.
Reemplaza OPERATION_NAME
por el nombre de la operación que muestra la operación de larga duración. Por ejemplo, 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"
Límites de las claves de API
Puedes crear hasta 300 claves de API por proyecto. Este es un límite del sistema y no se puede cambiar mediante una solicitud de aumento de cuota.
Si se necesitan más claves de API, debes usar más de un proyecto.
¿Qué sigue?
- Consulta una descripción general de los métodos de autenticación.
- Obtén más información sobre la API de claves de API.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-09-03 (UTC)