Secrets con Infisical¶
AltruPets utiliza Infisical para gestión centralizada de secrets.
Por qué Infisical¶
- Cloud-agnostic (funciona en Minikube, OVHCloud, AWS)
- Sincronización automática a Kubernetes
- Integración con Terraform y CLI
- Open source con opción cloud
Configuración¶
1. Login¶
2. Sincronizar secrets¶
O manualmente:
infisical export --env=dev --projectId <PROJECT_ID> --format=json | \
jq -r '.[] | "\(.key)=\(.value)"' > secrets.env
kubectl create secret generic backend-secret \
--from-env-file=secrets.env \
-n altrupets-dev \
--dry-run=client -o yaml | kubectl apply -f -
Secrets sincronizados¶
| Secret | Descripción |
|---|---|
DB_HOST |
Host de PostgreSQL |
DB_USERNAME |
Usuario de BD |
DB_PASSWORD |
Contraseña de BD |
DB_NAME |
Nombre de BD |
JWT_SECRET |
Secret para JWT |
SEED_ADMIN_USERNAME |
Usuario admin inicial |
SEED_ADMIN_PASSWORD |
Contraseña admin inicial |
Estructura en Infisical¶
Project: altrupets-monorepo
├── Environment: dev
│ └── Secrets: DB_*, JWT_SECRET, SEED_ADMIN_*
├── Environment: qa
│ └── Secrets: ...
├── Environment: staging
│ └── Secrets: ...
└── Environment: prod
└── Secrets: ...
Script de sincronización¶
Troubleshooting¶
Secrets no sincronizados¶
Secret desactualizado en Kubernetes¶
# Forzar resincronización
make dev-infisical-sync-cli
# Reiniciar pods
kubectl rollout restart deployment/backend -n altrupets-dev
Seguridad¶
- Tokens con permisos mínimos
- IP whitelist en Cloudflare API tokens
- Secrets rotados cada 90 días
- Auditoría en Infisical dashboard