# 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 ```python 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.