Jenkins ve Azure'da Şifre Güvenliği: İki Ortak Hata
Jenkins ve Azure üzerinde yapılan iki farklı görevde ortaya çıkan sorun aslında aynı kökten geliyor: kimlik bilgileri yanlış yerlere konuluyor ve çoğu zaman çözüm sadece bir ayar değişikliği kadar yakın.
İlk görev Jenkins'te iki işi (job) birbirine bağlamaktan ibaret. Nautilus-app-deployment işi en son kodu /var/www/html dizinine çekiyor, sonra manage-services işi httpd web sunucusunu yeniden başlatıyor. Burada sorun şu: ilk işin içinde sunucu şifresi düz metin olarak shell komutuna yazılmış. Bunu üç kez tekrarladığında, şifre Jenkins loglarında açıkça görülebiliyor. İşleri ayrı tutmak doğru bir karar çünkü dağıtım ve yeniden başlatma farklı başarısızlık senaryoları taşıyor. Ama kimlik bilgilerini loglardan gizlemek için Jenkins'in built-in credential yönetimini kullanmak gerekiyor.
İkinci görev Azure SQL veritabanı oluşturmak. Burada firewall kuralı yanlış ayarlanmış ve sunucu internete açık kalıyor. Admin şifresi tek koruma olarak duruyor. Sorun şu: firewall kuralının notasyonu (örneğin 0.0.0.0/0) görünüşte farklı bir anlamı var gibi gözüküyor, ama aslında tüm internet adreslerine izin veriyor. Doğru yapılandırma sadece belirli IP aralıklarına erişim sınırlamak.
Her iki durumda da çözüm mevcut. Jenkins'te credential masking açmak, Azure'da firewall kuralını daraltmak yeterli. Ancak bu hatalar sık yapıldığından, dağıtım ve veritabanı işlerinde güvenlik kontrol listesine bu iki madde mutlaka eklenmelidir.
0 yorum