Konfigürasyon Yönetimi ve IaC: Terraform/Ansible ile Güvenlik Odaklı Altyapı

Konfigürasyon Yönetimi ve IaC: Terraform/Ansible ile Güvenlik Odaklı Altyapı

9 dk okuma22 Temmuz 2026DGTLFACE Editorial

Sunucu güvenliğinde en pahalı sorunlar çoğu zaman “hack” değil, kontrolsüz değişikliktir: birisi geçici diye port açar, sonra unutulur; bir paket güncellemesi farklı sunucularda farklı sonuç verir; staging ile prod aynı değildir. Otel tarafında çok sunuculu cluster’larda bu sapma (drift) hızla büyür; B2B’de staging/prod ayrımı yoksa sürprizler artar. Bu rehber; güvenlik ayarlarını kod haline getirip (Security-as-Code), Terraform/Ansible ile tekrarlanabilir ve denetlenebilir bir altyapı standardı kurmayı hedefler.

Öne Çıkan Cevap

Elle yapılandırılan sunucularda “kim, neyi, ne zaman değiştirdi?” sorusuna cevap vermek zordur ve drift (sapma) büyür. Security group, firewall, kullanıcı/grup ve paket ayarlarını Terraform/Ansible gibi IaC araçlarıyla kod haline getirmek; değişiklikleri version control ve code review üzerinden yönetmeyi sağlar. Böylece otel ve B2B altyapılarında tekrarlanabilir kurulum, izlenebilir güvenlik değişiklikleri ve kontrollü bakım/patch uygulaması mümkün olur.

Özet

Güvenlik ayarlarını IaC ile koda taşı; repo + review ile değişiklikleri denetle, drift’i azalt ve staging/prod dahil tekrarlanabilir, güvenli altyapı kur.

Maddeler

  • Hedef kitle: DevOps/BT lideri, ajans teknik lideri, otel IT, B2B platform ekibi
  • KPI: Drift sayısı, değişiklik izlenebilirliği, yanlış port açılması incidents, deploy süresi, güvenlik regresyonu
  • Entity: Terraform, Ansible, Security Groups, Firewall Rules, User Management, IaC Pipeline, Code Review
  • Geo: Türkiye geneli; çok sunuculu otel altyapıları, ajanslar ve B2B projeler
  • Funnel: MoFu (rehber+checklist) → BoFu (güvenlik analizi)
  • SERP hedefi: Featured snippet + PAA (IaC nedir, avantajlar, pipeline)
  • Refresh: 365 gün (bulut/IaC modülleri ve best practice’ler değiştikçe)

Kısa Cevap

Ayarları koda taşı; Terraform/Ansible ile standardize et ve değişikliği repo-review süreciyle yönet.

Hızlı Özet

  • 1) Güvenlik ayarları için desired state tanımlayın.
  • 2) Terraform ile altyapı kaynaklarını, Ansible ile sunucu konfigürasyonunu yönetin.
  • 3) Repo → PR → plan → review → apply pipeline’ı kurun.
  • 4) Security group, kullanıcı, paket ve hardening ayarlarını koda taşıyın.
  • 5) Drift kontrolünü periyodik çalıştırıp staging/prod farklarını izleyin.

1. Konfigürasyon Yönetimi Nedir?

Repo ve code review ile güvenlik değişikliklerini yönetme, sunucu drift azaltma stratejisi
Repo ve code review ile güvenlik değişikliklerini yönetme, sunucu drift azaltma stratejisi

Konfigürasyon yönetimi; bir sunucunun/altyapının “nasıl olması gerektiğini” tanımlayıp bunu sürdürülebilir şekilde korumaktır. Amaç; ortamları (prod/stage) tutarlı yapmak ve değişiklikleri izlenebilir kılmaktır. Güvenlik perspektifinde bu; açık portlar, kullanıcı yetkileri, paket sürümleri, firewall kuralları, security group’lar ve sertifika/anahtar politikaları gibi ayarların kontrolüdür.

Konfigürasyon yönetimi ve IaC nedir, neden önemlidir?

Konfigürasyon yönetimi; sistem ayarlarını standartlaştırıp izlenebilir hale getirmektir. IaC (Infrastructure as Code) ise bu altyapı ve güvenlik ayarlarını kod olarak tanımlayıp repo üzerinden yönetmeyi sağlar. Önemlidir çünkü drift’i azaltır, “kim bu portu açtı?” sorusuna cevap verir ve tekrarlanabilir, denetlenebilir güvenlik sağlar.

Drift (sapma) neden oluşur?

  • Elle yapılan “geçici” değişiklikler kalıcılaşır
  • Farklı sunuculara farklı paket/sürüm kurulur
  • Acil durumlarda prosedür dışı ayar yapılır
  • Staging/prod ayrımı ya yoktur ya da sürdürülemez

☑ Mini Check: Drift sinyalleri

  • Aynı rol sunucular farklı port/paket seviyelerinde mi?
  • Staging’de çalışan prod’da bozuluyor mu?
  • Kim değişiklik yaptı sorusunun net cevabı yok mu?
  • Güvenlik ayarları “dokümanda” ama sunucuda farklı mı?
  • Acil değişiklikler geri toplanmıyor mu?

Ne yapmalıyım?

  • “Desired state” mantığını benimse (nasıl olmalı?).
  • Güvenlik ayarlarını dokümandan çıkarıp koda taşı.
  • Değişiklikleri PR/code review ile yönet.
  • Drift’i ölçmek için periyodik kontrol/rapor kur.
Konfigürasyon yönetimi ve drift problemi, otel ve kurumsal altyapılar için bölüm ayırıcı
Konfigürasyon yönetimi ve drift problemi, otel ve kurumsal altyapılar için bölüm ayırıcı

2. Infrastructure as Code (IaC) Temelleri

IaC, altyapıyı kodla yönetme yaklaşımıdır. Temel kazanım; kurulumun “adım adım” değil “tanım olarak” yapılmasıdır. Bu tanım repo’da yaşar; kim neyi değiştirdi, ne zaman değiştirdi, neden değiştirdi cevaplanır.

Terraform vs Ansible (rol ayrımı)

  • Terraform: altyapı kaynaklarını (network, compute, security group, load balancer) tanımlar ve yönetir.
  • Ansible: sunucu üzerinde konfigürasyon/paket/kullanıcı gibi “iç ayarları” idempotent şekilde uygular.
  • Pratikte çoğu mimaride birlikte kullanılır: Terraform “ne var?”, Ansible “içinde ne var?”

IaC pipeline mantığı (repo → plan → apply)

IaC’de değişiklikler; PR açılır, plan alınır, review edilir, sonra uygulanır. Bu akış; güvenlik değişikliklerini “gözden geçirilmiş” hale getirir. Otel/B2B projelerinde özellikle “sezonda acil değişiklik” baskısı varsa, bu pipeline kontrol mekanizmasıdır.

☑ Mini Check: IaC temeli

  • Altyapı tanımı repo’da mı?
  • PR ile değişiklik onayı var mı?
  • Plan çıktısı review ediliyor mu?
  • Apply için yetki kontrollü süreç var mı?
  • Staging/prod ayrımı kodda net mi?

Ne yapmalıyım?

  • Terraform ve Ansible sınırlarını çiz (kaynak vs konfig).
  • Repo + PR + plan-review standardı kur.
  • Staging/prod ayrımını ayrı ortamlarla yönet.
  • Apply yetkisini “en az yetki” ile sınırla.
IaC pipeline repo→plan→apply akışı, güvenlik kaynaklarıyla tekrarlanabilir altyapı modeli
IaC pipeline repo→plan→apply akışı, güvenlik kaynaklarıyla tekrarlanabilir altyapı modeli

3. Güvenlik Ayarlarını Kodla Takip Etmek

Security-as-Code yaklaşımında hedef; güvenlik ayarlarını “kişilerin hafızası”ndan çıkarıp sistematik hale getirmektir. Burada kritik alanlar: security group/firewall, kullanıcı-yetki yönetimi, paket politikaları, hardening rolleri ve secret/state güvenliği.

Terraform/Ansible ile güvenlik ayarlarını nasıl yönetirim?

Terraform ile security group/firewall benzeri ağ güvenliğini kodla tanımlayıp değişiklikleri plan-review üzerinden kontrol edersiniz. Ansible ile kullanıcı/yetki, paket güncellemeleri ve hardening adımlarını idempotent rollere çevirirsiniz. İkisini birlikte kullanarak hem dış yüzeyi (portlar/erişim) hem de sunucu içini (kullanıcı/paket) denetlenebilir hale getirirsiniz.

Kritik ayarları kod tabanına taşımak (örnek kategori)

  • Security group / firewall kuralları (hangi port kimden erişir?)
  • Kullanıcı/grup/rol (root/admin politikası, sudo)
  • Paket ve servis baseline (gereksiz servisler kapalı)
  • SSH/RDP politikaları (key/MFA yaklaşımı, erişim daraltma)
  • Loglama/izleme ajanları kurulumu (SIEM entegrasyonu gibi)

Version control + code review neden güvenlik kontrolüdür?

Çünkü değişiklik “görünür” olur: kim açtı, ne açtı, neden açtı. Review süreci; hatalı port açma veya fazla yetki verme gibi riskleri daha prod’a gitmeden yakalar.

☑ Mini Check: Security-as-Code kontrol seti

  • Security group/firewall kuralları kodda mı?
  • Kullanıcı/yetki politikaları otomatik uygulanıyor mu?
  • Paket baseline ve hardening rolleri var mı?
  • Değişiklikler PR ile onaylanıyor mu?
  • Drift tespit/raporlama mekanizması var mı?

Ne yapmalıyım?

  • En riskli 10 ayarı seç ve önce onları koda taşı.
  • PR review’de “security checklist” zorunlu olsun.
  • Drift tespitini düzenli çalıştır; fark varsa geri al.
  • Bakım ve patch süreçlerini IaC akışına bağla: https://dgtlface.com/tr/yazilim/bakim-ve-destek
Security-as-Code yaklaşımı, Terraform/Ansible ile denetlenebilir güvenlik değişiklikleri bölümü
Security-as-Code yaklaşımı, Terraform/Ansible ile denetlenebilir güvenlik değişiklikleri bölümü

4. Terraform/Ansible Örnekleri (Konsept + pratik)

Bu rehber “komut listesi” değil; tekrar kullanılabilir model verir. Aşağıdaki örnekler, otel/B2B altyapısında en sık karşılaşılan güvenlik değişikliklerini temsil eder.

Terraform tarafı — güvenlik kaynakları (security group, network)

  • “Sadece gerekli portlar”: 80/443 public, yönetim portları allowlist/VPN
  • Ortam bazlı farklılık: staging daha esnek, prod daha sıkı
  • Modül yaklaşımı: tekrar eden güvenlik kuralları tek modülden

Terraform state güvenliği (kritik not)

State dosyası, altyapı “gerçeği”ni tutar; yanlış yönetilirse hassas bilgi sızdırabilir veya altyapı kontrolü bozulur. State’in erişimi ve saklanması (yetki, şifreleme, ayrık ortam) güvenlik planının parçasıdır.

Ansible tarafı — idempotent güvenlik rolleri

  • Kullanıcı/grup tanımı ve sudo politikası
  • Paket baseline (kurulacaklar/kaldırılacaklar)
  • Servis kapatma, firewall kuralları (sunucu içi)
  • SSH hardening (key zorunluluğu, root login kısıtı gibi)

☑ Mini Check: Örnekleri “model”e çevirme

  • Tekrarlanan kural setleri modülleştirildi mi?
  • Prod/stage farkı değişkenlerle yönetiliyor mu?
  • State erişimi ve şifreleme güvenli mi?
  • Ansible rolleri idempotent mi (tekrar çalışınca bozmuyor mu)?
  • Rollback planı var mı (yanlış değişiklikte geri dönüş)?

Ne yapmalıyım?

  • Security group/firewall için “golden module” çıkar.
  • State’i güvenli sakla ve erişimi sınırla.
  • Ansible’da hardening rollerini idempotent tasarla.
  • Release/Değişiklik yönetimini web projeleriyle hizala: https://dgtlface.com/tr/yazilim/web-sitesi-gelistirme

5. Otel ve B2B İçin Tekrarlanabilir Altyapı

Otel tarafında çok sunuculu cluster (yük dengeleme, çoklu node) ve sezon trafik dalgalanması; B2B’de staging/prod ayrımı ve entegrasyon çeşitliliği; IaC’ye en çok ihtiyaç duyulan durumlardır.

Otel örneği — çok sunuculu cluster standardizasyonu

  • Her node aynı baseline güvenlik rolüyle gelir
  • Trafik artınca yeni node aynı kodla ayağa kalkar
  • “Kim bu portu açtı?” sorusu PR geçmişinden görülebilir

B2B örneği — staging/prod ayrımı ve kontrollü değişiklik

  • Staging’de plan-review ile test
  • Prod’a aynı tanımın “sıkı” varyantı uygulanır
  • Entegrasyonların erişim kuralları (IP allowlist) kodla yönetilir

Elle sunucu ayarı yerine IaC kullanmanın avantajları neler?

IaC; tekrarlanabilir kurulum, izlenebilir değişiklik geçmişi, drift azaltma ve güvenlik regresyonlarını erken yakalama avantajı sağlar. Elle ayarlarda bilgi kişilere bağımlı kalır; IaC’de bilgi repo’da yaşar ve review ile kalite kontrol edilir.

☑ Mini Check: Tekrarlanabilirlik testi

  • Yeni sunucu 30–60 dakikada aynı baseline ile kurulabiliyor mu?
  • Staging/prod farkı net ve kodla yönetiliyor mu?
  • Güvenlik değişiklikleri PR ile izleniyor mu?
  • Drift raporu düzenli üretiliyor mu?
  • Bakım/patch süreçleri IaC ile uyumlu mu?

Ne yapmalıyım?

  • “Golden baseline”ı çıkar ve yeni node’larda zorunlu kıl.
  • Staging/prod ayrımını IaC’de netleştir.
  • Değişiklik yönetimini bakım-destek süreciyle birleştir.
  • Sunucu güvenliği sayfası ile entegre bir standart oluştur: https://dgtlface.com/tr/yazilim/sunucu-guvenlik
IaC ve güvenlik checklist’i, drift azaltma ve code review ile güvenlik standardı
IaC ve güvenlik checklist’i, drift azaltma ve code review ile güvenlik standardı

6. Terraform/Ansible Güvenlik Modülleri Özeti

Tablo: Alan → Terraform (kaynak) → Ansible (konfig) → Kontrol
Güvenlik AlanıTerraform ileAnsible ileKontrol/Kanıt
Ağ erişimiSecurity group, LB kurallarıHost firewallPlan çıktısı + kural envanteri
Kullanıcı/yetkiIAM/role tanımı (varsa)User/group/sudoAudit log + drift raporu
Paket baselineAMI/image seçimiPaket/servis rolleriİdempotent playbook
SSH hardeningAğ kısıtı (allowlist)SSH config/keysBaşarısız login trendi
İzleme/loglamaAgent altyapısıAgent kurulumuSIEM log akışı
Drift ve güvenlik değişiklik KPI paneli, otel ve B2B altyapılarında izlenebilir konfigürasyon
Drift ve güvenlik değişiklik KPI paneli, otel ve B2B altyapılarında izlenebilir konfigürasyon

7. “Terraform/Ansible Güvenlik Konfigürasyonu” Planlama Şablonunu İndir

Template İçeriği

PDFv1.0Checklist + Sprint

“Terraform/Ansible Güvenlik Konfigürasyonu” Planlama Şablonunu İndir — Yazılım / Sunucu ve Güvenlik (v1.0)

Bu şablon; security group/firewall, kullanıcı-yetki, paket baseline ve hardening adımlarını Terraform/Ansible ile Security-as-Code yaklaşımında planlamak için hazırlanmıştır. Repo→plan→apply pipeline’ında hangi kontrol noktalarının olması gerektiğini netleştirir. Drift’i azaltmak ve “kim bu portu açtı?” problemini PR geçmişiyle çözmek için kullanılır.

Kim Kullanır?

DevOps/BT, ajans teknik lideri, otel IT, B2B platform ekibi.

Nasıl Kullanılır?

  1. Güvenlik ayar envanterini çıkar ve “koda taşınacak”ları işaretle.
  2. Terraform modülleri ve Ansible rolleri için planı doldur, staging/prod farkını yaz.
  3. PR/review/plan kontrollerini ekle ve drift doğrulama takvimini belirle.

Ölçüm & Önceliklendirme (Kısa sürüm)

  • ▢ ✅ Security group kuralları modülleştirildi
  • ▢ ✅ Ansible hardening rolleri idempotent
  • ▢ ✅ State güvenliği sağlandı (erişim/şifreleme)
  • ▢ ✅ PR + review zorunlu
  • ▢ ✅ Drift raporu ve geri alma süreci var

PDF içinde: Problem→Kök Neden→Çözüm tablosu + 14 gün sprint planı + önce/sonra KPI tablosu

Şablonu İndir Ücretsiz • PDF / Excel

6) Kontrol Listesi

  • Security group kuralları modülleştirildi
  • Ansible hardening rolleri idempotent
  • State güvenliği sağlandı (erişim/şifreleme)
  • PR + review zorunlu
  • Drift raporu ve geri alma süreci var
IaC deliverable seti, modüller, pipeline ve denetim izleriyle sürdürülebilir güvenlik
IaC deliverable seti, modüller, pipeline ve denetim izleriyle sürdürülebilir güvenlik

Bir Sonraki Adım

Güvenlik ayarlarını koda taşıyıp drift’i azaltmak ve değişiklikleri denetlenebilir hale getirmek isteyen otel ve B2B DevOps ekipleri için.

Sık Sorulan Sorular

Konfigürasyon yönetimi ve IaC nedir, neden önemlidir?
Konfigürasyon yönetimi sistem ayarlarını standartlaştırıp sürdürülebilir kılar; IaC ise altyapıyı kodla tanımlayıp repo üzerinden yönetir. Bu sayede drift azalır, değişiklikler denetlenebilir olur ve tekrarlanabilir güvenlik standardı oluşur.
Terraform/Ansible ile güvenlik ayarlarını nasıl yönetirim?
Terraform ile security group ve ağ erişim kurallarını kodla yönetirsiniz; Ansible ile kullanıcı/yetki, paket baseline ve hardening adımlarını idempotent rollere çevirirsiniz. PR ve plan-review ile değişiklikler kontrollü uygulanır.
Elle sunucu ayarı yerine IaC kullanmanın avantajları neler?
IaC, tekrarlanabilir kurulum, değişiklik geçmişi, code review ile denetim ve drift azaltma sağlar. Elle ayarlarda bilgi kişilere bağlı kalır; IaC’de bilgi repo’da yaşar ve izlenebilir olur.
Otel ve B2B projeleri için IaC pipeline’ı nasıl kurgulanmalı?
Repo→PR→plan→review→apply akışı kurulmalı, staging/prod ortamları ayrılmalı ve apply yetkisi sınırlanmalıdır. Drift kontrolü periyodik çalıştırılıp sapmalar geri alınmalıdır.
Terraform state neden güvenlik konusu?
State, altyapı gerçeğini tutar ve yanlış yönetilirse hassas bilgi veya kontrol riski doğurabilir. State erişimi sınırlandırılmalı, şifrelenmeli ve ortamlar arası ayrıştırılmalıdır.
IaC drift’i tamamen bitirir mi?
Tamamen bitirmeyebilir; ancak drift’i ölçülebilir ve yönetilebilir hale getirir. En kritik nokta, manuel değişikliklerin geri toplanması ve IaC’nin “tek gerçek kaynak” olarak işletilmesidir.
IaC ile Güvenlik: Terraform/Ansible Konfigürasyon | DGTLFACE