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
This commit is contained in:
115
06_SEGURIDAD/secretos.md
Normal file
115
06_SEGURIDAD/secretos.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user