‫İlki temel olarak biraz okuma yapmaktır.
‫Bu üst kısım gibi, kendinize ne hakkında temel eğitim vermekle
‫ilgili... Docker nasıl
‫çalışır? Docker'da temel güvenlik nedir?
‫Docker konteynerinizi nasıl
‫koruyor? Bu tür şeyler.
‫Temel olarak buradan izleyebileceğiniz bir üretim konuşmam
‫var. Şimdi bunu izlemeyeceğiz.
‫Burada Docker güvenlik kılavuzuna bir bağlantı var.
‫Şimdi, buradaki Docker güvenlik kılavuzunun ilginç yanı, gerçekten
‫Docker güvenliğinin nasıl
‫çalıştığıyla ilgili olmasıdır.
‫Ya da Docker'ın kendisi nasıl çalışıyor?
‫Kursumda çok daha iyi videolar var.
‫Docker'ın temelleri hakkında bir saat süren diğer referans
‫videolarına bağlantılar koydum.
‫Dikkat etmeniz gereken iki ana şey çekirdek isim alanları
‫ve Cgruplarıdır.
‫Ad alanları, bu şeylerin nasıl çalıştığına
‫dair güzel bir genel bakış sunuyorlar.
‫Buradaki özet, Linux'ta Docker'ın
‫mümkün olmasını sağlayan iki ana özellik
‫var. Çekirdek ad alanları, çekirdeğin
‫bir uygulamayı veya bir dizi uygulamayı alıp
‫bunları adlandırmasının bir yoludur.
‫Ad alanı esasen programların görüşlerini,
‫herhangi bir kaynağa erişimlerini ya da gördüklerini
‫sınırlandırır; bu ister ağ, ister bellekteki diğer programlar
‫ya da diskteki dosyalar olsun, program başına bu kapsamı sınırlandırır.
‫Dolayısıyla, her bir program için ayrı ayrı olabilir ve bunları şu anda
‫konteyner olarak biliyoruz. Çünkü ad alanları Docker'a
‫özgü değildir. Docker'ın var olduğundan çok daha
‫uzun süredir var. Aslında on yılı aşkın bir süredir
‫farklı Unix dağıtımlarında bir kavram olarak yer almaktadır.
‫Bunu Solaris Jail'lerde ya da esasen kendi sunucunuzda olduğunuzu
‫düşünmenize neden olan diğer teknoloji
‫türlerinde duymuş olabiliriz, ancak
‫gerçekte, diğer birçok insan ve diğer birçok uygulama
‫ile birlikte bir sunucunun içinde yer alıyordunuz,
‫değil mi? Bunu Linux ve hosting platformlarında
‫çok yaptık.
‫İsim alanları bu özelliktir. Konteynerinize kendi
‫NIC'sini verir. Bu sadece o konteyner için sanal bir NIC'dir.
‫Ona, aşağıdaki dosya sisteminin geri
‫kalanını görmediği kendi dosya alanını verir
‫ve bu konteynerin dışında çalışan diğer programları görmesine
‫izin vermez. Yani, bu erişim ve görüşle ilgili, doğru.
‫Bu isim alanları.
‫Bu sadece kutudan çıktığı gibi çalışır.
‫Docker, sistemdeki diğer her şeyi görmeden bir konteynerin çalışmasını
‫bu şekilde sağlar.
‫Diğer önemli husus ise kontrol gruplarıdır ya da biz
‫bunlara kısaca Cgrupları diyoruz. Kontrol grupları çoğunlukla
‫kaynak kullanımının sınırlandırılmasıyla ilgilidir.
‫Bir konteynere yalnızca 1 GB RAM'e, bir CPU'ya ve bu tür şeylere
‫erişimi olduğunu söyleyebilirsiniz.
‫Ayrıca, bu tür şeyleri ölçebileceğiniz bazı metriklere
‫de izin verir, ancak aslında çoğunlukla konteynerinizi
‫sınırlamakla ilgilidir. Unutmayın, konteynerleriniz varsayılan
‫olarak tüm kaynaklara erişebilir, yani tüm dosya alanını kullanabilir,
‫tüm CPU'ları kullanabilir ve tüm belleği kullanabilir.
‫Bu sadece standart bir konteynerdir, ancak seçenekleri docker run'da
‫veya Swarm'da veya Kubernetes'te ayarlayabilirsiniz.
‫Bu
‫şeylerden herhangi biri kaynakları kontrol etmenize olanak sağlar.
‫Ama varsayılan olarak böyle değil, değil mi? Varsayılan olarak, herhangi bir
‫konteyner her şeyi alır.
‫Üretime geçtiğinizde, bu kesinlikle yapılacaklar listenizde
‫yer almalıdır. Kontrol gruplarının,
‫belirli bir uygulamanın yapmaması gereken her şeyi yapması
‫ve diğer şeylerin çalışamamasına neden olması
‫dışında bir güvenlik özelliği olduğunu
‫söyleyemem, doğru.
‫Bu değil. Bunu doğrudan bir güvenlik olarak görmüyorum.
‫Ben buna güvenlikle yarı ilişkili olarak bakıyorum; birisi
‫uygulamanızın sunucunuzdaki tüm kaynakları tüketmesine
‫izin vererek teknik olarak bir hizmet reddi
‫gerçekleştirebilir. Yani, bilirsiniz, bu tür şeyler.
‫Bunlar temel bilgiler.
‫Temel bilgileri anladıktan sonra, burada
‫farklı güvenlik araçları hakkında birkaç iyi blog
‫makalesi var. Bir sürü alet var,
‫değil mi? Bugün hepsinden bahsetmeyeceğim.
‫Açıkçası, dışarıda pek çok şey var, ancak bunların
‫çoğu karmaşık ve proje gerektiriyor.
‫Bunları uygulamanız ya da satın almanız ve ardından bunlar için sunucular tahsis etmeniz
‫gerekir, değil mi?
‫Denetimle ilgili büyük ürünler veya PCI kredi kartı güvenliği
‫veya devlet yönetmeliği güvenliği gibi belirli
‫kimlik bilgilerini geçtiğinizden emin olmak,
‫bu tür şeyler.