Skip to content

fluentd:v1.17 container isolation score: 63/100 (grade C)

Run with plain docker run fluent/fluentd:v1.17 defaults, no hardening flags, the fluentd image scores 63/100, grade C (partial) on IronClaw's seven-dimension container containment scale. Higher is safer. This is what you get straight out of a copy-pasted docker run; the fixes below close the gap.

Graded from a read-only docker inspect of fluent/fluentd:v1.17 at digest sha256:c795c1bf9918c77a5415e2fda5825f9341f2dd0645d9adfb91f8cae3a3e6b240. No workload is executed. How scoring works →

How it scores, dimension by dimension

Dimension Verdict Score What the scan found
Non-root user (uid != 0) ✅ PASS 15/15 runs as fluent (uid != 0)
Dropped capabilities ❌ FAIL 4/20 default capability set retained (includes CAP_NET_RAW, CAP_MKNOD, …)
Seccomp profile ✅ PASS 15/15 seccomp profile active (syscall surface filtered)
Network isolation / egress ⚠️ WARN 4/15 network=bridge: outbound egress is possible; prefer network=none
Read-only root filesystem ❌ FAIL 0/10 root filesystem is writable: tamper/persistence surface
No docker.sock exposure ✅ PASS 15/15 no docker.sock / OCI control socket mounted
No shared host namespaces ✅ PASS 10/10 no host PID/IPC/network namespace sharing

Harden it: the highest-value fixes

Applying these to your docker run fluentd closes the biggest gaps first (most points recovered first):

  • Dropped capabilities, --cap-drop=ALL
    Drop every Linux capability; add back only what the workload provably needs.
  • Network isolation / egress, --network=none
    Cut egress so a compromised workload cannot reach the network or exfiltrate.
  • Read-only root filesystem, --read-only --tmpfs /tmp
    Make the root filesystem read-only to remove the tamper/persistence surface.

A fully hardened run scores 100/100 (grade A):

docker run -d --name fluentd-hardened \
  --user 65532:65532 \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  --read-only --tmpfs /tmp \
  --network=none \
  fluent/fluentd:v1.17

Scan your own container

These grades come from ironctl scan, a single, credential-free command that audits any running container, docker-compose service, or Kubernetes manifest, not just this image:

# install (Homebrew)
brew install ironsecco/ironclaw/ironclaw

# grade your own fluentd the same way this page was generated
ironctl scan my-fluentd

Badge this image

Maintain fluentd (or run it)? Show its default-config isolation score with a badge that links back to this scorecard:

Container Isolation Score: 63/100 C

[![Container Isolation Score: 63/100 C](https://img.shields.io/badge/container%20isolation-63%2F100%20C-d4a72c)](https://ironsecco.github.io/ironclaw/scores/fluentd/)

The badge is a plain shields.io URL: no server, no build step, nothing to host. It reflects this page's default-configuration grade. Hardened your own deployment? Generate a live badge of your config with ironctl scan --badge-json, or compare every image on the leaderboard.


Part of the Container Isolation Scores directory, default-configuration containment grades for the most-pulled public images.