InfraFenceInfraFence

Live Security Operations

Empezar

Kubernetes

Protege todos los nodos de un clúster de Kubernetes con el chart de Helm de InfraFence y una clave de clúster - instalación, valores, actualizaciones, GitOps y qué despliega el chart.

Última actualización:

El chart de Helm ejecuta el agente como un DaemonSet: un agente en cada nodo, control plane incluido. Cada nodo se registra como un servidor propio en el panel.

Requisitos previos: Kubernetes 1.22 o posterior y Helm 3.

Crear una clave de clúster

En el panel, Ajustes › Kubernetes › Crear clave de clúster (propietarios y administradores). A diferencia de un token de instalación, una clave de clúster registra todos los nodos del clúster. Empieza por IFK- y solo se muestra una vez: cópiala en el momento. Después, la lista muestra solo sus cuatro últimos caracteres.

Revocar una clave impide que se unan nodos nuevos con ella; los nodos ya registrados siguen funcionando. En Starter solo se puede registrar un nodo, porque Starter cubre un servidor; Basic y superiores no tienen límite y facturan un servidor por nodo.

Instalar

bash
helm install infrafence-agent oci://ghcr.io/infrafence/charts/infrafence-agent \
  --namespace infrafence --create-namespace \
  --set apiKey="IFK-..." \
  --set clusterName="production"

El panel muestra el mismo comando con tu clave y el nombre de tu clúster ya rellenados.

Actualizar y desinstalar

bash
helm upgrade infrafence-agent oci://ghcr.io/infrafence/charts/infrafence-agent \
  --namespace infrafence --reuse-values
bash
helm uninstall infrafence-agent --namespace infrafence

Un nodo que se vuelve a registrar (un nodo reconstruido, o un /etc/infrafence borrado) conserva su servidor en el panel y recibe un token nuevo.

Valores

Valor Predeterminado Significado
apiKey "" (obligatorio) La clave de clúster. Se guarda en un Secret.
serverUrl https://infrafence.com El panel.
clusterName "" Los nodos se agrupan por este nombre en el panel; si está vacío se detecta del clúster.
image.repository ghcr.io/infrafence/infrafence-agent La imagen del agente.
image.tag "" El appVersion del chart si está vacío.
image.pullPolicy Always
autoUpdate.enabled true Permite que el agente actualice su propio DaemonSet. Desactívalo con GitOps.
ingressFirewall.enabled false RBAC para bloquear direcciones en el ConfigMap de nginx-ingress.
ingressFirewall.namespace ingress-nginx Dónde se ejecuta nginx-ingress.
ingressFirewall.configMapName ingress-nginx-controller Su ConfigMap.
resources requests 50m CPU, 64Mi; limits 500m CPU, 256Mi
tolerations [{operator: Exists}] Todos los nodos, control plane incluido.
nodeSelector {}
priorityClassName ""
extraEnv [] Más variables de entorno, por ejemplo WEB_LOG_PATH.
serviceAccount.create true También serviceAccount.name y serviceAccount.annotations.

Actualizaciones y GitOps

Con autoUpdate.enabled, un agente que tiene permiso para actualizarse (el ajuste Actualizaciones del agente está en Instalar automáticamente, o elegiste Instalar ahora) verifica la firma cosign de la imagen de la nueva versión y mueve su DaemonSet a esa imagen por digest. Si ArgoCD o Flux gestionan el clúster, desactiva esta opción y sube la etiqueta de la imagen en tu repositorio:

yaml
autoUpdate:
  enabled: false

Qué despliega el chart

  • un DaemonSet con la red del host, el espacio de nombres PID del host y pods privilegiados, desplegado nodo a nodo;
  • una ServiceAccount con acceso de solo lectura a la API de Kubernetes, más el permiso de modificar su propio DaemonSet para las actualizaciones;
  • un Secret con la clave de clúster;
  • con ingressFirewall.enabled, un Role que puede escribir el ConfigMap del ingress.

Montajes del host: /var/log (solo lectura), los sockets de Docker y containerd (solo lectura) y /etc/infrafence (lectura y escritura, el registro del nodo).

Controladores de ingress

Los bloqueos funcionan en el firewall del nodo, sea cual sea el controlador de ingress. Para detectar los ataques web, el agente necesita los logs de acceso: con Traefik, activa sus logs de acceso.