¿Cómo administrar las API Keys de Binance? Configuración de permisos mínimos y revisión periódica
Las API Keys de Binance por defecto solo tienen permiso de lectura; hay que marcar casillas para activar trading spot, trading de futuros o retiros. La mejor práctica es dividir las Keys por función + vincular lista blanca de IP + rotarlas cada 90 días. Este artículo documenta el proceso real de configurar 5 API Keys y los obstáculos que encontramos.
La API Key de Binance es el token de acceso usado para trading automatizado, suscripción a datos de mercado o plataformas de estrategias de terceros. Al iniciar sesión en el Sitio Oficial de Binance → [Administración de API] y crear una Key, por defecto solo tiene [permiso de lectura]; [Trading Spot], [Trading de Futuros] y [Retiros] hay que activarlos marcando la casilla por separado. En esta ocasión configuramos 5 Keys independientes para distintos usos, cada una con el permiso mínimo necesario y con IP vinculada, para limitar la pérdida máxima de una filtración puntual al alcance de esa sola Key.
La disciplina más importante: nunca actives el permiso de retiro en una API Key, a menos que tu programa realmente necesite retirar automáticamente. El 99% de los programas no lo necesitan, pero si lo activas y la Key se filtra, tus fondos pueden vaciarse directamente. Incluso si lo activas, siempre debe combinarse con la lista blanca (revisa ¿Cómo activar la lista blanca de retiro en Binance? Detalles de cómo agregar direcciones y el periodo de enfriamiento).
Qué hace cada uno de los 5 permisos
Esta es la tabla con todas las opciones de permisos de las API Keys de Binance y la estrategia recomendada de activación:
| Permiso | Función | Riesgo | Recomendación |
|---|---|---|---|
| Enable Reading (lectura) | Consultar precios, saldos, órdenes | Muy bajo | Activar siempre |
| Enable Spot & Margin Trading (trading spot y margen) | Colocar y cancelar órdenes | Medio (riesgo de pérdidas por operaciones de terceros) | Según necesidad |
| Enable Futures (trading de futuros) | Colocar órdenes de futuros, ajustar apalancamiento | Medio-alto (el apalancamiento amplifica las pérdidas) | Según necesidad |
| Enable Withdrawals (retiros) | Retirar on-chain a una dirección específica | Muy alto (vaciado directo) | Casi nunca activar |
| Permits Universal Transfer (transferencia universal) | Transferir entre cuentas spot/futuros/funding | Bajo | Según necesidad |
El permiso de lectura viene por defecto y no hace falta marcarlo. Los permisos de spot y futuros se activan según el uso de tu programa. El permiso de retiro solo se activa en último caso, y una vez activado hay que vincular la dirección de retiro (este paso se hace en la lista blanca, no en la configuración de la API Key).
Paso 1: crear una API Key
El punto de entrada de [Administración de API] está en [Centro de cuenta] → [Administración de API], y en la App sigue la misma ruta. Haz clic en [Crear API] y elige [System generated] o [Self-generated]:
| Tipo | Diferencia | Escenario recomendado |
|---|---|---|
| System generated (generado por el sistema) | Binance genera el secret, solo lo ves una vez | 99% de los casos |
| Self-generated (autofirmado) | Usa una clave pública Ed25519/RSA, el secret nunca se sube | Escenarios de alta seguridad |
Para el usuario normal, elegir [System generated] es suficiente. Ponle un nombre a la Key (máximo 30 caracteres, por ejemplo bot-spot-grid-arb) y haz clic en [Crear]. El sistema pedirá código 2FA + verificación por email + verificación por SMS (si lo tienes vinculado); solo se genera cuando los tres pasan.
Al terminar se mostrará la API Key (clave pública, 64 caracteres) y la Secret Key (clave privada, 64 caracteres). La Secret Key solo se muestra una vez; al cerrar la página ya no podrás volver a verla. Cópiala de inmediato a un gestor de contraseñas o a una nota cifrada; si la pierdes, solo podrás eliminar la Key y crear una nueva.
Paso 2: marcar los permisos
Una Key recién creada solo tiene permiso de lectura por defecto. Para activar permisos de trading hay que hacer clic en [Edit restrictions] → marcar el permiso correspondiente → confirmar con código 2FA. Cada cambio de permiso activa una verificación por 2FA y email.
Nuestra configuración de las 5 Keys en esta ocasión:
| Nombre de la Key | Uso | Permisos | Restricción de IP |
|---|---|---|---|
bot-spot-grid |
Bot de grid en spot | Lectura + trading spot | Limitada a 1 IP |
bot-futures-trend |
Estrategia de tendencia en futuros | Lectura + trading de futuros | Limitada a 1 IP |
tax-export |
Herramienta de exportación fiscal | Solo lectura | Limitada a 2 IPs |
dashboard-only |
Panel de monitoreo personal | Solo lectura | Sin restricción (solo se usa en el WiFi de casa) |
manual-transfer |
Herramienta manual de transferencias entre cuentas | Lectura + transferencia universal | Limitada a 1 IP |
Ninguna de las 5 tiene activado el permiso de retiro. Si algún día se filtra cualquiera de ellas, la pérdida máxima sería que operen en tu contra (pero limitado a los permisos de spot o futuros de esa Key en particular); los fondos en sí no se pueden vaciar.
Paso 3: vincular lista blanca de IP — el paso clave
En la página de [Edit restrictions], más abajo está [Restrict access to trusted IPs only]. Ábrelo e ingresa las direcciones IP (separadas por comas, hasta 30 en total).
Por qué es obligatorio vincular la IP:
- Aunque la API Key y el Secret se filtren, el servidor del atacante no estará en la lista blanca
- El servidor de Binance rechazará todas las solicitudes que vengan de otra IP, devolviendo el error -2015
- Equivale a una capa adicional de autenticación por "ubicación geográfica"
El costo de no vincular la IP:
- Una Key sin restricción de IP caducará automáticamente después de 90 días (esta es una regla estricta que Binance implementó desde 2024)
- Una Key con IP vinculada no caduca automáticamente y se puede usar indefinidamente
Cómo encontrar la IP de tu servidor:
- Bot autoalojado: ejecuta
curl ifconfig.meen esa máquina para ver la IP de salida - Función en la nube o PaaS: revisa la IP de salida fija que ofrece el proveedor (muchos PaaS tienen IP de salida variable, hay que configurar NAT por separado)
- Corriendo en casa: la IP pública de tu propia conexión (si tu IP dinámica cambia todos los días esto se vuelve complicado, no se recomienda vincular desde casa)
Si tu programa está desplegado en un entorno de IP dinámica (por ejemplo, banda ancha doméstica o trabajo remoto móvil), no vincular la IP te obliga a la caducidad de 90 días, y vincularla puede fallar si la IP cambia. En ese caso, lo mejor es usar un VPS con IP fija, o cambiar a una solución de túnel de red interna.
En esta ocasión, 4 de nuestras 5 Keys tienen IP vinculada; la única que no, [dashboard-only], es de solo lectura, con un nivel de permiso ya bajo de por sí, así que resulta segura sin vincular.
Paso 4: probar si la Key funciona
Después de crearla, pruébala con curl:
curl -H "X-MBX-APIKEY: tu API Key" \
https://api.binance.com/api/v3/account?timestamp=1234567890&signature=xxx
Si devuelve información de la cuenta, la Key funciona correctamente. Si devuelve:
| Código de error | Significado | Solución |
|---|---|---|
| -2014 | API Key inválida | Verifica que la Key esté copiada completa, sin espacios |
| -2015 | IP no está en la lista blanca | Verifica tu IP de salida actual y agrégala a la lista blanca |
| -1022 | Error de firma | Verifica la Secret Key y el algoritmo de firma |
| -1021 | Timestamp fuera del rango | La hora del servidor no está sincronizada, sincroniza el reloj |
| -2010 | No tiene ese permiso | Esa Key no tiene marcado el permiso correspondiente, ve a [Edit] y agrégalo |
| -4007 | Dirección de retiro no está en la lista blanca | Solo aplica a la API de retiros, agrega la dirección a la lista blanca |
El error más común es el -2015 de IP fuera de la lista blanca, porque muchas personas no saben cuál es su IP de salida real (por ejemplo, si usan VPN, Cloudflare, o alguna red corporativa). En la App Oficial de Binance, dentro de [Administración de API] también puedes ver la [Última IP de acceso] y compararla con la que crees que tienes.
Paso 5: revisión periódica + rotación
Cada 90 días, haz un chequeo completo de tus API Keys:
1. Lista todas las Keys: En la página principal de [Administración de API] puedes ver todas las Keys, con su fecha de creación, último acceso, permisos y restricción de IP, todo a la vista.
2. Identifica las Keys sospechosas:
- Si ya no sabes para qué programa era → elimínala
- Sin registro de [último acceso] en 30 días → elimínala
- Sin IP vinculada → agrega una IP o elimínala
- Con permisos que exceden lo necesario → reduce al mínimo
3. Rotación proactiva: Para las Keys importantes (las que tocan activos de gran monto), se recomienda recrearlas activamente cada 90 días: eliminar la Key antigua → crear una nueva → actualizarla en el programa → verificar que funciona → completo. Este proceso deja el programa fuera de línea brevemente entre 1 y 5 minutos, así que elige un horario de baja actividad.
4. Verificaciones antes de eliminar: Eliminar una API Key surte efecto de inmediato y no se puede deshacer. Antes de eliminar, confirma:
- Que esta Key no está referenciada en ningún programa en ejecución
- Que no está en ningún cron job ni tarea programada
- Que no quedó en el
.envni en archivos de configuración del repositorio Git (deberían estar en.gitignore, pero conviene confirmarlo de nuevo)
Emergencia por filtración de API Key
Si descubres que una Key pudo haberse filtrado (por ejemplo, la subiste sin querer a un repositorio Git público), actúa de inmediato:
- Primer segundo: elimina esa Key en [Administración de API]
- Segundo segundo: revisa las últimas 24 horas de transacciones de esa Key, buscando órdenes sospechosas
- Tercer segundo: si esa Key tenía permiso de retiro, revisa si hubo retiros sospechosos (debería haberlo bloqueado la lista blanca, pero revísalo igual)
- Cuarto segundo: cambia la contraseña de la cuenta + restablece el 2FA (aunque no tengas evidencia de que otras credenciales se filtraron, haz una limpieza completa)
- Después: si el repositorio Git ya fue subido (push), no basta con eliminar la Key; también hay que borrar el secret del historial de Git usando
git filter-brancho la herramienta BFG, de lo contrario alguien puede recuperarlo del historial de commits
GitHub y GitLab tienen servicios de escaneo automático de secretos; en cuanto un Secret de la API de Binance se sube a un repositorio público, Binance suele recibir la notificación de la plataforma y desactivar la Key en pocas horas, pero esto es solo un respaldo, no debes depender de ello.
Los riesgos de usar API Keys en plataformas de terceros
Muchas plataformas de terceros para estrategias, herramientas fiscales o gestión de portafolios te piden ingresar una API Key. El principio es:
| Tipo de tercero | Qué permiso deberías dar | Señal de alerta |
|---|---|---|
| Herramienta de exportación fiscal | Solo lectura | Si te pide activar retiros → huye |
| Panel de monitoreo de portafolio | Solo lectura | Si te pide activar trading → piénsalo bien |
| Plataformas de copy trading / señales / estrategias | Lectura + trading spot/futuros | Si te pide activar retiros → huye definitivamente |
| Herramientas de apalancamiento por terceros / préstamos | No te acerques a este tipo, evítalas | Cualquiera que pida retiros, huye |
Línea roja: si una plataforma de terceros te exige con firmeza que actives el permiso de retiro, con un 99% de probabilidad quiere quedarse con tus fondos. Las herramientas fiscales, de monitoreo o de copy trading no necesitan permiso de retiro; solo necesitan lectura, y como mucho, permiso de trading.
En nuestro caso, a una plataforma de copy trading en futuros le dimos [lectura + trading de futuros]; cuando pidieron activar [retiros] nos negamos, y ellos también lo aceptaron, lo que demuestra que ese permiso era opcional desde el principio; si de verdad lo necesitaran, se habrían ido.
Preguntas frecuentes
P: ¿Cuál es más sensible, la API Key o la Secret Key? R: La Secret Key es más sensible. La API Key es solo un identificador que se puede compartir; la Secret Key es la clave de firma, y filtrarla equivale a que roben todos los permisos. El Secret nunca debe escribirse en ningún email, chat o Issue.
P: ¿Cómo guardar de forma segura la API Key y el Secret?
R: En local, usa un gestor de contraseñas como 1Password, Bitwarden o KeePass; en servidores, usa variables de entorno más Docker secrets o K8s Secret, nunca las codifiques directamente en el código. El repositorio Git siempre debe tener el .env en .gitignore.
P: Después de obtener la API Key de Binance, ¿puedo cambiarle el nombre? R: Sí se puede. En [Administración de API] → busca la Key → [Edit restrictions], ahí puedes cambiar el nombre. Renombrarla no afecta la Key ni el Secret; es solo una etiqueta para tu propia referencia.
P: ¿Cuál es el límite de API Keys? R: Hasta 30 API Keys por cuenta. Normalmente con 5-10 es suficiente para dividir bien los usos; el límite de 30 está pensado para subcuentas numerosas y equipos cuantitativos.
P: ¿Hay diferencia entre la API de una subcuenta (Sub-Account) y la de la cuenta principal? R: Sí hay diferencia. La API de una subcuenta solo puede operar los activos dentro de esa subcuenta, no puede tocar la cuenta principal. Las subcuentas también están aisladas entre sí. Son especialmente útiles para aislar estrategias y riesgos, algo común en equipos cuantitativos.
P: ¿Las API Keys tienen límite de frecuencia de acceso? R: Sí. Todas las interfaces de Binance tienen un límite de weight (peso); las interfaces simples tienen weight=1, las complejas hasta weight=20. Cada IP tiene un límite total de 1200 weight por minuto; consultar saldo o revisar órdenes es ligero, colocar órdenes también, pero consultar todas las velas o todos los pares puede agotar el límite rápidamente, devolviendo -1003 por exceso.
P: ¿Al eliminar una API Key se pierde el historial de transacciones? R: No. El historial de transacciones y de órdenes pertenece al nivel de la cuenta, no está ligado a una Key específica. Eliminar una Key solo detiene ese acceso; todos los datos de la cuenta se conservan.
P: ¿La lista blanca de IP para API soporta IPv6? R: Sí. La lista blanca de la API de Binance acepta direcciones IPv4 e IPv6 con el mismo formato normal. Si tu servidor tiene salida tanto v4 como v6, se recomienda agregar ambas.
P: ¿Qué significa la caducidad automática a 90 días de la API? R: Una API Key sin lista blanca de IP caduca automáticamente 90 días después de su creación y hay que recrearla. Las que tienen IP vinculada no caducan automáticamente. Esta es una regla del anuncio oficial de Binance, vigente desde 2024, pensada principalmente para limpiar Keys abandonadas que ya no se mantienen.