Seguridad, cerrada por defecto.

Cifrada en tránsito y en reposo, una identidad en cada conexión, un registro de cada cambio. Cada capa es una configuración que puedes leer.

La página Acceso: los miembros de la consola con sus roles, el menú lateral de ajustes de acceso y un aviso con las comprobaciones de seguridad que se cumplen.

Siete capas alrededor de tus datos.

Desde el borde de la red hasta el registro en disco, cada una con la configuración que la activa.

Solo loopback, por defecto

Todo listener se enlaza a 127.0.0.1 hasta que digas lo contrario. Un proceso que escucharía en una dirección pública sin TLS se niega a arrancar.

# default: every listener binds to 127.0.0.1
# going public is an explicit act:
Node__ListenAddress=0.0.0.0

# ...and without TLS the process refuses to start
# unless you opt in on purpose:
Tls__AllowInsecureTransport=false

mTLS en todas partes

Un solo interruptor activa TLS en cada listener y en cada conexión interna. Una CA de clúster integrada emite certificados de vida corta, rotados por ti, con identidades SPIFFE.

Tls__Enabled=true
Tls__RequireClientCertificate=true
Tls__CaPath=/etc/colibri/ca.pem

# identity in every certificate (SAN URI):
# spiffe://colibri/process/node/node-1

ACL firmadas, acotadas por prefijo

Los usuarios de datos reciben reglas por prefijo de clave: denegar por defecto, gana el prefijo más largo. El archivo de ACL se firma con HMAC-SHA256 y se verifica antes de que un nodo lo aplique.

ProxyAuth__Type=Acl

// acl.json (signed with HMAC-SHA256)
{ "prefix": "billing:", "read": true,
  "write": true, "admin": false }
// deny by default, longest prefix wins

Inicio de sesión único con OIDC

Las personas inician sesión con tu proveedor de identidad: Entra ID, Okta, Keycloak, Google. Código de autorización con PKCE, roles a partir de claims de grupo, bloqueo tras fallos repetidos.

// Security > Single sign-on
{ "enabled": true,
  "authority": "https://idp.example.com",
  "roleClaim": "groups",
  "roleMapping": { "sec-admins": "Admin" },
  "sessionHours": 8 }

Cuotas por tenant

Limita claves y bytes por prefijo de tenant. Un tenant en su límite recibe un error claro, y un vecino ruidoso no puede agotar el nodo.

// tenant = text before the first ':'
"tenants": [{ "prefix": "acme",
  "maxKeys": 1000000,
  "maxBytes": 5368709120 }]

// over the limit: HTTP 507 urn:colibri:quota-exceeded

Registro de auditoría de solo anexado

Cada inicio de sesión y cada acción que modifica algo se anexa al registro de auditoría. La exportación del registro forma parte del plan Enterprise.

data/audit/*.jsonl      # append-only

sso.login   sso.denied
tls.rotate  tls.ca.regenerate
tenant.quota.update
# every sign-in and every mutating action

Cifrado en reposo

AES-256-GCM en cada registro, una clave de datos por shard, envuelta por una clave que tú controlas: una KEK local o HashiCorp Vault Transit, con rotación en línea. Actívala, rota las claves y desactívala desde Admin; rotar una clave no reinicia los nodos.

Node__Encryption__Enabled=true
Node__Encryption__Vault__Address=https://vault.internal:8200
Node__Encryption__Vault__KeyName=colibri

# AES-256-GCM per record
# one DEK per shard, wrapped by your KEK
# or manage it in Admin: Storage > Encryption at rest

Lo que te decimos desde el principio

Los límites de la versión actual, dichos con claridad.

Regiones. Una prueba alojada corre en la región que eliges, y su clúster y sus datos se quedan allí hasta que se borra. Tus datos de registro (nombre, correo, empresa) los gestionan nuestro sitio y nuestros sistemas de ventas, no el clúster de prueba. Esto dice dónde corre una prueba; no es una certificación de cumplimiento.

  • Los nombres de clave, los TTL y las versiones no se cifran: el índice los necesita.
  • Los certificados no se pueden revocar: rótalos o regenera la CA del clúster.
  • Recifrar registros antiguos con una clave de datos nueva no está implementado, así que respalda tu KEK.
  • Las cuotas por tenant son por nodo, y blandas como máximo por las escrituras en vuelo.

¿Encontraste algo? Cuéntanoslo en privado.

Reporta una vulnerabilidad en privado a nuestro equipo de seguridad por correo, y por favor no la publiques. Confirmamos que la recibimos y te mantenemos al tanto hasta que esté corregida.

Contacto de seguridad: security@colibridb.com

3

días hábiles para acusar recibo de tu reporte.

10

días hábiles para una evaluación inicial.

30/ 90

días para una corrección o mitigación: 30 para Crítica y Alta, 90 para Media y Baja.

¿Quieres que recorramos el modelo de amenazas contigo?

Agenda una sesión de seguridad. Revisaremos las capas, las pruebas de fallos y el despliegue que tienes en mente.