Show HN: Kloak, A secret manager that keeps K8s workload away from secrets

· cloud · Source ↗

TLDR

  • Kloak is a Kubernetes controller that replaces real secrets with placeholders and uses eBPF to inject them at TLS connection time, per allowed host.

Key Takeaways

  • Kloak swaps secrets in K8s workloads for harmless placeholder “kloaked secrets”; the real values never live in pod memory or env vars at rest.
  • eBPF intercepts outbound TLS handshakes and substitutes the real secret only when the destination matches an allowed host list.
  • Currently supports OpenSSL 3.0-3.5 (static and dynamic linking) and go-tls (Go 1.25 and 1.26); GnuTLS and BoringSSL support is planned.
  • The model eliminates the standard attack path where an attacker with pod shell access or in-cluster read permissions can dump live secrets.

Hacker News Comment Review

  • The eBPF-at-TLS approach draws comparisons to API proxy/gateway patterns, where a sidecar adds auth transparently; commenters noted Kloak operates deeper in the stack, at the library level rather than the network edge.
  • There is an open design question around string-replacement edge cases: if a placeholder value appears legitimately in a request body that is not a secret, Kloak could incorrectly substitute it, and the thread did not surface a resolution.
  • Commenters flagged relevance to agentic AI workflows, where LLM-driven processes need credentials but keeping those credentials out of the model context or prompt pipeline is an unsolved ops problem.

Notable Comments

  • @anthonyskipper: flags cloud-managed K8s fit (AKS/EKS) as the key open question for production adoption.
  • @jackdecker: proposes extending the pattern with LD_PRELOAD to intercept getenv so secrets never enter process memory even transiently.

Original | Discuss on HN