Sistem Yönetimi
100%

Docker Container İzolasyonu ve Güvenlik En İyi Uygulamaları

Docker container ortamlarında sistem seviyesinde izolasyonun nasıl sağlandığı ve üretim ortamlarında alınması gereken kritik güvenlik önlemleri.

Genel Bakış

Docker, uygulamaları bağımlılıklarıyla birlikte paketleyerek taşınabilirliği artıran harika bir teknolojidir. Ancak, varsayılan yapılandırmalarla bırakıldığında, host işletim sistemi ile paylaşılan çekirdek (kernel) mimarisi nedeniyle ciddi güvenlik riskleri barındırabilir.

Sorun

Container'lar varsayılan olarak root yetkisiyle çalışır. Eğer bir saldırgan container içinde bir zafiyet bulup yetki yükseltirse (container breakout), host makineye ve dolayısıyla diğer tüm container'lara erişim sağlayabilir. Bu durum, çok kullanıcılı veya kritik veri barındıran sunucularda kabul edilemez bir risktir.

Çözüm: Yapılandırma ve Adımlar

Bu riski minimize etmek için container'ların "least privilege" (en az ayrıcalık) prensibiyle çalıştırılması gerekir. Dockerfile içerisinde özel bir kullanıcı tanımlayarak root kullanımını engelleyebilirsiniz.

Adım 1: Non-root Kullanıcı Oluşturma

Dockerfile dosyanıza aşağıdaki satırları ekleyerek uygulamayı yetkisiz bir kullanıcıyla çalıştırın:

RUN adduser -D myuser
USER myuser

Adım 2: Read-Only Dosya Sistemi

Container'ı başlatırken dosya sistemini salt okunur (read-only) yaparak zararlı yazılımların sisteme dosya yazmasını engelleyin:

docker run --read-only -d myimage

Teknik Detaylar

Docker, izolasyonu sağlamak için Linux Kernel özellikleri olan Namespaces ve Cgroups kullanır. Namespaces süreçlerin (PID, NET, MNT) birbirinden izole edilmesini sağlarken, Cgroups CPU ve bellek gibi donanım kaynaklarının sınırlandırılmasını yönetir. Ek bir güvenlik katmanı olarak AppArmor veya SELinux profilleri uygulayarak sistem çağrılarını (syscalls) kısıtlayabilirsiniz.

Sonuç

Container güvenliği, uygulamanın geliştirilme aşamasından (shift-left) başlar. Root yetkilerinin alınması, kaynak sınırlandırmaları ve imaj taramaları (vulnerability scanning) ile Docker ortamları geleneksel sanal makineler kadar güvenli hale getirilebilir.

İlgili Wiki'ler

Tümünü Gör