---
title: "Cómo usar Secret Manager con API Gateway - API7.ai"
description: "El uso de un Secret Manager puede mejorar eficazmente la seguridad y estabilidad del API Gateway, algo que Apache APISIX admite completamente."
url: "https://api7.ai/es/blog/how-to-use-secret-manager-with-api-gateway"
---

[Blog](https://api7.ai/es/blog)

[Products](https://api7.ai/es/category/products)[Technology](https://api7.ai/es/category/technology)[Ecosystem](https://api7.ai/es/category/ecosystem)[Case Study](https://api7.ai/es/category/usercase)[Team & Community](https://api7.ai/es/category/community)

Search

⌘ + K

[Blog](https://api7.ai/blog)

Technology

# Cómo usar Secret Manager con API Gateway

Shirui Zhao

January 13, 2023

[Technology](https://api7.ai/category/technology)

## ¿Qué es un Secret?

En un entorno de TI, un secret es una credencial privilegiada no humana, generalmente utilizada por sistemas y aplicaciones para [autenticación](https://api7.ai/blog/api-gateway-authentication) o como entrada para algoritmos de cifrado. Por ejemplo, las contraseñas necesarias para conectar un programa a una base de datos, las claves/certificados para comunicación cifrada, todos pertenecen a un secret.

**Los tipos comunes de secret incluyen**:

- Claves de cifrado
- Credenciales de acceso a servicios en la nube
- Claves de API (Application Programming Interface)
- Tokens de acceso
- Claves SSH (Secure Shell)

## Secret Manager

El Secret Manager almacena, recupera, rota y audita los secretos a lo largo de su ciclo de vida. **HashiCorp Vault** es uno de los servicios de Secret Manager más utilizados, y su principio de funcionamiento es el siguiente (imagen del sitio web oficial de HashiCorp):

![Secret Manager](https://static.api7.ai/uploads/2023/03/08/S7Iml8Md_Working-priciple-of-HashiCorp-Vault.jpg?imageMogr2/format/webp)

Además de HashiCorp Vault, proveedores de nube como **AWS, Google y Azure** también ofrecen servicios de Secret Manager.

**Usar un Secret Manager para construir aplicaciones no solo mejora la seguridad, sino que también proporciona las siguientes funciones**:

- Permite que los secretos se actualicen fácilmente en múltiples máquinas sin afectar la aplicación.
- Los desarrolladores no necesitan prestar demasiada atención al almacenamiento de secretos y pueden enfocarse más en la lógica del negocio en sí.
- La rotación y revocación de secretos se puede realizar sin redeployar o interrumpir aplicaciones activas.
- El Secret Manager proporciona registros de auditoría flexibles y detallados que pueden rastrear el historial de acceso de todos los usuarios y cumplir más fácilmente con los requisitos de auditoría y cumplimiento.

## Uso de Secret Manager en API Gateway

Como la entrada del tráfico de negocio, el API Gateway a menudo contiene una gran cantidad de información secreta, como claves de API y tokens para autenticación. Por lo tanto, **es vital integrar un Secret Manager en el API Gateway**.

### Escenarios de uso de Secret en API Gateway

`Key Auth` es un método de autenticación simple en el API Gateway. Los usuarios necesitan preestablecer una clave, y cuando el cliente realiza solicitudes de API, la clave preestablecida se escribe en el encabezado de la solicitud correspondiente o se accede como un parámetro de la solicitud para pasar la autenticación. Sin embargo, las fugas de claves son comunes, y las claves a menudo se almacenan en archivos de configuración o se guardan como variables en el código. Si las claves no se almacenan correctamente, incluso podrían aparecer en repositorios de código públicos como GitHub, lo que representa una amenaza significativa para la seguridad. Los administradores a menudo actualizan estas claves regularmente para evitar daños graves causados por fugas de claves. **Sin embargo, para algunas claves estáticas, actualizar individualmente el archivo de configuración en cada máquina también puede representar una amenaza significativa para la estabilidad del servicio.**

### Integración de Secret Manager en API Gateway

**Al integrar un Secret Manager en el API Gateway, la clave preestablecida para la autenticación `Key Auth` puede almacenarse en el servicio de Secret Manager, lo que resuelve efectivamente una serie de problemas causados por fugas de claves.** El API Gateway es solo un usuario de la clave, y el valor real de la clave se almacena en el servicio externo de Secret Manager. Además, el API Gateway solo mantiene una referencia a la clave, por lo que incluso si el API Gateway es hackeado, no se puede obtener la clave real del código o del archivo de configuración. Además, si necesita actualizar el valor de la clave, solo necesita actualizarlo en el Secret Manager sin modificar el código o la configuración del API Gateway, lo que también evita reiniciar el API Gateway.

![api gateway Secret Manager](https://static.api7.ai/uploads/2023/01/08/RQXcA3iO_1.png?imageMogr2/format/webp)

A continuación, usaremos Apache APISIX como ejemplo para mostrar cómo usar el Secret Manager para almacenar la clave preestablecida para `Key Auth` en el API Gateway.

### Ejemplo práctico de uso de Apache APISIX en Secret Manager

Apache APISIX es un API Gateway dinámico, en tiempo real y de alto rendimiento que proporciona cientos de funciones, como balanceo de carga, upstream dinámico, [canary release](https://api7.ai/blog/apisix-ingress-and-flagger-smooth-canary-release), enrutamiento granular, [limitación de tasa](https://api7.ai/blog/rate-limiting-in-api-management), degradación de servicio, circuit breaker, autenticación y observabilidad.

En la versión 3.1.0, Apache APISIX introdujo `APISIX Secret` para integrar diferentes servicios de Secret Manager. Su secuencia de trabajo es la siguiente:

![apisix Secret Manager](https://static.api7.ai/2023/01/04/63b54bdfa779c.png?imageMogr2/format/webp)

A continuación, usaremos Vault como el servicio de Secret Manager. Usaremos la autenticación `Key Auth` para ilustrar cómo usar un Secret Manager para guardar claves en Apache APISIX.

#### Creación de claves en Vault

Antes de crear la clave, debe iniciar el servicio Vault. Dado que esta sección comparte las mejores prácticas para usar Vault en el ecosistema de Apache APISIX, la configuración de Vault en sí no se describe en detalle y se puede encontrar [aquí](https://developer.hashicorp.com/vault/docs/secrets/kv/kv-v1).

Para crear la clave correspondiente en Vault, puede usar el siguiente comando:

```
vault secrets enable -version=1 -path=apisix kv

vault kv put apisix/jack auth-key=secret-key
```

Después de ejecutar el comando anterior, encontrará una clave llamada `auth-key` bajo la ruta `apisix/jack`, con un valor de `secret-key`.

#### Configuración en APISIX

Primero, agregue el recurso secret a través de la `Admin API` y configure la dirección y otra información de conexión para Vault:

> 1. El ID del recurso APISIX Secret es "gateway", consulte <https://apisix.apache.org/docs/apisix/terminology/secret/#usage-1>
> 2. El campo `prefix` es la ruta de la clave en Vault, y el campo `token` es el token de Vault.

```
curl http://127.0.0.1:9180/apisix/admin/secrets/vault/gateway \
-H 'X-API-KEY: Your-API-KEY' -X PUT -d '
{
  "uri": "https://127.0.0.1:8200",
  "prefix": "apisix",
  "token": "hvs.chjDFWvZRcihoq2vpSsVenmR"
}'
```

Luego, use el plugin `key-auth` para crear un consumidor y realizar la autenticación [Key Auth](https://docs.api7.ai/apisix/getting-started/key-authentication) para la ruta o servicio correspondiente. El campo key hace referencia al recurso APISIX Secret:

```
curl http://127.0.0.1:9180/apisix/admin/consumers \
-H 'X-API-KEY: Your-API-KEY' -X PUT -d '
{
  "username": "jack",
  "plugins": {
    "key-auth": {
      "key": "$secret://vault/gateway/jack/auth-key"
    }
  }
}'
```

A través de los dos pasos anteriores, cuando la solicitud del usuario llega a un plugin `key-auth`, el componente `Secret` llamará al Secret Manager configurado por el usuario a través de la interfaz proporcionada para obtener el valor real de la clave en Vault. Si no se encuentra el valor de la clave, el plugin registrará el error y no podrá realizar la validación `Key Auth`.

Luego, cree una Ruta para realizar la autenticación `Key Auth`:

```
curl -i "http://127.0.0.1:9180/apisix/admin/routes" -H 'X-API-KEY: Your-API-KEY' -X PUT -d '
{
  "id": "getting-started-ip",
  "uri": "/ip",
  "plugins": {
    "key-auth": {}
  },
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "httpbin.org:80": 1
    }
  }
}'
```

Finalmente, envíe una solicitud sin clave al API Gateway para verificar el resultado:

```
curl -i "http://127.0.0.1:9080/ip"
```

El resultado es el siguiente:

```
HTTP/1.1 401 Unauthorized
...

{"message":"Missing API key found in request"}
```

Y luego, envíe una solicitud con la clave al API Gateway para verificar el resultado:

```
curl -i "http://127.0.0.1:9080/ip" -H 'apikey: secret-key'
```

El resultado es similar al siguiente:

```
HTTP/1.1 200 OK
...

{
  "origin": "127.0.0.1, 59.172.90.243"
}
```

Además, Apache APISIX ha expandido las variables de entorno en un servicio simple de Secret Manager, y el token de APISIX para conectarse a Vault también se puede almacenar en variables de entorno. Por lo tanto, antes de iniciar APISIX, puede configurar las variables de entorno con el siguiente comando:

```
export VAULT_TOKEN="root"
```

Haga referencia a las variables de entorno al agregar el recurso `Secret`:

```
curl http://127.0.0.1:9180/apisix/admin/secrets/vault/1
-H 'X-API-KEY: Your-API-KEY' -X PUT -d '
{
  "uri": "https://127.0.0.1:8200"，
  "prefix": "apisix",
  "token": "$ENV://VAULT_TOKEN"
}'
```

A través de los pasos anteriores, puede almacenar la clave necesaria para la autenticación `Key Auth` en Vault en lugar de mostrarla en texto plano al configurar el plugin.

## Conclusión

En el API Gateway, hay una gran cantidad de información secreta. **Usar un Secret Manager para gestionar secretos puede garantizar que no haya información secreta en texto plano en el API Gateway, mejorando efectivamente la seguridad y estabilidad del API Gateway.** Como el API Gateway de código abierto más activo del mundo, **Apache APISIX también admite ampliamente los secret managers.** Este artículo también utiliza la autenticación `Key Auth` para ilustrar cómo usar un Secret Manager para gestionar la información de claves en APISIX.

Para obtener más información sobre el API gateway, visite nuestros [blogs](https://api7.ai/blog) o [contáctenos](https://api7.ai/contact).

Tags:

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[Secret Management](https://api7.ai/tags/secret-management)

Share article link

Share

Related Posts

[![3 Consejos para Implementar APISIX en Kubernetes (Parte 2)](https://static.api7.ai/uploads/2024/05/07/5oXyr34X_deploy-apisix-in-k8s.png)](https://api7.ai/blog/3-tips-for-deploying-apisix-in-k8s-2)

## [3 Consejos para Implementar APISIX en Kubernetes (Parte 2)](https://api7.ai/blog/3-tips-for-deploying-apisix-in-k8s-2)

[![Pruebas regulares de API: Garantizando la estabilidad y eficiencia del API Gateway](https://static.api7.ai/uploads/2024/04/12/KxwkXy3P_api-testing.png)](https://api7.ai/blog/best-practices-for-api-testing)

## [Pruebas regulares de API: Garantizando la estabilidad y eficiencia del API Gateway](https://api7.ai/blog/best-practices-for-api-testing)

Table of Contents

- [¿Qué es un Secret?](#qu%C3%A9-es-un-secret)

- [Secret Manager](#secret-manager)

- [Uso de Secret Manager en API Gateway](#uso-de-secret-manager-en-api-gateway)

  - [Escenarios de uso de Secret en API Gateway](#escenarios-de-uso-de-secret-en-api-gateway)
  - [Integración de Secret Manager en API Gateway](#integraci%C3%B3n-de-secret-manager-en-api-gateway)
  - [Ejemplo práctico de uso de Apache APISIX en Secret Manager](#ejemplo-pr%C3%A1ctico-de-uso-de-apache-apisix-en-secret-manager)

- [Conclusión](#conclusi%C3%B3n)

## Related Posts

[![Política de Autorización de Apache APISIX: Protege tus APIs](https://static.api7.ai/uploads/2024/12/24/w5yfe0Nu_apisix-authorization-policy.png)](https://api7.ai/es/blog/apisix-permission-policy)

Technology

April 21, 2023

#### [Política de Autorización de Apache APISIX: Protege tus APIs](https://api7.ai/es/blog/apisix-permission-policy)

Las políticas de control de autorización de Apache APISIX pueden proteger la seguridad de tus APIs y garantizar que tus sistemas funcionen de manera segura y estable.

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[API Gateway Policy](https://api7.ai/tags/api-gateway-policy)

[![¿Qué hay de nuevo en ADC 0.11 y 0.12?](https://static.api7.ai/uploads/2025/01/21/vI79UK0t_adc-0.11-0.12.png)](https://api7.ai/es/blog/adc-0.11-and-0.12)

Technology

August 7, 2024

#### [¿Qué hay de nuevo en ADC 0.11 y 0.12?](https://api7.ai/es/blog/adc-0.11-and-0.12)

Las versiones 0.11 y 0.12 de ADC optimizaron el soporte para Apache APISIX y sus características, mejorando la gestión de configuración y la eficiencia de GitOps.

[ADC](https://api7.ai/tags/adc)

[APISIX Basics](https://api7.ai/tags/apisix-basics)

[![OpenID vs OAuth](https://static.api7.ai/uploads/2024/12/24/PhhBjANk_openid-vs-oauth.png)](https://api7.ai/es/blog/openid-vs-oauth)

Technology

July 3, 2024

#### [OpenID vs OAuth](https://api7.ai/es/blog/openid-vs-oauth)

Analiza las diferencias y similitudes entre los métodos de autenticación OpenID y OAuth para ayudarte a seleccionar el protocolo de autorización adecuado.

[Authentication & Authorization](https://api7.ai/tags/authentication-&-authorization)

[OIDC](https://api7.ai/tags/oidc)

[Oauth](https://api7.ai/tags/oauth)
