Kron PAM ile Uygulamalar Arası Parola Yönetimini Kolaylaştır

Kron PAM ile Uygulamalar Arası Parola Yönetimini Kolaylaştır

Mar 12, 2025 / Furkan KIRMACI

Yazılım geliştirmede sabit kodlanmış (hardcoded) kimlik bilgileri önemli bir güvenlik riski oluşturur. API anahtarları, veritabanı kimlik bilgileri veya şifreleme anahtarları gibi uygulama sırları kaynak kodda veya yapılandırma dosyalarında saklandığında, bunlar sürüm kontrol sistemleri, içeriden gelen tehditler ve yetkisiz erişim yoluyla ifşa olmaya açık hale gelir. Saldırganlar, sızdırılmış kimlik bilgilerini bulmak için açık havuzları (public repositories) aktif olarak tarar ve erişim kontrolleri yetersizse özel havuzlar (private repositories) bile güvende değildir.

Gizli yönetimi, kimlik bilgilerini merkezi bir sistemde güvenli bir şekilde tutarak ve çalıştırma anında (runtime) uygulamalara dinamik olarak enjekte ederek bu riskleri azaltır. Bu sayede sırlar şifreli, erişim kontrollü ve denetlenebilir kalır, saldırı yüzeyi azaltılır ve operasyonel verimlilik korunur.

Gizli yönetimi, aşağıdaki alanlarda hayati öneme sahiptir:

  • API Tabanlı Uygulamalar: Harici veya dahili API’lerle iletişim kuran hizmetlerin kimlik doğrulaması gereklidir ve API anahtarlarının güvenli bir şekilde saklanması kritik önem taşır.
  • Konteynerleştirilmiş Uygulamalar: OpenShift ve Kubernetes ortamlarında, sırlar görüntü dosyalarına (container images) gömülmek yerine dinamik olarak enjekte edilmelidir.
  • CI/CD Araçları: Derleme (build) ve dağıtım süreçleri genellikle kimlik bilgilerine ihtiyaç duyar ve bu bilgilerin komut dosyalarında saklanması yerine merkezi bir şekilde yönetilmesi gerekir.
  • Kod Olarak Altyapı (IaC): Terraform, Ansible ve diğer otomasyon araçları hassas kimlik bilgilerini sıklıkla kullanır ve bu bilgilerin çalışma anında güvenli bir şekilde alınması gerekir.
  • Mikro Hizmetler ve Servis Mesh’leri: Kümelenmiş (clustered) hizmetler arasındaki iletişimde, yetkisiz erişimi önlemek için kimlik doğrulama belirteçleri (authentication tokens) güvenli bir şekilde alınmalıdır.

Kron PAM Uygulamalar Arası Parola Yönetimi Sorununu Nasıl Çözer?

Kron PAM, Java, .NET, Python ve C++ için sağlanan SDK’ları ile güvenli bir gizli yönetim çözümü sunar. Uygulama kodunda kimlik bilgilerini açığa çıkarmadan kimlik doğrulama tabanlı erişimi mümkün kılar. Aşağıda, farklı ortamlar için Kron PAM Gizli Yönetimi entegrasyon yöntemleri açıklanmaktadır.

Authentication-Based Secret Retrieval

  • Java SDK: Kron PAM Java SDK’sını kullanan uygulamalar, Kron PAM AAPM Aracısı (Agent) üzerinden kimlik doğrulama yaparak API çağrıları ile parolaları, anahtarları ve sertifikaları alabilir.

 jawa-sdk

  • .NET SDK: .NET SDK’sı, benzer şekilde güvenli parolaları, anahtarları ve sertifikaları alma yetenekleri sunar.

 netsdk

  • Python SDK: Python uygulamaları, SDK’yı kullanarak kimlik bilgilerini güvenli bir şekilde alabilir.

 phyton-sdk

  • C++ SDK: C++ SDK, yerel (native) uygulamalar için sorunsuz entegrasyon sağlar.

 C++SDK

OpenShift & Kubernetes Ortamlarında Sabit Kodlanmış Kimlik Bilgilerinin Değiştirilmesi

Kron PAM, Kubernetes ve OpenShift ortamlarında sabit kodlanmış kimlik bilgilerini iki farklı yöntemle ortadan kaldırır: Parola Hizmeti (Password Service) ve Sidecar Konteyner Yöntemi (Sidecar Container).

  1. Parola Hizmeti Yöntemi
  • Kron PAM Parola Hizmeti, dinamik ve isteğe bağlı kimlik bilgisi alımı sağlar.
  • Uygulamalar, kimlik bilgilerini doğrudan Parola Hizmeti’nden güvenli API çağrılarıyla talep eder.
  • Bu yöntem, sırların çalışma anında güvenli bir şekilde alınmasını sağlar ve hiçbir zaman uygulama içinde statik olarak saklanmaz.
  1. Sidecar Container Method
  • Uygulamalar Arası Parola Yönetimi Aracı (AAPM Agent) ve Sidecar Konteyner, aynı pod içerisinde ayrı konteynerler olarak dağıtılır.
  • AAPM Aracı, Kron PAM’den parolaları, anahtarları ve sertifikaları alır.
  • AAPM Aracı ve Sidecar Konteyner, güvenli bir kanal üzerinden iletişim kurarak sırları güvenli bir şekilde iletir.
  • Sidecar Konteyner, alınan sırları uygulama ortamına enjekte eder.
  • Uygulamalar, kimlik bilgilerine ortam değişkenleri (environment variables) veya bağlanan dosyalar (volume-mounted files) aracılığıyla erişir.

AAPM Aracısı ve Sidecar Konteyner Konfigürasyonu

  • AAPM Aracı ve Sidecar Konteyner’i, Kubernetes pod’una uygulama ile birlikte dağıtın.
  • Parola, anahtar veya sertifika alımı için gerekli bağlı dosyaları (volume mounts) ve ortam değişkenlerini tanımlayın.
  • AAPM Aracısı ile Sidecar Konteyner arasındaki güvenli kanal iletişimini sağlayın.

 AAPM-Aracisi

Otomatik Parola Değişimi (Secret Rotation)

  • Kron PAM, servis hesapları için otomatik parola değişim döngüsü desteği sunar.
  • AAPM Aracı, güncellenmiş kimlik bilgilerini alır ve güvenli bir kanal üzerinden Sidecar Konteyner’e iletir.
  • Uygulamalar, yeniden başlatmaya gerek kalmadan güncellenmiş sırları alır.

Sonuç

Sabit kodlanmış kimlik bilgileri, saldırganlar tarafından istismar edilebilecek güvenlik açıkları oluşturur. Kron PAM Uygulamalar Arası Parola Yönetimi, Java, .NET, Python ve C++ SDK’larını kullanan API tabanlı uygulamalar için güvenli, kimlik doğrulama tabanlı bir çözüm sunar. Kubernetes ve OpenShift ortamlarında, kuruluşlar doğrudan API tabanlı alma için Parola Hizmeti’ni veya dinamik parola enjeksiyonu için Sidecar Konteyner Yöntemi’ni tercih edebilir. Kron PAM’in entegrasyonu ile kuruluşların güvenliği artarken regülasyonlara uyumluluğu sağlanır, dinamik ve bulut tabanlı ortamlarda uygulamalar arası parola yönetimini kolaylaştırabilir.

*Bu blog yazısı Furkan KIRMACI tarafından hazırlanmıştır. Furkan, Kron'da Senior Product Owner olarak görev almaktadır.

Öne Çıkanlar

Diğer Bloglar