İçeriğe geç

Dockerfile'a yazılmış gizli bilgi (ARCH10003)

Anahtar config.docker.secret-in-image · Önem error · Kategori security · CWE CWE-798

ENV ya da ARG’a yazılan değer imajın katmanlarında ve derleme geçmişinde kalır: satır Dockerfile’dan silindikten çok sonra bile imajı çekebilen herkes onu okuyabilir. Kural, adı gizli bir kelimeyle (password, secret, token, API key, client secret, connection string) biten ve değeri yazılmış girdilere bakar.

FROM node:22.11-alpine
ENV DATABASE_PASSWORD=change-me-123
COPY . .
USER node
CMD ["node", "server.js"]
FROM node:22.11-alpine
# The password is mounted at run time (docker secret / Kubernetes Secret).
ENV DATABASE_PASSWORD_FILE=/run/secrets/db_password
COPY . .
USER node
CMD ["node", "server.js"]

Değeri çalışma anında (konteynerin ortam değişkeni, orkestratör secret’ı) ya da derleme secret’ı olarak (RUN --mount=type=secret) verin.

  • Bir başvuru ($VAR, ${VAR}) ve boş değer.
  • Gizli bilgiyi yalnızca anan adlar: PASSWORD_FILE, TOKEN_URL, CACHE_KEY.