Alertas y suscripciones
Envía eventos de la PKI a personas y sistemas externos.
Las suscripciones convierten los eventos de Lamassu en notificaciones accionables. Puedes avisar a un equipo, alimentar un sistema de incidentes o activar una automatización cuando cambia una CA, un certificado o un dispositivo.
Cómo funciona
- Un servicio publica un evento de dominio.
- Lamassu evalúa las suscripciones asociadas a ese tipo de evento.
- El filtro de cada suscripción decide si debe notificarse.
- Lamassu entrega el evento al canal configurado.
El inventario de eventos muestra cuándo se observó cada tipo por última vez, cuántas veces ha ocurrido y cuántas suscripciones tiene. Puedes expandir un evento para inspeccionar un ejemplo de su payload JSON antes de crear el filtro.
Canales disponibles
- Email envía avisos a una persona o lista operativa. Solo requiere la dirección de destino. El contenido del evento se entrega como texto HTML escapado, nunca como marcado.
- Microsoft Teams publica la notificación en un canal mediante su URL de webhook.
- Webhook entrega el evento a una automatización, SIEM o sistema de incidentes mediante
POSToPUT.
Los canales Microsoft Teams y Webhook aceptan un bloque opcional http_client que autentica la llamada al receptor. auth_mode selecciona noauth (por defecto), apikey, jwt o mtls; cada modo exige sus propias opciones:
apikey_optionsnecesitaheaderykey.jwt_optionsnecesitaoidc_client_id,oidc_client_secrety unoidc_well_knownabsolutohttpohttps.mtls_optionsnecesitacert_contentykey_contentcomo PEM codificado en Base64, como el resto de certificados de la API; también se acepta el PEM en claro. Los valores que referencian archivos del servidor se rechazan, y el par debe corresponder a un certificado y una clave privada coincidentes.
La referencia de la API de Alerts documenta el esquema completo de http_client.
Crea una suscripción
Elige el evento
Abre Alerts, localiza el tipo de evento y selecciona Subscribe. Revisa el último ejemplo JSON para identificar los campos que necesitarás filtrar.
Configura el destino
Selecciona Email, Microsoft Teams o Webhook e introduce los datos del canal.
Limita las notificaciones
Añade un filtro si no quieres recibir todas las instancias del evento.
- None notifica todas las instancias del evento.
- JSON Path evalúa uno o varios campos concretos.
- JSON Schema acepta únicamente payloads con una estructura determinada.
- JavaScript permite expresar lógica personalizada. Cada filtro se ejecuta como máximo durante 100 milisegundos; un filtro que supera ese límite hace fallar la condición y la notificación se omite con el error
javascript filter execution timed out.
Por ejemplo, function (event) { return event.data.status == "NO_IDENTITY"; } limita una suscripción a dispositivos sin identidad.
Revisa y activa
Comprueba el evento, el canal y el filtro en el resumen. Selecciona Confirm Subscription para comenzar la entrega.
Configura el cliente HTTP del webhook
Los canales Webhook y Microsoft Teams muestran esta configuración en el formulario de suscripción, en el paso del canal, y de nuevo al editar una suscripción; Email no la utiliza. Los campos se corresponden con el bloque opcional http_client descrito arriba:
- Log Level selecciona
debug,info,warnoerror;infoes el valor por defecto. - Call Timeout es de 10 segundos por defecto. La consola rechaza un valor superior a 30 segundos con
Webhook timeout must be at most 30s.; la API ajusta ese mismo valor al tope en lugar de rechazarlo (ver Las llamadas están limitadas). - No hay interruptor de verificación TLS para estos canales, porque el servicio siempre verifica el certificado del receptor (ver TLS siempre se verifica).
- HTTP Authentication selecciona
No Authentication(por defecto),API Key(valor de la API key y Header Name,X-API-Keypor defecto),OIDC Client Credentials(Client ID, Client Secret y Well-Known URL) oMutual TLS(Client Certificate y Client Private Key pegados como PEM). Una clave privada guardada permanece oculta hasta que seleccionas Show. - Una URL
http://muestra en la consola la advertenciaUnencrypted HTTP connection(ver la llamada Credenciales sobre http:// más abajo).
Los campos se validan en línea con las mismas reglas de entrega: la URL del webhook y la Well-Known URL de OIDC deben ser URLs absolutas http o https, una cabecera API-key no puede usar un nombre reservado y el certificado y la clave mTLS deben ser contenido PEM, no rutas de ficheros.
El resumen del paso de confirmación muestra la autenticación como None, OIDC client credentials, API key o Mutual TLS. Los detalles de la suscripción muestran la autenticación, el nombre de la cabecera API-key (nunca el valor), la URL del emisor OIDC, mTLS como Configured y una fila fija TLS verification: Verified. La API key, el client secret y la clave privada no se muestran en los detalles de la suscripción.
Reglas de entrega del webhook
Las notificaciones enviadas por los canales Microsoft Teams y Webhook siguen una política HTTP fija:
- TLS siempre se verifica. El certificado del receptor se comprueba contra el almacén de confianza del sistema.
insecure_skip_verifyse aplica siempre comofalse— también cuando se establece entrue— así que un receptor con certificado propio o no confiable falla la entrega. - No se siguen redirecciones. Una respuesta
3xxfalla conunexpected status code: <n>: redirects are not followed. Configurawebhook_urlcon la URL final absolutahttpohttps: una direcciónhttp://que un ingress redirige ahttps://deja de funcionar. - Las llamadas están limitadas. Una llamada tiene por defecto un timeout de 10 segundos; un
call_timeoutconfigurado se limita a 30 segundos. Los valores por encima del tope se ajustan, no se rechazan. - El cuerpo de la respuesta se ignora. La entrega comprueba solo el código de estado, así que el receptor puede responder con cualquier cuerpo.
- Las cabeceras API-key están restringidas. Un
apikey_options.headerpropio no puede usar nombres en los que la plataforma o los servicios receptores confían — por ejemploX-Principal-Id,X-Request-Id,Host,Content-TypeoForwarded— y ningún nombre puede empezar porX-Forwarded-,X-Envoy-oX-Lms-. La comparación no distingue mayúsculas. - Las configuraciones inválidas se rechazan al suscribir. Una configuración de canal que fallaría en cada entrega devuelve HTTP 400 con un cuerpo que empieza por
struct validation error:y la suscripción no se crea.
Credenciales sobre http://
Las credenciales se envían sea cual sea el esquema de la URL. Con un webhook_url http://, la API key o el bearer token viajan en texto claro y mTLS no tiene efecto. Prefiere https:// para webhook_url, oidc_well_known y el token endpoint que anuncia.
Gestiona una suscripción
Abre una suscripción existente para consultar su destino y filtro, modificar la configuración o seleccionar Unsubscribe. Elimina las suscripciones que ya no tengan un propietario operativo para evitar entregas ignoradas o endpoints obsoletos.
Las suscripciones creadas con versiones anteriores de la consola pueden guardar el destino del webhook en url y method en lugar de webhook_url y webhook_method. El servicio entrega solo a través de webhook_url y webhook_method, así que una suscripción así no entrega aunque los detalles de la suscripción muestren el destino guardado. Abre la suscripción y vuelve a guardarla: el formulario de edición precarga el destino guardado, y al guardar se reescribe la configuración del canal con el formato actual.
Familias de eventos
- Autoridades:
ca.create,ca.import,ca.reissueyca.delete. - Certificados:
ca.sign.certificateycertificate.delete. - Perfiles:
profile.issuance.create,profile.issuance.updateyprofile.issuance.delete. - Enrolamiento:
dms.create,dms.update,dms.enrollydms.reenroll. - Dispositivos:
device.create,device.identity.updateydevice.status.update. - Validación:
va.role.crl.create. - Claves:
kms.create,kms.import,kms.signykms.delete.
Utiliza el catálogo que muestra la consola como fuente para los tipos disponibles en la versión que tienes desplegada.