0Pricing
Docker & DevOps Fundamentals · Ders

Dockerfile Güvenliği için En İyi Uygulamalar

Güvenlik açıklarını ve saldırı yüzeyini azaltmak için Dockerfile’larınız içinde güvenlik önlemleri uygulayın.

Dockerfile Güvenliği için En İyi Uygulamalar, CoddyKit'te ücretsiz bir Docker & DevOps Fundamentals dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Docker & DevOps Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.

Dockerfile'larınızı Güvence Altına Alın!

Dockerfile Güvenliği için En İyi Uygulamalar dersine hoş geldiniz! Güvenli bir uygulama, güvenli bir temelle başlar.

Dockerfile'ınız yalnızca bir derleme betiği değildir; uygulamanızın güvenliği için bir taslaktır. Buradaki kötü uygulamalar önemli güvenlik açıklarına yol açabilir.

Bu derste Docker görüntülerinizi güçlendirmeye ve olası saldırı yüzeylerini en aza indirmeye yönelik temel stratejileri inceleyeceğiz.

Dockerfile Güvenliği için En İyi Uygulamalar — resim 1

Güvenilir Temel Görüntülerle Başlayın

FROM yönergesi ilk savunma hattınızdır. Her zaman Docker Hub gibi güvenilir kaynaklardan alınan, resmî ve iyi bakımı yapılan temel görüntüleri seçin.

  • Resmî Görüntüler: Bunlar doğrulanır ve düzenli olarak güncellenir.
  • Belirli Etiketler: latest kullanmaktan kaçının. Öngörülebilirlik ve kararlılık için belirli sürüm etiketlerini (ör. alpine:3.18) kullanın.
  • Minimal Görüntüler: 'slim' veya 'alpine' sürümlerini tercih edin. Bunlar daha az paket içerir; dolayısıyla olası güvenlik açıkları da daha azdır.

Güvenli Bir Temel Görüntü Seçme

Minimal ve belirli bir temel görüntü seçmenin güvenliği nasıl artırabileceğini görün. Bu seçim, istismar edilebilecek paket ve araçların sayısını azaltır.

FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest

# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.

Görüntü Boyutunu Küçültün

Görüntünüze eklediğiniz her dosya, paket veya bağımlılık, onun 'saldırı yüzeyini' artırır. Mevcut yazılım ne kadar az olursa olası güvenlik açıkları da o kadar az olur.

Uygulamanızın çalışması için kesinlikle gerekli olanları yükleyin. Artık gerek duyulmadığında derleme araçlarını ve geçici dosyaları kaldırın.

Yüklemeden Sonra Temizleyin

Paketleri yüklerken paket yöneticisi önbelleklerini her zaman temizleyin ve gereksiz dosyaları kaldırın. Bu, son görüntünün boyutunu küçültür ve olası bilgi sızıntılarını ortadan kaldırır.

Ubuntu gibi Debian tabanlı görüntüler için aynı RUN yönergesinde apt-get clean komutunu kullanın ve /var/lib/apt/lists/* yolunu kaldırın.

FROM debian:stable-slim

RUN apt-get update && \
    apt-get install -y --no-install-recommends \ 
    curl \ 
    git && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# All in one RUN command to leverage Docker's caching and reduce layers.

Root Olarak Çalıştırmayın!

Varsayılan olarak Docker kapsayıcısındaki işlemler root kullanıcısı olarak çalışır. Bu, ciddi bir güvenlik riskidir!

Bir saldırgan kapsayıcınızın denetimini ele geçirirse root ayrıcalıklarına sahip olur ve bu ayrıcalıklar kapsayıcıdan kaçmasına veya ana bilgisayar sistemini tehlikeye atmasına olanak tanıyabilir.

Her zaman özel, root olmayan bir kullanıcı oluşturun ve USER yönergesini kullanarak bu kullanıcıya geçin.

Root Olmayan Kullanıcı Ayarlama

Yeni bir kullanıcı oluşturup Docker'a sonraki komutları bu kullanıcı olarak çalıştırmasını şu şekilde bildirebilirsiniz. Bu, kapsayıcı ele geçirilirse olası zararı önemli ölçüde sınırlar.

FROM alpine:3.18

# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

# Switch to the non-root user
USER appuser

CMD ["echo", "Hello from non-root user!"]

Dockerfile'da Gizli Bilgi Bulundurmayın!

API anahtarları, veritabanı parolaları veya özel anahtarlar gibi hassas bilgileri hiçbir zaman doğrudan Dockerfile'ınıza sabit olarak yazmayın veya görüntünüze göndermeyin.

Bu gizli bilgiler, daha sonraki bir katmanda silseniz bile görüntüye erişimi olan herkes tarafından kolayca çıkarılabilir.

Bunun yerine çalışma zamanında Docker Secrets, ortam değişkenleri (hassas olmayan veriler için) veya Kubernetes Secrets gibi güvenli yöntemleri kullanın.

ADD Yerine COPY'yi Tercih Edin

Hem COPY hem de ADD yönergeleri dosyaları görüntünüze kopyalar; ancak güvenlik ve açıklık açısından genellikle COPY tercih edilir.

  • COPY: Yalnızca yerel dosya veya dizinleri kopyalar. Basit ve öngörülebilirdir.
  • ADD: Dosyaları URL'lerden alabilir ve sıkıştırılmış arşivleri (tar, gzip) otomatik olarak açabilir. Bu ek işlevler, güvenilmeyen içerik indirme veya kötü amaçlı arşivleri açma gibi olası güvenlik riskleri oluşturur.

Gelişmiş özelliklerine özellikle ihtiyaç duymadığınız ve risklerini anlamadığınız sürece COPY kullanın.

Güvenlik Denetimi!

Aşağıdaki Dockerfile uygulamalarından hangisi saldırı yüzeyini azaltmak ve olası güvenlik açıklarını en aza indirmek için kritik bir adımdır?

Güvenli Dockerfile Yolculuğunuz

Harika iş! Güvenli kapsayıcılaştırmanın temelini oluşturan önemli Dockerfile güvenlik uygulamalarını öğrendiniz:

  • Güvenilir ve Minimal Temel Görüntülerle Başlayın: Resmî, belirli sürümlü ve yalın görüntüler kullanın.
  • Görüntü Boyutunu Küçültün: Yalnızca gerekenleri yükleyin ve yüklemelerden sonra temizlik yapın.
  • Root Olmayan Kullanıcı Olarak Çalıştırın: Olası ihlallerin etkisini azaltmak için ayrıcalıkları sınırlayın.
  • Gizli Bilgilerden Kaçının: Hassas verileri Dockerfile'ınıza hiçbir zaman sabit olarak yazmayın.
  • `COPY` Yerine `ADD` Kullanmayı Tercih Edin: Daha öngörülebilir ve güvenli olan `COPY` yönergesini tercih edin.

Bu uygulamaları hayata geçirerek kapsayıcılaştırılmış uygulamalarınızın güvenlik duruşunu önemli ölçüde güçlendirirsiniz!

Sıkça Sorulan Sorular

“Dockerfile Güvenliği için En İyi Uygulamalar” dersi ücretsiz mi?

Evet — “Dockerfile Güvenliği için En İyi Uygulamalar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Docker & DevOps Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.

“Dockerfile Güvenliği için En İyi Uygulamalar” dersinde ne öğreneceğim?

Güvenlik açıklarını ve saldırı yüzeyini azaltmak için Dockerfile’larınız içinde güvenlik önlemleri uygulayın. Docker & DevOps Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Docker & DevOps Fundamentals öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Docker & DevOps Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dockerfile Güvenliği için En İyi Uygulamalar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Docker & DevOps Fundamentals dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Docker & DevOps Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Verimlilik için Çok Aşamalı Derlemeler
  2. Derleme Önbelleğinden Yararlanma
  3. Dockerfile Güvenliği için En İyi Uygulamalar
  4. Slim ve Distroless Tabanlarla İmaj Boyutunu Küçültme
← Docker & DevOps Fundamentals Sayfasına Dön