En esta página se describe cómo crear, editar y restringir claves de API. Para obtener información sobre cómo usar claves de API para acceder a las APIs de Google, consulta el artículo Usar claves de API para acceder a las APIs.
Introducción a las claves de API
Hay dos tipos de claves de API: las claves de API estándar y las claves de API que se han asociado a una cuenta de servicio.
Claves de API estándar
Las claves de API estándar permiten asociar una solicitud a un proyecto con fines de facturación y de cuota. Cuando usas una clave de API estándar (una clave de API que no se ha asociado a una cuenta de servicio) para acceder a una API, la clave de API no identifica a un principal. Sin una cuenta principal, la solicitud no puede usar Gestión de Identidades y Accesos (IAM) para comprobar si el llamante tiene autorización para realizar la operación solicitada.
Las claves de API estándar se pueden usar con cualquier API que las acepte, a menos que se hayan añadido restricciones a la clave. Las claves de API estándar no se pueden usar con servicios que no las acepten, incluido el modo exprés.
Claves de API asociadas a una cuenta de servicio
Las claves de API asociadas a una cuenta de servicio proporcionan la identidad y la autorización de la cuenta de servicio a una solicitud. Cuando usas una clave de API que se ha vinculado a una cuenta de servicio para acceder a una API, tu solicitud se procesa como si hubieras usado la cuenta de servicio vinculada para hacer la solicitud.
La única API que admite claves de API vinculadas es aiplatform.googleapis.com
.
Una restricción de política de organización predeterminada impide asociar claves a una cuenta de servicio. Para cambiar este ajuste, consulta Habilitar la vinculación de claves a cuentas de servicio.
Componentes de la clave de API
Una clave de API tiene los siguientes componentes, que te permiten gestionar y usar la clave:
- Cadena
- La cadena de clave de API es una cadena cifrada, por ejemplo:
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
. Cuando usas una clave de API para acceder a una API, siempre usas la cadena de la clave. Las claves de API no tienen ningún archivo JSON asociado. - ID
- Las herramientas administrativas usan el ID de la clave de API Google Cloud para identificarla de forma única. El ID de clave no se puede usar para acceder a las APIs. El ID de la clave se puede encontrar en la URL de la página de edición de la clave en la Google Cloud consola. También puedes obtener el ID de la clave mediante la CLI de Google Cloud para enumerar las claves de tu proyecto.
- Nombre visible
- El nombre visible es un nombre descriptivo opcional de la clave que puedes definir al crearla o actualizarla.
- Cuenta de servicio vinculada
- Las claves de API asociadas a una cuenta de servicio incluyen la dirección de correo de la cuenta de servicio.
Antes de empezar
Completa las siguientes tareas para usar las muestras de esta página.
Configurar la autenticación
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++
Para usar las C++ muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Java
Para usar las Java muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Install the Google Cloud CLI.
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Roles obligatorios
Para obtener los permisos que necesitas para gestionar claves de API, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Administrador de claves de API (
roles/serviceusage.apiKeysAdmin
) -
Restringe una clave de API a APIs específicas mediante la Google Cloud consola:
Lector de Uso de Servicio (
roles/serviceusage.serviceUsageViewer
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Habilitar la vinculación de claves a cuentas de servicio
Para vincular una clave de API a una cuenta de servicio, primero debes definir la restricción de la política de la organización constraints/iam.managed.disableServiceAccountApiKeyCreation
en false
. Para cambiar la política de la organización, se necesita un recurso de organización asociado.
No se admiten proyectos sin una organización.
Para cambiar la restricción de la política, sigue estas instrucciones.
Consola
En la Google Cloud consola, ve a la página Políticas de la organización.
Cambia a la organización, la carpeta o el proyecto cuyas políticas quieras modificar.
En el cuadro Filtrar, introduce
Block service
y, a continuación, haz clic en el nombre del filtro Bloquear enlaces de claves de API de cuentas de servicio.Haz clic en Gestionar política.
En la sección Fuente de la política, seleccione Anular política del recurso superior.
Haz clic en Añadir regla y, en Cumplimiento, selecciona Desactivado.
Haz clic en Listo.
Opcional: Haz clic en Probar cambios para obtener información sobre cómo puede provocar infracciones o interrupciones la política propuesta.
Haz clic en Definir política.
gcloud
Crea un archivo llamado
spec.yaml
con el siguiente contenido:name: SCOPE/SCOPE_ID/policies/iam.managed.disableServiceAccountApiKeyCreation spec: rules: - enforce: false
Proporciona los siguientes valores:
SCOPE
:organizations
,folders
oprojects
.SCOPE_ID
: en función de SCOPE, el ID de la organización, la carpeta o el proyecto al que se aplica la política de la organización.
Ejecuta el siguiente comando de
gcloud
para permitir la vinculación de claves de API a cuentas de servicio:gcloud org-policies set-policy spec.yaml \ --update-mask spec
Crear una clave de API
Para crear una clave de API, usa una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haz clic en Crear credenciales y, a continuación, selecciona Clave de API en el menú.
Opcional: Para vincular la clave de API a una cuenta de servicio, marca la casilla Autenticar llamadas a la API mediante una cuenta de servicio y, a continuación, haz clic en Seleccionar una cuenta de servicio para elegir la cuenta de servicio que quieras vincular a la clave.
Para obtener más información, consulta Claves de API vinculadas a una cuenta de servicio.
Añade restricciones a la clave de API.
Restringir las claves de API es una práctica recomendada. Para obtener más información, consulta Aplicar restricciones a claves de API.
Haz clic en Crear. En el cuadro de diálogo Clave de API creada se muestra la cadena de la clave que acabas de crear.
gcloud
Usa el comando gcloud services api-keys create
para crear una clave de API.
Sustituye DISPLAY_NAME
por un nombre descriptivo para tu clave.
gcloud services api-keys create \
--display-name=DISPLAY_NAME
Opcional: Para vincular la clave de API a una cuenta de servicio, usa gcloud beta
en su lugar, con la marca --service-account
:
gcloud beta services api-keys create \
--display-name=DISPLAY_NAME \
--service-account=SERVICE_ACCOUNT_EMAIL_ADDRESS
Para obtener más información, consulta Claves de API vinculadas a una cuenta de servicio.
C++
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Para crear una clave de API, utiliza el método keys.create
. Esta solicitud devuelve una operación de larga duración, por lo que debes sondear la operación para obtener la información de la nueva clave.
Sustituye los siguientes valores:
DISPLAY_NAME
: opcional. Nombre descriptivo de la clave.PROJECT_ID
: el ID o el nombre de tu Google Cloud proyecto.
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"
Opcional: Para vincular la clave de API a una cuenta de servicio, usa el siguiente comando:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME", "serviceAccountEmail" : "SERVICE_ACCOUNT_EMAIL"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
Para obtener más información, consulta Claves de API vinculadas a una cuenta de servicio.
Para obtener más información sobre cómo crear claves de API con la API REST, consulta el artículo Crear una clave de API en la documentación de la API Keys.
Aplicar restricciones de clave de API
Las claves de API no tienen restricciones de forma predeterminada. Las claves sin restricciones no son seguras porque cualquier persona puede usarlas desde cualquier lugar. En las aplicaciones de producción, debes definir tanto restricciones de aplicación como restricciones de API.
Añadir restricciones de aplicación
Las restricciones de aplicación especifican qué sitios web, direcciones IP o aplicaciones 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 en función del tipo de aplicación:
Opción | Tipo de aplicación | Notas |
---|---|---|
URLs 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 las tareas cron que pueden usar la clave. Esta es la única restricción disponible si vinculas tu clave de API a una cuenta de servicio. |
Aplicaciones Android | Aplicaciones Android | Especifica la aplicación Android que puede usar la clave. |
Aplicaciones iOS | Aplicaciones iOS | Especifica los paquetes de iOS que pueden usar la clave. |
URLs de referencia HTTP
Para restringir los sitios web que pueden usar tu clave de API, añade una o varias restricciones de URL referente con formato HTTP.
Puedes sustituir el subdominio o la ruta por un carácter comodín (*
), pero no puedes insertar un carácter comodín en medio de la URL. Por ejemplo, *.example.com
es válido y acepta todos los sitios que terminen 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 tendrán en cuenta las solicitudes que usen ese puerto. Si no especificas un número de puerto, se responderá a las solicitudes de cualquier número de puerto.
En la siguiente tabla se muestran algunos ejemplos de situaciones y restricciones de los navegadores:
Situación | Restricciones |
---|---|
Permitir una URL específica | Añade una URL con una ruta exacta. Por ejemplo:www.example.com/path www.example.com/path/path Algunos navegadores implementan una política de referer que solo envía la URL de origen de las solicitudes de origen cruzado. Los usuarios de estos navegadores no pueden usar claves con restricciones de URL específicas de la página. |
Permitir cualquier URL en tu sitio | Debe definir dos URLs en la lista allowedReferers .
|
Permitir cualquier URL en un solo subdominio o dominio desnudo |
Debes definir dos URLs en la lista
|
Para restringir tu clave de API a sitios web específicos, usa una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haga clic en el nombre de la clave de API que quiera restringir.
En la sección Restricciones de aplicación, selecciona URLs referentes con formato HTTP.
Por cada restricción que quieras añadir, haz clic en Añadir un elemento, introduce la restricción y haz clic en Hecho.
Haga 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 quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list
para mostrar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para añadir restricciones de referente HTTP a una clave de API.Sustituye los siguientes valores:
KEY_ID
: el ID de la clave que quieres restringir.ALLOWED_REFERRER_1
: tu restricción de URL referente HTTP.Puedes añadir tantas restricciones como necesites. Sepáralas con comas. Debes proporcionar todas las restricciones de referente con el comando update. Las restricciones de referente proporcionadas sustituyen a las que ya tenga la clave.
gcloud services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Obtén el ID de la clave que quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Puedes obtener el ID mediante el método keys.list. El ID se indica en el campo
uid
de la respuesta.Sustituye
PROJECT_ID
por el ID o el nombre de tu proyecto. Google Cloudcurl -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 añadir restricciones de referente HTTP a la clave de API.
Esta solicitud devuelve una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Sustituye los siguientes valores:
ALLOWED_REFERRER_1
: tu restricción de URL referente HTTP.Puedes añadir tantas restricciones como necesites. Sepáralas con comas. Debe proporcionar todas las restricciones de referente con la solicitud. Las restricciones de referente proporcionadas sustituyen a las que ya tenga la clave.
PROJECT_ID
: tu ID o nombre de proyecto Google Cloud .KEY_ID
: el ID de la clave que quieres 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 añadir restricciones de referentes HTTP a una clave mediante la API REST, consulta el artículo Añadir restricciones de navegador de la documentación de la API Keys.
Direcciones IP
Puedes especificar una o varias direcciones IP de las personas que llaman, como un servidor web o una tarea cron, que tengan permiso para usar tu clave de API. Puede especificar las direcciones IP en cualquiera de los siguientes formatos:
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Una subred que usa la notación CIDR (
198.51.100.0/24
,2001:db8::/64
)
No se admite el uso de localhost
para las restricciones del servidor.
Para restringir tu clave de API a direcciones IP específicas, usa una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haga clic en el nombre de la clave de API que quiera restringir.
En la sección Restricciones de aplicaciones, selecciona Direcciones IP.
Por cada dirección IP que quiera añadir, haga clic en Añadir un elemento, introduzca la dirección y haga clic en Hecho.
Haga 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 quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list
para mostrar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para añadir restricciones de servidor (dirección IP) a una clave de API.Sustituye los siguientes valores:
KEY_ID
: el ID de la clave que quieres restringir.ALLOWED_IP_ADDR_1
: tu dirección IP permitida.Puedes añadir tantas direcciones IP como necesites. Sepáralas con comas.
gcloud services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Obtén el ID de la clave que quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Puedes obtener el ID mediante el método keys.list. El ID se indica en el campo
uid
de la respuesta.Sustituye
PROJECT_ID
por el Google Cloud ID o el nombre de tu proyecto.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 añadir restricciones de servidor (dirección IP) a una clave de API.
Esta solicitud devuelve una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Sustituye los siguientes valores:
ALLOWED_IP_ADDR_1
: tu dirección IP permitida.Puedes añadir tantas direcciones IP como necesites. Usa comas para separar las restricciones. Debes proporcionar todas las direcciones IP con la solicitud. Las restricciones de referente proporcionadas sustituyen a las restricciones de dirección IP que ya tenga la clave.
PROJECT_ID
: tu ID o nombre de proyecto Google Cloud .KEY_ID
: el ID de la clave que quieres 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 añadir restricciones de direcciones IP a una clave mediante la API REST, consulta la sección Añadir restricciones de servidor de la documentación de la API Keys.
Aplicaciones Android
Puedes restringir el uso de una clave de API a aplicaciones Android específicas. Debes proporcionar el nombre del paquete y la huella digital del certificado SHA-1 de 20 bytes de cada aplicación.
Cuando uses la clave de API en una solicitud, debes especificar el nombre del paquete y la huella digital del certificado mediante los siguientes encabezados HTTP:
X-Android-Package
X-Android-Cert
Para restringir tu clave de API a una o varias aplicaciones Android, usa una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haga clic en el nombre de la clave de API que quiera restringir.
En la sección Restricciones de aplicaciones, selecciona Aplicaciones Android.
Por cada aplicación Android que quieras añadir, haz clic en Añadir un elemento, introduce el nombre del paquete y la huella digital del certificado SHA-1 y, a continuación, haz clic en Hecho.
Haga 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 quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list
para mostrar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para especificar las aplicaciones Android que pueden usar una clave de API.Sustituye los siguientes valores:
KEY_ID
: el ID de la clave que quieres restringir.SHA1_FINGERPRINT
yPACKAGE_NAME
: la información de una aplicación Android que puede usar la clave.Puedes añadir tantas aplicaciones como necesites. Usa las marcas adicionales
--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
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Obtén el ID de la clave que quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Puedes obtener el ID mediante el método keys.list. El ID se indica en el campo
uid
de la respuesta.Sustituye
PROJECT_ID
por el ID o el nombre de tu proyecto. Google Cloudcurl -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 aplicaciones Android que pueden usar una clave de API.
Esta solicitud devuelve una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Sustituye los siguientes valores:
SHA1_FINGERPRINT_1
yPACKAGE_NAME_1
: la información de una aplicación Android que puede usar la clave.Puedes añadir la información de tantas aplicaciones como necesites. Usa comas para separar los objetos AndroidApplication. Debes proporcionar todas las aplicaciones con la solicitud. Las aplicaciones proporcionadas sustituyen a las aplicaciones permitidas que ya haya en la clave.
PROJECT_ID
: tu ID o nombre de proyecto Google Cloud .KEY_ID
: el ID de la clave que quieres 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 añadir restricciones de aplicaciones Android a una clave mediante la API REST, consulta el artículo sobre cómo añadir restricciones de Android en la documentación de la API Keys.
Aplicaciones iOS
Puedes restringir el uso de una clave de API a aplicaciones iOS específicas proporcionando el ID de paquete de cada aplicación.
Cuando uses la clave de API en una solicitud, debes especificar el ID del paquete mediante el encabezado HTTP X-Ios-Bundle-Identifier
.
Para restringir tu clave de API a una o varias aplicaciones iOS, usa una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haga clic en el nombre de la clave de API que quiera restringir.
En la sección Restricciones de aplicaciones, selecciona Aplicaciones iOS.
Por cada aplicación iOS que quieras añadir, haz clic en Añadir un elemento, introduce el ID de paquete y haz clic en Hecho.
Haga 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 quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list
para mostrar las claves de tu proyecto.Usa el método
gcloud services api-keys update
para especificar las aplicaciones iOS que pueden usar la clave.Sustituye los siguientes valores:
KEY_ID
: el ID de la clave que quieres restringir.ALLOWED_BUNDLE_ID
: el ID de paquete de una aplicación iOS que quieras que pueda usar esta clave de API.Puede añadir tantos IDs de paquete como necesite. Separe los IDs con comas.
gcloud services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Obtén el ID de la clave que quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Puedes obtener el ID mediante el método keys.list. El ID se indica en el campo
uid
de la respuesta.Sustituye
PROJECT_ID
por el ID o el nombre de tu proyecto. Google Cloudcurl -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 aplicaciones iOS que pueden usar una clave de API.
Esta solicitud devuelve una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Sustituye los siguientes valores:
ALLOWED_BUNDLE_ID
: el ID de paquete de una aplicación iOS que puede usar la clave.Puede añadir la información de tantas aplicaciones como necesite. Use comas para separar los IDs de paquete. Debe proporcionar todos los IDs de paquete con la solicitud. Los IDs de paquete proporcionados sustituyen a las aplicaciones permitidas que ya tenga la clave.
PROJECT_ID
: tu ID o nombre de proyecto Google Cloud .KEY_ID
: el ID de la clave que quieres 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 añadir restricciones de aplicaciones iOS a una clave mediante la API REST, consulta el artículo Añadir restricciones de iOS en la documentación de la API Keys.
Añadir restricciones de API
Las restricciones de API especifican a qué APIs se puede llamar con la clave de API.
Para añadir restricciones de API, usa una de las siguientes opciones:
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haga clic en el nombre de la clave de API que quiera restringir.
En la sección Restricciones de API, haz clic en Restringir clave.
Selecciona todas las APIs a las que se accederá con tu clave de API.
Haga 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 quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list
para mostrar las claves de tu proyecto.Usa el comando
gcloud services api-keys update
para especificar a qué servicios se puede acceder con una clave de API.Sustituye los siguientes valores:
KEY_ID
: el ID de la clave que quieres restringir.SERVICE_1
,SERVICE_2
...: los nombres de los servicios de las APIs a las que se puede acceder con la clave.Debes proporcionar todos los nombres de servicio con el comando de actualización. Los nombres de servicio proporcionados sustituyen a los servicios que ya tenga la clave.
Para encontrar el nombre del servicio, busca la API en el panel de control de APIs. Los nombres de servicio son cadenas como
bigquery.googleapis.com
.gcloud services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Obtén el ID de la clave que quieras restringir.
El ID no es el mismo que el nombre visible o la cadena de clave. Puedes obtener el ID mediante el método keys.list. El ID se indica en el campo
uid
de la respuesta.Sustituye
PROJECT_ID
por el ID o el nombre de tu proyecto. Google Cloudcurl -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 a qué servicios se puede acceder con una clave de API.
Esta solicitud devuelve una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Sustituye los siguientes valores:
SERVICE_1
,SERVICE_2
...: los nombres de los servicios de las APIs a las que se puede acceder con la clave.Debes proporcionar todos los nombres de servicio con la solicitud. Los nombres de servicio proporcionados sustituyen a los servicios que ya tenga la clave.
Para encontrar el nombre del servicio, busca la API en el panel de control de APIs. Los nombres de servicio son cadenas como
bigquery.googleapis.com
.PROJECT_ID
: tu ID o nombre de proyecto Google Cloud .KEY_ID
: el ID de la clave que quieres 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 añadir restricciones de API a una clave mediante la API REST, consulta la sección Añadir restricciones de API de la documentación de la API Keys.
Obtener información de un proyecto a partir de una cadena de clave
Puedes determinar a qué Google Cloud proyecto está asociada una clave de API a partir de su cadena.
Sustituye KEY_STRING
por la cadena de clave del proyecto del que quieras obtener información.
gcloud
Usa el comando gcloud services api-keys lookup
para obtener el ID de proyecto a partir de una cadena de clave.
gcloud services api-keys lookup KEY_STRING
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
Python
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente de claves de API.
REST
Para obtener el ID de proyecto a partir de una cadena de clave, se usa el método lookupKey
.
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"
Crear una copia de una clave de API
Si necesitas una clave de API con las mismas restricciones que otra, puedes crear una copia de la clave de API que ya tienes. Esta operación crea una clave de API con una cadena e ID únicos, así como con las restricciones de la clave de API anterior.
La operación de copia solo está disponible en la Google Cloud consola. Para usar otros métodos, sigue los pasos para crear una clave de API y, a continuación, aplica las mismas restricciones de clave de API a la clave de API que acabas de generar.
En la Google Cloud consola, ve a la página Credenciales:
Haz clic en el nombre de la clave de API que quieras copiar.
Se abrirá la página de detalles de la clave de API.
Haz clic en Crear una copia.
Introduce un nombre para la nueva clave de API y confirma que las restricciones son correctas.
Haz clic en Crear.
Rotar una clave de API
Si cambias periódicamente tus claves de API, puedes limitar el impacto de las claves de API vulneradas.
Cuando rotas una clave de API, creas una nueva con las mismas restricciones que la anterior y actualizas tus aplicaciones para que usen la nueva clave. Una vez que hayas actualizado todas tus aplicaciones, elimina la clave antigua.
La operación de rotación solo está disponible en la Google Cloud consola. Para usar otros métodos, sigue los pasos para crear una clave de API y, a continuación, aplica las mismas restricciones de clave de API a la clave de API que acabas de generar. Después de actualizar tus aplicaciones para que usen la nueva clave, elimina la antigua.
En la Google Cloud consola, ve a la página Credenciales:
Haga clic en el nombre de la clave de API que quiera rotar para abrir su página de detalles.
Haz clic en Rotar clave.
Introduce un nombre para la nueva clave de API y confirma que las restricciones son correctas.
Haz clic en Crear.
Copia la cadena de la clave y actualiza tus aplicaciones para que usen la nueva cadena.
Una vez que hayas actualizado todas las aplicaciones para que usen la nueva clave, vuelve a la página de detalles de la nueva clave. En la sección Llave anterior, haz clic en Eliminar la llave anterior para eliminar la llave antigua.
Si te das cuenta de que has eliminado la clave anterior antes de tiempo, puedes recuperarla.
Recuperar una clave de API
Si eliminas una clave de API por error, puedes deshacer la eliminación (restaurar) en un plazo de 30 días. Transcurridos 30 días, no podrás recuperar la clave de API.
Consola
En la Google Cloud consola, ve a la página Credenciales:
Haz clic en Restaurar credenciales eliminadas.
Busca la clave de API eliminada que quieras restaurar y haz clic en Restaurar.
La propagación de la restauración de una clave de API puede tardar unos minutos. Una vez que se haya propagado, la clave de API restaurada se mostrará en la lista de claves de API.
gcloud
Obtén el ID de la clave que quieras restaurar.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list --show-deleted
para enumerar las claves eliminadas de tu proyecto.Usa el comando
gcloud services api-keys undelete
para recuperar una clave de API.gcloud services api-keys undelete KEY_ID
Sustituye los siguientes valores:
KEY_ID
: el ID de la clave que quieres restaurar.
Java
Para ejecutar este ejemplo, debes instalar la biblioteca de cliente google-cloud-apikeys
.
REST
Obtén el ID de la clave que quieras restaurar.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el método keys.list con el parámetro de consulta
showDeleted
definido comotrue
. El ID de la clave se indica en el campouid
de la respuesta.Sustituye
PROJECT_ID
por el ID o el nombre de tu proyecto. Google Cloudcurl -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 devuelve una operación de larga duración. Debes sondear la operación para saber cuándo se completa y obtener su estado.
Sustituye los siguientes valores:
PROJECT_ID
: tu ID o nombre de proyecto Google Cloud .KEY_ID
: el ID de la clave que quieres restringir.
Determinar el tipo de clave de API
Para determinar si la clave de API está vinculada a una cuenta de servicio, inspecciona la clave.
Consola
En la Google Cloud consola, ve a la página Credenciales:
Si la clave de API está asociada a una cuenta de servicio, se muestra el identificador de la cuenta de servicio.
gcloud
Obtén el ID de la clave.
El ID no es el mismo que el nombre visible o la cadena de clave. Para obtener el ID, usa el comando
gcloud services api-keys list
para mostrar las claves de tu proyecto.Usa el comando
gcloud services api-keys describe
para describir la clave de API.gcloud services api-keys describe KEY_ID
Si la clave de API está vinculada a una cuenta de servicio, se muestra el campo
serviceAccountEmail
.
Sondear operaciones de larga duración
Los métodos de la API Keys usan operaciones de larga duración. Si usas la API REST para crear y gestionar claves de API, se devuelve un objeto de operación desde la solicitud del método inicial. El nombre de la operación se usa para sondear la operación de larga duración. Cuando se completa la solicitud de larga duración, al sondear la operación se devuelven los datos de la solicitud de larga duración.
Para sondear una operación de larga duración de la API Keys, usa el método operations.get
.
Sustituye OPERATION_NAME
por el nombre de la operación devuelto por 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 límite es del sistema y no se puede cambiar mediante una solicitud de aumento de cuota. Si necesitas más claves de API, debes usar más de un proyecto.
Puedes añadir hasta 1200 restricciones de aplicación a una clave de API.
Siguientes pasos
- Consulta las prácticas recomendadas para mantener tus claves de API protegidas.
- Consulta más información sobre la API Keys.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-11 (UTC).