Files
system-docs/06_SEGURIDAD/secretos.md
ARCHITECT 6ea70bd34f Update to Skynet v7 - Complete documentation restructure
- Nueva estructura de carpetas según Skynet v7
- Añadidos schemas SQL completos
- Documentación de entidades, componentes e integraciones
- Modelo de seguridad actualizado
- Infraestructura y operaciones reorganizadas
2025-12-29 18:23:41 +00:00

2.8 KiB

Gestión de Secretos

Gestor: Infisical
Estado: Operativo


Principio

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│   Las llaves nunca viajan con los datos que protegen.          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Infisical

Parámetro Valor
URL http://{ip}:8082
Proyectos anthropic, servers, databases, r2
Acceso Machine Identities

Proyectos

Proyecto Contenido
anthropic API keys de IA
servers SSH, accesos servidores
databases Credenciales PostgreSQL, Redis
r2 Keys de Cloudflare R2

Categorías de Secretos

Categoría Ejemplos
APIs IA OpenRouter, Groq, Anthropic, OpenAI
Bases de datos PostgreSQL, Redis
Almacenamiento Storj, R2, Arweave
Infraestructura n8n, Nextcloud, Windmill
Blockchain Polygon, NOTARIO
Comunicaciones Resend, Slack, ntfy
DNS/CDN Cloudflare, Let's Encrypt
GPU RunPod
Servidores SSH credentials
Cifrado Master Key, KEKs

Matriz de Rotación

Tipo Rotación Ejemplos
API_KEY 90 días OpenRouter, Groq, Cloudflare
DB_CREDENTIAL 30 días PostgreSQL, Redis
SERVICE_TOKEN 7 días n8n, Nextcloud, Slack
CERTIFICATE 90 días SSL/TLS (auto)
SIGNING_KEY 180 días JWT, KEK-SIGNING
ENCRYPTION_KEY 365 días AES-256, KEK-DATA
SSH_CREDENTIAL 180 días Llaves SSH

Acceso por Instancia

Cada instancia tiene su propia Machine Identity:

ARCHITECT → Machine Identity: architect_prod
DECK      → Machine Identity: deck_prod
CORP      → Machine Identity: corp_prod
HST       → Machine Identity: hst_prod

Uso en Código

from infisical import InfisicalClient

client = InfisicalClient(
    client_id=os.environ["INFISICAL_CLIENT_ID"],
    client_secret=os.environ["INFISICAL_CLIENT_SECRET"]
)

# Obtener secreto
api_key = client.get_secret(
    project_id="anthropic",
    environment="production",
    secret_name="ANTHROPIC_API_KEY"
)

Nunca en Código

Los siguientes NUNCA deben estar en repositorios:

  • API keys
  • Contraseñas de BD
  • Tokens de acceso
  • Llaves privadas
  • Certificados

Siempre usar Infisical o variables de entorno.