İçeriğe atla
0 XP 0
0/5

Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

8 dk · 55 XP · 5 etkinlik

Dockerfile hataları ve kök çalışma

Bir Dockerfile'da USER yönergesi yoksa uygulama kök olarak çalışır. Çoğu ekip bunu fark etmez, çünkü uygulama zaten çalışıyordur. Fark, bir gün kod çalıştırma açığı çıktığında ortaya çıkar.

Kök olarak çalışan bir süreç konteyner içinde her dosyaya dokunur, paket kurar ve yetenekleri kullanır. Kaçış zinciri de aynı yerden başlar. Kök olmayan bir kullanıcı bu adımların çoğunu baştan kapatır.

Düzeltme birkaç satırdır. Derleme sırasında sayısal kimliği olan bir kullanıcı tanımlarsın ve USER yönergesiyle ona geçersin. Sayısal kimlik yazmak, Kubernetes tarafındaki kök olmama denetimiyle uyumlu çalışır.

FROM node:22-slim AS derleme
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .

FROM gcr.io/distroless/nodejs22-debian12
WORKDIR /app
COPY --from=derleme --chown=10001:10001 /app /app
USER 10001
CMD ["sunucu.js"]
Çok aşamalı derleme, sahiplikli kopyalama ve kök olmayan kullanıcı bir arada.

Bu örnekte iki aşama birlikte çalışır. İlk aşama bağımlılıkları kurar ve derler; ikinci aşama yalnız çalışma zamanı için gerekeni distroless bir tabandan alır. --chown, kopyalanan dosyaların sahipliğini baştan doğru kullanıcıya verir; USER 10001 ise süreci kök olmayan bir kimlikle başlatır.