Çalışma Zamanında Kapsayıcı Güvenliği
Kullanıcı ayrıcalıkları ve kaynak sınırları da dahil olmak üzere kapsayıcıları çalışma zamanında güvence altına almak için en iyi uygulamaları hayata geçirin.
Çalışma Zamanında Kapsayıcı Güvenliği, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. 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, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Çalışma Zamanı Güvenliğinin Temelleri
Çalışma Zamanı Kapsayıcı Güvenliği dersine hoş geldiniz! Güvenli imajlar oluşturmak çok önemlidir; peki kapsayıcınız çalışmaya başladıktan sonra ne olur?
Bu derste, uygulamalarınızı etkin oldukları sırada korumaya yönelik en iyi uygulamalara odaklanacağız ve güvenlik açıklarından veya saldırılardan kaynaklanabilecek olası zararı sınırlayacağız.

En Az Ayrıcalık İlkesi
Temel bir güvenlik kavramı En Az Ayrıcalık İlkesi'dir. Bu ilke, bir varlığa (kapsayıcı veya kullanıcı gibi) görevini yerine getirmesi için kesinlikle gerekli izinlerin verilmesini, daha fazlasının verilmemesini ifade eder.
Bu ilkenin uygulanması saldırı yüzeyini azaltır ve bir kapsayıcı ele geçirilirse etkisini sınırlar.
Root Olarak Çalıştırmaktan Kaçının
Varsayılan olarak bir Docker kapsayıcısındaki işlemler, kapsayıcı içinde tam yönetici ayrıcalıklarına sahip olan root kullanıcısı olarak çalışır.
- Risk: Saldırgan root ayrıcalıklarına sahip bir kapsayıcının denetimini ele geçirirse Docker arka plan hizmetindeki veya çekirdekteki güvenlik açıklarından yararlanarak ana sistemde root erişimi elde edebilir.
- En İyi Uygulama: Kapsayıcı işlemlerinizi her zaman root olmayan bir kullanıcı olarak çalıştırın.
Root Olmayan Kullanıcı Olarak Çalıştırma
docker run ile birlikte --user seçeneğini kullanarak kapsayıcı işleminiz için ada veya UID'ye göre bir kullanıcı belirtebilirsiniz. Burada id komutunu bir Alpine kapsayıcısında 1000 kullanıcısı olarak çalıştırıyoruz.
1000 kullanıcısı mevcut değilse Docker yine de bu UID'yi kullanır.
docker run --rm -it --user 1000 alpine idLinux Yeteneklerini Anlama
Geleneksel Linux sistemlerinde root kullanıcısı ya hep ya hiç yaklaşımına sahiptir. Linux Yetenekleri, root'un güçlü ayrıcalıklarını daha küçük ve birbirinden bağımsız birimlere ayırır.
Bu sayede bir işlem, tam root yetkisine sahip olmadan yalnızca ihtiyaç duyduğu belirli root benzeri yetkilere (ör. düşük numaralı bağlantı noktalarına bağlanma veya ham ağ erişimi) sahip olabilir.
Gereksiz Yetenekleri Kaldırma
Docker kapsayıcıları varsayılan olarak geniş bir yetenek kümesiyle çalışır. Bir kapsayıcının yapabileceklerini daha da kısıtlamak için gereksiz yetenekleri --cap-drop kullanarak kaldırabilirsiniz.
Burada NET_RAW yeteneğini kaldırıyoruz. NET_RAW gerektiren ping komutu başarısız olacak ve kısıtlamayı gösterecektir.
docker run --rm -it --cap-drop=NET_RAW alpine ping -c 1 localhost || echo "Ping failed: NET_RAW capability dropped!"Kapsayıcı Kaynaklarını Denetleme
Kapsayıcılar ana makinenin çekirdeğini ve kaynaklarını paylaşır. Bir kapsayıcının denetlenmeyen kaynak kullanımı, diğer kapsayıcılar ve hatta ana makinenin kendisi için Hizmet Engelleme (DoS) durumuna yol açabilir.
- CPU Sınırları: Bir kapsayıcının CPU döngülerini tekeline almasını önler.
- Bellek Sınırları: Bir kapsayıcının kullanılabilir RAM'in tamamını tüketmesini durdurarak sistem kararsızlığını önler.
Kaynak Sınırlarını Uygulama
CPU ve bellek sınırlarını doğrudan docker run ile belirleyebilirsiniz. Bu örnekte bellek 128 MB ile, CPU kullanımı ise 0,5 (tek CPU çekirdeğinin yarısı) ile sınırlandırılır.
Bu, kapsayıcınızın düzgün çalışmasını ve diğer işlemlerin kaynaklardan mahrum kalmamasını sağlar.
docker run --rm -it --memory="128m" --cpus="0.5" alpine sh -c "echo 'Container running with limited resources.' && free -h"Salt Okunur Dosya Sistemleri
Birçok uygulamanın başlangıçtan sonra kök dosya sistemine yazması gerekmez. Dosya sistemini salt okunur hâle getirerek önemli güvenlik avantajları elde edersiniz:
- Değiştirmeyi Önler: Saldırgan mevcut dosyaları değiştiremez veya yeni kötü amaçlı dosyalar yazamaz.
- Kalıcılığı Sınırlar: Yapılan tüm değişiklikler geçicidir ve kapsayıcı yeniden başlatıldığında kaybolur.
- Değişmezliği Zorunlu Kılar: Kapsayıcıların geçici olduğu ve yapılandırmanın dışarıda tutulduğu bir tasarımı teşvik eder.
Salt Okunur Kapsayıcıları Dağıtma
Bir kapsayıcı çalıştırırken --read-only seçeneğini kullanın. Kapsayıcının dosya sistemine (açıkça bağlanan birimlerin dışına) yazma girişimleri başarısız olur.
Bu salt okunur kapsayıcıda bir dosya oluşturmayı deneyin:
docker run --rm -it --read-only alpine sh -c "touch /test.txt || echo 'Error: Cannot write to read-only filesystem!'"Çalışma Zamanı Güvenlik Denetimi
Aşağıdakilerden hangileri, kapsayıcıların çalışma zamanında güvenliğini sağlamak için iyi uygulamalardır?
Çalışma Zamanı Güvenliği Özeti
Harika iş! Kapsayıcılar çalışırken güvenliği nasıl artıracağınızı öğrendiniz:
- En Az Ayrıcalık: Yalnızca gerekli izinleri verin.
- Root Olmayan Kullanıcılar: İşlemleri
rootolarak çalıştırmaktan kaçının. - Yetenekler: Gereksiz Linux yeteneklerini kaldırın.
- Kaynak Sınırları: CPU ve bellek kullanımını denetleyin.
- Salt Okunur: Yazma işlemlerini önlemek için dosya sistemlerini değişmez hâle getirin.
Bu uygulamalar saldırı yüzeyini ve olası ele geçirmelerin etkisini önemli ölçüde azaltır. Öğrenmeye devam edin!
Sıkça Sorulan Sorular
“Çalışma Zamanında Kapsayıcı Güvenliği” dersi ücretsiz mi?
Evet — “Çalışma Zamanında Kapsayıcı Güvenliği” 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 DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Çalışma Zamanında Kapsayıcı Güvenliği” dersinde ne öğreneceğim?
Kullanıcı ayrıcalıkları ve kaynak sınırları da dahil olmak üzere kapsayıcıları çalışma zamanında güvence altına almak için en iyi uygulamaları hayata geçirin. DevOps Bootcamp 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.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, 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 2. dersidir.
“Çalışma Zamanında Kapsayıcı Güvenliği” 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 DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp 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
- Kapsayıcı İmajı Güvenlik Taraması
- Çalışma Zamanında Kapsayıcı Güvenliği
- Gizli Bilgi Yönetimi ve RBAC
- Ağ İlkeleri ve En Az Ayrıcalıklı Ağ İletişimi