Aller au contenu

Forwarder SIEM

AKKO v2026.04 livre un sub-chart optionnel akko-siem-forwarder (Fluent Bit, Apache 2.0) qui diffuse chaque événement d'audit vers un ou plusieurs SIEM entreprise — Splunk HEC, Microsoft Sentinel, Elastic Stack, ou tout endpoint HTTP JSON générique (logs layer, Sumo Logic, broker custom).

Traite NIS2 Art. 21(2)(b) — remontée d'éléments de preuve pour la gestion d'incidents.

Activer

# 1. Créer le Secret d'identifiants (en prod : SealedSecrets / ExternalSecrets)
kubectl create secret generic akko-siem-creds -n akko \
  --from-literal=splunk_token=$SPLUNK_HEC_TOKEN \
  --from-literal=sentinel_shared_key=$SENTINEL_KEY \
  --from-literal=elastic_api_key=$ELASTIC_KEY

# 2. Upgrade du chart avec les destinations voulues
helm upgrade akko oci://harbor.akko-ai.com/akko-charts/akko \
  --version 2026.04 \
  -f values-harbor.yaml \
  -f values-dev-secrets.yaml \
  --set akko-siem-forwarder.enabled=true \
  --set akko-siem-forwarder.targets.splunk.enabled=true \
  --set akko-siem-forwarder.targets.splunk.hecUrl=https://hec.client.example:8088 \
  --set akko-siem-forwarder.targets.sentinel.enabled=true \
  --set akko-siem-forwarder.targets.sentinel.workspaceId=<guid>

Ce qui est envoyé

Chaque entrée logs layer taguée audit_type:* est incluse :

Source d'audit Tag Producteur
RBAC fonctions IA AI_RBAC middleware akko-ai-service
Lifecycle catalog CATALOG_MANAGER akko-catalog-manager
Lifecycle tenant TENANT_LIFECYCLE Jobs Helm hook akko-tenant
Événements Keycloak KEYCLOAK webhook kc-events → logs layer
Décisions OPA OPA_DECISION plugin OPA decision log
Query log Trino TRINO_QUERY event listener trino
Audit object storage MINIO_AUDIT webhook audit object storage
Endpoint RGPD GDPR akko-catalog-manager routes_gdpr
Reçu ADEN ADEN_RECEIPT akko-aden audit_receipt

Détails par destination

Splunk HEC

akko-siem-forwarder:
  enabled: true
  targets:
    splunk:
      enabled: true
      hecUrl: "https://hec.splunk.client.example:8088"
      tokenSecretName: akko-siem-creds
      tokenSecretKey: splunk_token
      index: "akko"

La sortie splunk de Fluent Bit utilise HTTPS + TLS verify On + token HEC dans le header Authorization.

Microsoft Sentinel

akko-siem-forwarder:
  targets:
    sentinel:
      enabled: true
      workspaceId: "<GUID>"
      sharedKeySecretKey: sentinel_shared_key
      logType: "AKKOAudit"

La sortie azure de Fluent Bit POST vers l'API data collector Log Analytics avec auth HMAC SHA256. Les logs atterrissent dans la table custom AKKOAudit_CL.

Elastic Stack

akko-siem-forwarder:
  targets:
    elastic:
      enabled: true
      host: "elastic.client.example:9200"
      apiKeySecretKey: elastic_api_key
      index: "akko-audit-%{+YYYY.MM.dd}"

Rotation quotidienne façon Logstash. Si vous tournez déjà Elastic Security, utiliser le template d'index .security-*.

HTTP JSON générique

Pour tout autre SIEM (source HTTP Sumo Logic, logs layer /loki/api/v1/push, broker custom) :

akko-siem-forwarder:
  targets:
    generic_http:
      enabled: true
      url: "https://ingest.client.example/v1/events"
      authHeaderSecretKey: generic_http_auth

Vérifier

# Pod sidecar actif ?
kubectl -n akko get pod -l app.kubernetes.io/name=akko-siem-forwarder

# Le port metrics répond ?
kubectl -n akko port-forward svc/akko-akko-siem-forwarder 2020 &
curl -s http://localhost:2020/api/v1/metrics | jq '.output'

# Envoyer un événement synthétique via l'input HTTP Fluent Bit
kubectl -n akko exec deploy/akko-akko-siem-forwarder -- \
  curl -s -X POST http://localhost:8888 \
    -H "Content-Type: application/json" \
    -d '{"audit_type":"TEST","event":"ping","timestamp":1713542400}'

Puis chercher l'événement dans chaque SIEM — il doit apparaître en moins de 10 s.

Observabilité

Fluent Bit expose les métriques Prometheus à /api/v1/metrics/prometheus sur le port 2020. Compteurs clés :

  • fluentbit_input_bytes_total{name="http"}
  • fluentbit_output_proc_records_total{name="splunk"}
  • fluentbit_output_errors_total{name="azure"}

Dépannage

Symptôme Cause Correctif
Splunk 401 Token HEC incorrect ou désactivé curl -k -H "Authorization: Splunk <token>" $HEC_URL/services/collector/event -d '{"event":"ping"}'
Sentinel 403 Shared key expirée Rotation dans Azure Portal → Log Analytics workspace → Agents → Primary Key
Elastic 401 API key révoquée POST /_security/api_key avec permissions sur l'index AKKO
Aucun record ne remonte VLOGS_URL injoignable kubectl exec ... -- curl -s $VLOGS_URL | head
Alertes de backpressure Quota ingest SIEM atteint Ralentir temporairement via pollIntervalSeconds