HashiCorp Taller de Vault
- ponente: Pedro Coca (gerente regional)
introducción modelo operativo cloud
- herramientas
- vagrant
- packer
- terraform
- vault
- consul
- nomad
- elementos infraestructura
- conectividad
- desarrollo
- seguridad
- operaciones
- transición a un mundo multi-cloud
- sistemas de petición → auto gestión
- llamadas API a servicios
- soluciones Hashicorp:
- Nomad = desarrollo
- consul = conectar
- vault = securizar
- terraform = infraestructura
terraform
- núcleo + proveedores (ofrecen API)
- no solo nube pública
- proveedores secundarios: +1000
- reutilización, control versiones, automatización
- marco de control (compliante) → terraform enterprise
- mejores prácticas
- políticas (as Code)
vault
- dispersión de secretos, falta de control
- postit
- archivo de texto
- control de versiones
- logs
- modelo:
- autenticación
- cliente
- sistema
- centralizaión de secretos
- más rotación, periodos más cortos
- encriptación como servicio
- encriptar todo el tráfico de aplicación sin modificar la aplicación
- protección avanzada de datos
consul
- conectar aplicaciones
- migración de monolitos a microservicios
- middleware:
- load-balancers
- firewalls
- registro de apliaciones
- ip-address → name
- descubrimiento de servicios
- confianza cero
- service mesh
- consul intencions: definicíón control de acceso para servicios (multicloud)
nomad
- orquestrador cargas de trabajo
- contenedores o tradicionales
taller vault
info
overview
- API
- agnóstico plataforma
- manejo de secretos centralizado
- credenciales dinámicas de corto plazo ++
- encriptación on-the-fly
- «castle and moat» : castillo+fosa → protección capas/perímetros
- firewalls, reglas por IP
- al final las credenciales se almacenaban en el código o en sitios estáticos
- problemas modelo tradicional
- restricciones por IP (con cada vez más IPs en danza)
- revocación contraseña
- rotaciones, cambios, acceso(log)
- usuarios/aplicaciones
- concepto de identidad
- usarios: AD/LDAP
- token
- transciende los perímetros de seguridad
- dinámico, credenciales de corto plazo, rotadas frecuentemente
- credenciales y entidades pueden ser invalidados fácilmente
- motores de secretos Vault
- alta disponibilidad
- 3 nodos
- en versión free, 1 activo, 2 en espera
- no más de 8ms de diferencia entre nodos
- vault enterprise replication
- cluster disaster recovery
chap2: interactuando con Vault
- interacción
- CLI (wrapper)
- UI (wrapper)
- API
cli
- aplicación GO
- multiplataforma
instruqt
- modo DEV (para desarrollo, todo en memoria, para trastear)
vault server -dev -dev-listen-address=0.0.0.0:8200 -dev-root-token-id=root
vault kv put secret/my-first-secret age=48
curl http://localhost:8200/v1/sys/health | jq
curl –header «X-Vault-Token: root» http://localhost:8200/v1/secret/data/my-first-secret | jq
production vault server
- configuración parámetros
- HCL o JSON
- listener:
- storage: donde se guardan los datos https://www.vaultproject.io/docs/configuration/storage
- Hashicorp solo mantiene 4: consul, integrado (raft)
- seal:
- log_level
- ui
- api_addr
- cluster_addr
- keys
- llave almacenamiento
- llave maestra
- key-holders en su momento: dividir la llave en varias personas, todas necesarias para volver a levantar el servicio
- proveedores externo para almacenar llaves
- llave sello
- evita key-holders (5 por defecto, mínimo 3)
vault operator init
→ ceremonia de inicialización- -key-shares
- -key-threshold
- llaves gpg/pgp enviadas al cluster
- retorna root-token, por encima de políticas y auditorias
- retorna llaves recuperación, una por cada key-holder, cifrada con su clave GPG
- se establece, a través del root-token:
- auth
- basic policy
- auditoria
- una vez hecho, se revoca la root-token y los key-holders ya pueden desaparecer (ya no hay manera de no hacer nada sin ellos)
- unsealing vault server
vault operator unseal
- guía securización: https://learn.hashicorp.com/vault/operations/production-hardening
chap4:vault secret engines
- muy extensible
- Key/Value (KV)
- PKI
- SSH
- TOTP
- proveedores públicos
- …
vault secrets enable
vault secrets anable -path=aws-east aws
- KV 2 versiones
- v1 no soporta versionado
- en modo de producción no se habilita por defecto
vault secrets enable -version=2 kv
vautl kv put kv/a-secret value=1234
vautl kv put kv/a-secret value=4321
vault kv get -version=2 kv/a-secret
chap5: vault authentication method
- usuarios
- …
- aplicaciones
- …
vault auth enable
otros
certificación vault