Sunucularda Gizli Bilgi Yönetimi: Vault ve Şifreleme Rehberi

Sunucularda Gizli Bilgi Yönetimi: Vault ve Şifreleme Rehberi - Corelux
19 Nis 2026
Paylaş:

Sunucularda Gizli Bilgi Yönetimi: Vault, Şifreleme ve En İyi Uygulamalar

Son Güncelleme: Nisan 2026

Gizli bilgi yönetimi (secrets management), sunucu ve uygulama güvenliğinin kritik bir parçasıdır. Bu rehberde Vault, Ansible Vault, GPG ve KMS gibi yaklaşımları; saklama, erişim kontrolü, döngüsel anahtar yenileme (rotation) ve pratik uygulama senaryoları ile ele alacağız.

İçindekiler

Neden Gizli Bilgi Yönetimi Önemli?

Sunucularda kullanılan API anahtarları, veritabanı parolaları, TLS özel anahtarları gibi veriler kötü ellere geçtiğinde sistem bütünlüğü, veri gizliliği ve hizmet sürekliliği tehlikeye girer. İnsan hatası, kaynak kod deposuna yanlışlıkla anahtar eklenmesi veya sunucu sızması gibi olaylar yaygındır; bu yüzden merkezi, denetlenebilir ve otomatik anahtar yönetimi gereklidir.

Temel Kavramlar

  • Secret: Erişimi kısıtlanmış gizli bilgi (ör. API anahtarı, parola).
  • Encryption (Şifreleme): Verinin gizliliğini sağlamak için uygulanan matematiksel dönüşüm.
  • Hashing (Özetleme): Geri döndürülemez sabit uzunlukta özet üretme (parola doğrulama için).
  • Rotation (Anahtar Yenileme): Anahtarların belirli aralıklarla değiştirilmesi.
  • Access Control (Erişim Kontrolü): Kimin hangi secret'a erişebileceğini belirleyen politika.
  • Audit (Denetim): Erişim kayıtları ve değişiklik izleri.

Secrets Saklama Yöntemleri

1. Dosya Tabanlı (Env / Konfig Dosyaları)

.env veya düz konfigürasyon dosyalarında secrets saklamak en basit yöntemdir fakat risklidir. Bu yöntem genelde şu dezavantajlara sahiptir:

  • İzlenebilirlik Eksikliği: Değişikliklerin kimin tarafından yapıldığı belirsiz olabilir.
  • Repo Sızıntısı: Hatalı commit ile Git deposuna gizli veri gönderilebilir.

Öneri: .env dosyalarını dağıtımdan ayrı tutun ve .gitignore ile engelleyin. Ayrıca dosya içeriğini disk üzerinde AES ile şifreleyin, mümkünse merkezi bir çözüm kullanın.

2. Ansible Vault

Ansible Vault, konfigürasyon ve playbook içinde secrets saklamak için uygundur. Küçük ekipler ve yürütme zamanlı (runtime) ihtiyaçlar için pratiktir.

ansible-vault encrypt vars/secret.yml
ansible-vault view vars/secret.yml
ansible-vault edit vars/secret.yml
  • Avantaj: Kolay kullanım, sürüm kontrolü ile entegrasyon.
  • Dezavantaj: Paylaşılan parola / anahtar yönetimi zordur, audit sınırlı.

3. HashiCorp Vault (Önerilen Kurumsal Yaklaşım)

HashiCorp Vault, dinamik secrets, KMS benzeri işlevler, güçlü erişim politikaları ve audit yetenekleri sunar. Özellikle dağıtık sistemlerde, Kubernetes veya birden fazla sunucu ortamında ölçeklenebilir bir çözümdür.

vault server -config=/etc/vault/config.hcl
vault login 
vault kv put secret/db password="Sifre123!"
vault kv get secret/db
  • Avantaj: Dinamik secret oluşturma, rol tabanlı erişim, audit ve şifreleme anahtar yönetimi.
  • Dezavantaj: Kendi yönetim katmanı gerektirir (yüksek erişilebilirlik, yedekleme, güvenli raft/consul backend).

4. Bulut KMS (Key Management Service)

AWS KMS, Google KMS veya Azure Key Vault gibi hizmetler, anahtar yönetimi ve şifreleme operasyonlarını bulutta sunar. Sunucu tarafında veriyi şifrelemek için kullanılabilir.

  • Avantaj: Yüksek erişilebilirlik ve yönetilen hizmetlerin sağladığı SLA.
  • Dezavantaj: Bulut bağımlılığı, maliyet ve ağ bağımlılığı.

Hashing ve Şifreleme (Teknik Detaylar)

Hashing ve şifreleme farklı amaçlar taşır. Parola doğrulama için bcrypt/scrypt/argon2 gibi fonksiyonlar kullanılırken; veriyi geri döndürülebilir bir şekilde korumak için AES gibi simetrik şifreleme tercih edilir.

# OpenSSL ile AES-256-CBC şifreleme örneği
echo "gizli-veri" | openssl enc -aes-256-cbc -salt -pass pass:Parola123

Sunucuda saklanan anahtarların korunması için donanım destekli HSM (Hardware Security Module) veya bulut KMS tercih edilmelidir. Ayrıca anahtarın yalnızca ihtiyaç duyulan süre (least privilege) kadar erişilebilir olması önemlidir.

Araç Karşılaştırması

Özellik HashiCorp Vault Ansible Vault Env Dosyaları Bulut KMS
Dinamik Secrets Evet Hayır Hayır Sınırlı (örn. KMS+IAM)
Audit Evet Sınırlı Hayır Evet
Yönetilen Hizmet Kendi kurulumu gerekebilir / managed seçenekler var Yerel Yerel Evet
Ölçeklenebilirlik Yüksek Orta Düşük Yüksek

Pratik Uygulama Örnekleri

1. Vault ile Dinamik Veritabanı Parolası

Vault, veritabanı için geçici kullanıcılar yaratabilir. Bu sayede ele geçirilen credential süresi kısıtlı olur.

# Database Secrets Engine enable
vault secrets enable database

# DB rolü oluşturma (örnek MySQL)
vault write database/config/my-mysql \
  plugin_name=mysql-database-plugin \
  connection_url="{{username}}:{{password}}@tcp(127.0.0.1:3306)/"

vault write database/roles/my-role \
  db_name=my-mysql \
  creation_statements="CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}'; GRANT SELECT ON mydb.* TO '{{name}}'@'%';" \
  default_ttl="1h" max_ttl="24h"

# Token ile dinamik kullanıcı alma
vault read database/creds/my-role

2. Ansible Vault ile Secret Dağıtımı

CI/CD pipeline içinde Ansible kullanıyorsanız, playbook içinde ansible-vault ile şifrelenmiş değişkenleri çağırabilirsiniz.

- hosts: web
  vars_files:
    - vars/secret.yml
  tasks:
    - name: Configure app
      template:
        src: templates/app.conf.j2
        dest: /etc/app.conf

3. GPG ile Dosya Şifreleme (Basit Ops)

gpg --symmetric --cipher-algo AES256 secrets.yml
gpg --decrypt secrets.yml.gpg > secrets.yml

GPG, tek kişilik veya küçük ekip operasyonlarında pratiktir, ancak merkezi politika ve audit sağlamak zordur.

CI/CD ve Deploy Süreçleri

Secrets yönetimini CI/CD boru hattına entegre ederken şu prensiplere dikkat edin:

  • Least Privilege: Pipeline adımlarına sadece ihtiyaç duydukları secret erişimini verin.
  • Short-lived Credentials: Deploy zamanı için geçici token/role üretin.
  • Audit: Pipeline içindeki secret erişimlerini kayıt altına alın.

Örnek: GitHub Actions kullanıyorsanız, secrets'ı GitHub Secrets yerine Vault veya bulut KMS ile birleştirerek kasıtlı/yanlış kullanım riskini azaltın.

Sıkça Sorulan Sorular

Vault kurmak zor mu?

Kurulum temel seviyede basittir fakat yüksek erişilebilirlik (HA), yedekleme ve güvenli raft/consul backend kurulumları için planlama gerekir. Küçük kurulumlar tek node ile başlayabilir, ancak üretimde HA önerilir.

Ansible Vault ile Vault arasındaki temel fark nedir?

Ansible Vault statik dosya şifreleme sağlar; HashiCorp Vault ise dinamik secrets, politika, audit ve token tabanlı erişim sunar. Kurumsal ölçek için Vault daha uygundur.

Env dosyaları tamamen yasak mı?

Hayır; küçük projelerde pratik olabilir. Ancak üretim ortamında env dosyalarını versiyon kontrolünden uzak tutun ve mümkünse disk üzerinde şifreleme veya merkezi secrets manager kullanın.

Anahtar yenileme (rotation) nasıl planlanmalı?

Otomatik rotation planı oluşturun: kısa yaşam süresi (örn. 1 saat – 30 gün) ve acil durum (compromise) senaryoları için manuel tetikleme yeteneği sağlayın. Dinamik secrets kullanan sistemlerde rotation çoğu zaman otomatik gerçekleşir.

KMS kullanırken gizlilik sorunları olur mu?

Bulut sağlayıcısına güveniyorsanız KMS güvenlidir, ancak vendor lock-in ve ağ bağımlılığı gibi riskler vardır. Hibrid çözümler de değerlendirilebilir.

Sonuç

Günümüzün dağıtık uygulama mimarilerinde gizli bilgi yönetimi yalnızca şifreleme değil; erişim kontrolü, audit ve otomasyon gerektirir. Küçük projeler için Ansible Vault veya GPG yeterli olabilirken, kurumsal ve çok sunuculu ortamlarda HashiCorp Vault veya bulut KMS çözümleri öncelikli tercih olmalıdır. Ayrıca least privilege, short-lived credentials ve düzenli audit uygulamaları güvenliği ciddi şekilde artırır.

Corelux olarak güvenli sunucu altyapısı ve yedekleme hizmetleri, SSL sertifikası yönetimi ve hem Türkiye VPS hem de Türkiye Kiralık Sunucu çözümleriyle gizli bilgi yönetiminizde size destek olabiliriz. Gereksinimlerinize göre Vault kurulumu, KMS entegrasyonu veya CI/CD secrets tasarımında yardımcı oluyoruz.

Yazar

Boran BAR

Chat on WhatsApp