Usa claves de API

En este tema, se muestra a los desarrolladores de aplicaciones cómo usar las claves de API con las API de Google Cloud. Una clave de API es una string encriptada simple que identifica una aplicación sin ninguna principal. Son útiles para acceder a datos públicos de forma anónima y se usan a fin de asociar las solicitudes a la API con tu proyecto para la cuota y la facturación.

Para obtener más información sobre la autenticación en las API de Google Cloud y sobre cómo determinar la mejor estrategia de autenticación en situaciones comunes, consulta Descripción general de la autenticación. Si deseas obtener más información sobre el uso de claves de API para las API y los SDK de Google Maps Platform, consulta la documentación de Google Maps Platform.

Administra claves de API

Te recomendamos usar Cloud Console para administrar las claves de API. Navega a la página API y servicios → Credenciales en Cloud Console. Las claves de API se muestran en la sección Claves de API. En esta página, puedes crear claves de API, definir restricciones para estas claves, rotar strings de claves de API y realizar otras acciones.

Crea una clave de API

Para crear una clave de API en un proyecto, el usuario debe tener la función básica de editor (roles/editor) en el proyecto. Consulta las funciones básicas para obtener más información.

Para crear una clave de API, sigue estos pasos:

  1. En Cloud Console, navega al panel API y servicios > Credenciales.

  2. Selecciona Crear credenciales y, luego, Clave de API en el menú desplegable.

  3. Se mostrará la clave nueva en el cuadro de diálogo Se creó la clave de API.

Recomendamos que copies tu clave y la mantengas 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

Pasa la clave de API a una llamada a la API de REST como un parámetro de búsqueda con el siguiente formato. Reemplaza API_KEY por tu clave de API.

key=API_KEY

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

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 credenciales de forma pública, puedes poner en riesgo tu cuenta y generar cargos inesperados en ella. Para ayudarte a mantener tus claves de API seguras, sigue estas prácticas recomendadas:

  • No incorpores claves de API directamente en el código. Las claves de API incorporadas en el código pueden exponerse de forma accidental al público. Por ejemplo, podrías olvidarte de quitar las claves cuando compartes el código. En lugar de incorporar tus claves de API en tus aplicaciones, almacénalas en variables de entorno o en archivos fuera del árbol de origen de tu aplicación.

  • No almacenes claves de API en archivos dentro del árbol de origen de tu aplicación. Si almacenas claves de API en archivos, mantenlos fuera del árbol de origen de tu aplicación para asegurarte de que tus claves no terminen en tu sistema de control de código fuente. Esto es muy importante si usas un sistema de administración de código fuente público como GitHub.

  • Configura restricciones de aplicaciones y de claves de API. Si agregas restricciones, puedes reducir el impacto de una clave de API vulnerada.

  • Borra las claves de API innecesarias para minimizar la exposición a los ataques.

  • Regenera tus claves de API de forma periódica. Para regenerar las claves de API desde la página de credenciales, haz clic en Regenerar clave para cada una. Luego, actualiza tus aplicaciones para que usen las claves recién generadas. Tus claves anteriores continuarán funcionando durante 24 horas después de que generes las claves de reemplazo.

  • Revisa tu código antes de lanzarlo de forma pública. Asegúrate de que el código no contenga claves de API o cualquier otra información privada antes de hacer que esté disponible de forma pública.

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.

Para agregar restricciones de claves de API, sigue estos pasos:

  1. En Cloud Console, navega al panel API y servicios > Credenciales.

  2. Selecciona el nombre de una clave de API existente.

Agrega restricciones de aplicaciones

Las restricciones de aplicaciones especifican qué sitios web, direcciones IP o apps pueden usar una clave de API. Agrega restricciones de aplicación según tu tipo de aplicación. Solo puedes configurar un tipo de restricción por clave de API.

Elige el tipo de restricción según las necesidades de la app.

  • Usa Ninguna solo con fines de prueba.

  • Usa URL de referencia HTTP para los clientes de API que se ejecuten en un navegador web, de modo que solo las páginas especificadas puedan llamar a la API. Estos tipos de aplicaciones exponen sus claves de API de forma pública, por lo que recomendamos que, en su lugar, uses una cuenta de servicio. Consulta la sección Agrega restricciones HTTP que se muestra a continuación para ver ejemplos.

  • Usa Direcciones IP para limitar el acceso a las claves de API desde ciertas direcciones IP.

  • Usa Apps de Android para aplicaciones de Android. Esta opción requiere agregar el nombre de tu paquete y la huella digital del certificado de firma SHA-1.

  • Usa apps de iOS para aplicaciones de iOS. Esta opción requiere que agregues al menos un identificador de paquete de iOS para restringir las llamadas a la API a paquetes de iOS específicos.

Agrega restricciones HTTP

Las claves de API que usan las aplicaciones web deben tener restricciones HTTP. Para agregar restricciones HTTP, sigue estos pasos:

  • Selecciona URL de referencia HTTP (sitios web) en la sección Restricciones de aplicaciones.

  • Ingresa al menos una restricción en la sección Restricciones de sitios web.

  • Si el dominio admite HTTP y HTTPS, se deben agregar ambas restricciones por separado.

  • De forma opcional, puedes usar caracteres comodín (*) para el subdominio o la ruta de acceso.

En la siguiente tabla, se muestran situaciones y restricciones de ejemplo, desde la más restrictiva a la menos restrictiva. Recomendamos usar el ejemplo más restrictivo que se ajuste a tu caso práctico.

Situación Restricciones
Permitir una URL específica.

Agrega una sola restricción con una ruta de acceso exacta. Por ejemplo:

  • https://www.example.com/path
  • http://www.example.com/path/path
Permitir cualquier URL en un solo subdominio o dominio simple.

Debes establecer al menos dos restricciones para permitir un dominio completo.

  1. Establece una restricción para el dominio sin la barra final. Por ejemplo:
    • https://www.example.com
    • http://sub.example.com
    • http://example.com
  2. Establece una segunda restricción para el dominio que incluya un comodín en la ruta de acceso. Por ejemplo:
    • https://www.example.com/*
    • http://sub.example.com/*
    • http://example.com/*
  3. Si el dominio admite HTTP y HTTPS, debes agregar restricciones adicionales por separado.
Permitir cualquier URL de subdominio en un solo dominio.

Debes establecer al menos dos restricciones.

  1. Establece una restricción para el dominio, con un comodín en el subdominio y sin la barra final. Por ejemplo:
    • https://*.example.com
  2. Establece una segunda restricción para el dominio que incluya un comodín en la ruta de acceso. Por ejemplo:
    • https://*.example.com/*
  3. Si el dominio admite HTTP y HTTPS, debes agregar restricciones adicionales por separado.

Agrega restricciones de API

Las restricciones de API especifican a qué API se puede llamar mediante la clave de API. Todas las claves de API que usan las aplicaciones de producción deben tener restricciones de API.

Para establecer restricciones de API, sigue estos pasos:

  1. Selecciona Restringir clave en la sección Restricciones de API.

  2. En el menú desplegable, selecciona todos los nombres de las API a las que debe llamar la clave.

  3. Selecciona el botón Guardar.

Próximos pasos