‫Parolalarım için Docker secrets kullanıyorum, ancak bu
‫sadece konteynerde bir RAM dosyası oluşturuyor.
‫Birisi konteynere girerse, dosyayı tıpkı benim
‫uygulamamda olduğu gibi görebilir.
‫Hem evet hem hayır.
‫Harika. Konuşmaya devam edeceğiz. Bunu yapmanın daha
‫iyi bir yolu var mı? Sırrın içeriğini şifrelemek mi?
‫Ardından uygulamanın içinde bir bilgisayar korsanının çözemeyeceği
‫bir şekilde şifresini çözün.
‫Buradaki gerçek, uygulamanızın
‫sırrını bir yerde tutması gerektiğidir ve bunlar bellekte
‫şifrelenmemiş olacaktır, değil mi?
‫Şifrelenmiş şeylerin şifresini çözdüğünü bildiğim her şey,
‫hafızanın şifresini çözüyor. Eğer bir bilgisayar korsanı konteynerinizde
‫root yetkisine sahipse, o zaman bu şeylere
‫ulaşabilecektir.
‫Eğer yeterince bilgiliyseler, bu şeyleri alabileceklerdir,
‫değil mi?
‫Buradaki ilk adım, uygulamanızı konteyner içinde root
‫olarak çalıştırmamaktır.
‫O zaman, uygulama dışında herhangi bir şeyle
‫uğraşamazlar. Konteynerde tüm belleği okuyabilecek
‫diğer sistem yardımcı programlarını çalıştıramazlar, değil mi?
‫İkinci olarak, gördüğümüz en güvenli
‫yol, kasa ve tek seferlik parolalar gibi bir şeydir;
‫bu parolalar oluşturulur, uygulamanız tarafından
‫kullanılır ve daha sonra atılır ve artık
‫işe yaramaz. Gerçek şu ki çoğu insan
‫buna hazır değil. Çoğu insanın uygulaması bunu kaldıramaz.
‫Biliyorsunuz, başlatılan her uygulama için her beş dakikada bir Twitter
‫API anahtarını döndüremezsiniz, değil mi?
‫Bunun gibi şeyler. Bir sonraki en iyi şey,
‫bu dosyanın diskte kalıcı olarak bulunmasını engellemektir.
‫Bir Kubernetes güvenliği ve
‫Docker güvenliği, bunlar... üzgünüm sırları, Kubernetes sırları
‫ve Swarm sırları, parolaları RAM'deki sahte bir dosyada
‫saklamanın bir yolunu bulmak için şimdiye kadar
‫gördüğüm en iyi yollardan bazıları.
‫Bu
‫izinleri yalnızca uygulamanız tarafından okunabilecek şekilde ayarlayabilirsiniz, değil mi?
‫Yani, birisi bir şekilde farklı bir kullanıcıyla içeri girerse, konteynerde
‫farklı bir kullanıcı olması gerekmez, ancak
‫bunları yalnızca okunabilir olacak şekilde kilitleyebilirsiniz, yalnızca uygulamanız
‫olan kullanıcı tarafından okunabilirler.
‫Bu tür şeyler, değil mi?
‫Yani, gerçekten bu kadar.
‫Daha iyisini gördüğüm tek şey onları hala bellekte saklıyor, hala
‫şifrelenmemiş olarak saklıyor.
‫Sadece onları yerel olarak saklamaz.
‫Bu nedenle, Vault, HashiCorp's Vault veya tek
‫seferlik parola sağlayan başka bir sistem gibi uzak bir API
‫kullanmanız gerekir. Ancak yine de bu tür şeylerin tüm sisteminize
‫yayılması gerekir. Her şeyi sizin tasarlamanız
‫gerekir. Ve bu çok iş demek, değil mi?
‫Oysa Kubernetes ve Swarm'daki sırları kullanarak
‫bu işleri genellikle aynı gün içinde halledebilirsiniz,
‫değil mi? Bunu hemen hemen her uygulama için uygulayabilirsiniz,
‫hatta eski uygulamaların ortam değişkenlerinde bir şeyler gerektirmesi nedeniyle bunları
‫ortam değişkenleri olarak ayarlaması gerekse bile.
‫Böylece, bunları gizli dizilerde tutabilir ve çalışma zamanında,
‫gerekirse bu gizli dizilerin ortam değişkenlerine dökülmesini
‫sağlayabilirsiniz. Ancak, danışmanlık müşterilerimin
‫%99'unun eski uygulamalarla uğraştığını söyleyebilirim.
‫Eski derken aslında konteynerlerden önceki her şeyi
‫kastediyorum, yani çoğu uygulamayı, değil mi?
‫Konteynerler olmadan önce 30 yıl boyunca konteynerler
‫olmadan uygulamalar oluşturduk.
‫Yani, bir sürü normal şeyimiz var.
‫Dolayısıyla, çoğu ekip bir şeyleri konteynerlere nasıl koyacaklarını ve disk üzerinde
‫şifrelenmiş olarak nasıl saklayacaklarını araştırıyor, değil mi?
‫Eğer diskteyseler, şifrelenmişlerdir.
‫Kubernetes ve Swarm bunu yapabilir.
‫Bence gizli dizileri kullanıyorsanız, gördüğüm insanların
‫%99'undan daha iyisiniz demektir çünkü çok az kişi hem orkestrasyon
‫hem de gizli dizileri kullanıyor.
‫Çok, çok küçük bir grup, bir grup insan.
‫Yani, evet, bence oldukça iyisin.