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.
Hatalı
Bölüm başlığı “Hatalı”FROM node:22.11-alpineENV DATABASE_PASSWORD=change-me-123COPY . .USER nodeCMD ["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_passwordCOPY . .USER nodeCMD ["node", "server.js"]Düzeltme
Bölüm başlığı “Düzeltme”Değeri çalışma anında (konteynerin ortam değişkeni, orkestratör secret’ı) ya da derleme secret’ı olarak (RUN --mount=type=secret) verin.
İşaretlenmeyenler
Bölüm başlığı “İşaretlenmeyenler”- Bir başvuru (
$VAR,${VAR}) ve boş değer. - Gizli bilgiyi yalnızca anan adlar:
PASSWORD_FILE,TOKEN_URL,CACHE_KEY.