Docker, konteynerleştirilmiş uygulamaları yönetmek için popüler bir platformdur. Docker Swarm, birçok Docker host’unun tek bir sistem olarak yönetilmesini sağlayan bir orkestrasyon aracıdır. Swarm içerisinde gizli bilgilerin yönetimi ise, uygulamaların güvenliğini sağlamak amacıyla büyük önem taşımaktadır. Docker Swarm, hassas verilerin yönetiminde kullanıcılara çeşitli olanaklar sunar. Bu yapının nasıl çalıştığı ve Docker gizli yönetiminin nasıl gerçekleştirileceği incelenecektir.
Docker Secrets Nedir?
Docker Secrets, hassas bilgilerin (şifreler, API anahtarları, SSL sertifikaları vb.) güvenli bir şekilde saklanması ve kullanılması amacıyla geliştirilmiş bir mekanizmadır. Bu bilgiler konteynerlerin içinde açık bir şekilde tutulmak yerine şifrelenmiş formatta saklanır. Docker Swarm, kullanıcıların gizli bilgileri oluşturmasına, saklamasına ve bu bilgilere erişimi güvenli bir şekilde yönetmesine olanak tanır.
Docker Secrets Oluşturma
Gizli bilgi oluşturmak için Docker CLI kullanılabilir. Docker secret oluşturmak için “docker secret create” komutu kullanılmalıdır. Bu komut, gizli bilgilerin içeriğinin yer aldığı bir dosya veya standart girdi olarak veri alır. Örnek bir komut şu şekildedir:
“`
echo “my_secret_value” | docker secret create my_secret –
“`
Bu komutla “my_secret” adıyla bir gizli bilgi oluşturulmuş olur.
Gizli Bilgilerin Yönetimi
Oluşturulan gizli bilgileri listelemek için “docker secret ls” komutu kullanılabilir. Bu komut, mevcut tüm gizli bilgileri ve durumlarını gösterir. Belirli bir gizli bilginin detaylarını görüntülemek için “docker secret inspect” komutu kullanılabilir:
“`
docker secret inspect my_secret
“`
Gizli bilgilerin silinmesi gerektiğinde, “docker secret rm” komutu kullanılmalıdır:
“`
docker secret rm my_secret
“`
Bu komut, belirtilen gizli bilgiyi Docker kayıt sisteminden kaldırır.
Docker Service ile Gizli Bilgi Kullanma
Docker secret’lar, yalnızca Docker hizmetleri (services) ile kullanılabilir. Bir hizmet oluşturulurken, gizli bilgilere referans vermek için “docker service create” veya “docker service update” komutu kullanılabilir. Gizli bilgiyi bir hizmette kullanmak için aşağıdaki örnek komut kullanılabilir:
“`
docker service create –name my_service –secret my_secret nginx
“`
Bu komut, “my_service” adında bir Nginx hizmeti oluşturur ve “my_secret” gizli bilgisini bu hizmete ekler. Hizmet çalıştığında, gizli bilgi otomatik olarak “/run/secrets/my_secret” konumuna erişilebilir.
Gizli Bilgilere Erişim
Konteyner içinde gizli bilgilere erişmek için, bu bilgiler standart bir dosya olarak sunulmaktadır. Kontrol edilecek hizmet için bir konteyner çalıştırıldığında, gizli verilere erişim için basit bir dosya okuma işlemi yapılabilir. Aşağıdaki komut, “my_secret” gizli bilgisini okur:
“`
cat /run/secrets/my_secret
“`
Bu komut, gizli bilginin içeriğini konsola yazdırır. Gizli bilgilerin yalnızca ilgili hizmet kullanıcıları tarafından erişilebilir olduğuna dikkat edilmelidir. Docker, gizli bilgileri yalnızca hizmetlerin konteynerlerinin yaşam döngüleri boyunca sağlar.
Gizli Bilgilerin Güvenliği
Docker secrets kullanımı, gizli bilgilerin güvenliğini artırmak için önemli bir avantaj sunar. Bu bilgiler, Docker Swarm’ta şifrelenmiş olarak saklanmakta ve yalnızca yetkilendirilmiş hizmetlerin erişimi ile sınırlıdır. Herhangi bir container durduğunda, ilgili gizli bilgilere erişim de durdurulur. Bu da, uzun süreli açık gizli bilgilerin tutulma riskini azaltır.
Docker secrets, yönetim açısından da kolaylık sağlar. Gizli bilgilerin güncellenmesi gerektiğinde, kullanıcılar yeni bir gizli bilgi oluşturup mevcut hizmete ekleyebilirler. Bu işlem, kesinti olmadan yapılabilir. Örneğin, “docker secret update” komutu ile yeni bir gizli bilgi eklenebilir.
Sonuç
Docker Swarm içinde gizli yönetimi, kullanıcıların hassas bilgilerini güvenli bir şekilde yönetmesine olanak tanır. Gizli bilgilerin oluşturulması, yönetilmesi ve kullanılması süreçleri, Docker CLI komutları aracılığıyla gerçekleştirilmektedir. Gizli bilgilerin şifrelenmiş olarak saklanması ve yalnızca ilgili hizmetlere erişime izin verilmesi, gizli yönetimin güvenliğini artırır. Docker secrets, konteynerleştirilmiş uygulamaların güvenliğini sağlamak için kritik bir mekanizma işlevi görmektedir. Docker Swarm ile geliştirilen uygulamalarda, güvenli bir ortam yaratmak için bu özellik mutlaka dikkate alınmalıdır.