OWASP Infrastructure as Code Security Cheat Sheet; IDE güvenlik eklentileri, threat modeling, secrets yönetimi, version control, en az ayrıcalık, statik analiz, dependency kontrolleri, monitoring ve runtime tehdit tespitini IaC güvenliğinin önemli parçaları arasında sıralar.
Bu nedenle IaC güvenliği nedir yaklaşımı yalnızca syntax doğrulamak değildir. Değişikliğin kim tarafından yapıldığı, secret içerip içermediği, plan çıktısında hangi kaynakların değişeceği, hangi politikadan geçtiği ve deploy sonrasında gerçek cloud duruşunun hâlâ beklenen güvenlik standardına uyup uymadığı birlikte kontrol edilmelidir.
IaC güvenliği nedir: Hızlı Bakış
| Konu | Pratik yaklaşım |
|---|---|
| Version control | Altyapı değişikliklerini Git geçmişinde izleyin. |
| Secrets | Parola ve token’ları repository dışında tutun. |
| Static scan | Terraform/YAML dosyalarını deploy öncesi tarayın. |
| Least privilege | CI/CD kimliğine sadece gerekli cloud yetkisini verin. |
| Policy as Code | Kritik güvenlik kurallarını otomatik zorunlu tutun. |
| Drift | Production ile kod arasındaki sapmayı izleyin. |
IaC Güvenliği Nedir? Terraform ve Kubernetes İçin 10 Kritik Adım
1. Tüm IaC Kodunu Sürüm Kontrolüne Alın
Altyapı değişikliğinin kim tarafından, ne zaman ve hangi gerekçeyle yapıldığını görebilmek güvenlik incelemesi ve geri dönüş için kritiktir. OWASP version control kullanımını temel IaC güvenlik uygulamalarından biri olarak önerir.
Terraform, Kubernetes YAML ve pipeline tanımlarını korunan Git branch’lerinde yönetin. Pull request, code owner ve zorunlu review kuralları IaC güvenliği nedir sürecini denetlenebilir değişiklik yönetimine bağlar.
2. Secrets Bilgilerini Kaynak Koddan Çıkarın
API token, cloud access key, SSH private key veya veritabanı parolasının Git geçmişine girmesi kalıcı güvenlik problemi oluşturabilir. Dosyayı silmek, geçmiş commitlerdeki sırrı otomatik olarak yok etmez.
Secret scanner kullanın ve gerçek değerleri secret manager veya güvenli CI/CD secret mekanizmasında saklayın. Sır sızdıysa credential’ı iptal edip yenileyin. Bu kontrol IaC güvenliği nedir yaklaşımının en temel adımlarındandır.
3. IDE ve Pre-Commit Kontrollerini Kullanın
Geliştirici hatayı kod yazarken görürse pull request sonrasında düzeltmeye göre çok daha hızlı aksiyon alabilir. OWASP da IaC risklerinin erken bulunmasında IDE eklentilerinden yararlanılmasını önerir.
Lint, format, syntax, secret ve temel security check’leri pre-commit aşamasına ekleyin. Lokal kontrol atlanabileceği için aynı kritik kuralları merkezi CI/CD pipeline’ında tekrar çalıştırın.
4. Statik IaC Güvenlik Taramasını CI/CD’ye Ekleyin
Public bucket, 0.0.0.0/0 güvenlik grubu, şifresiz depolama veya privileged Kubernetes Pod gibi riskler deploy öncesinde koddan bulunabilir.
IaC security scanner’ı pull request aşamasında çalıştırın ve yeni yüksek/kritik yanlış yapılandırmaları quality gate’e bağlayın. Kural setlerini kurumunuzun gerçek cloud mimarisine göre tune etmek yanlış pozitifleri azaltır.
5. Policy as Code ile Kritik Kuralları Zorunlu Tutun
Güvenlik standardı sadece wiki sayfasında kalırsa ekipler farklı yorumlayabilir. Policy as Code, kuralları makine tarafından değerlendirilebilir hâle getirir.
Production storage’ın public olmasını, privileged workload veya izin verilmeyen region kullanımını otomatik reddedebilirsiniz. Anlaşılır hata mesajı sunmak IaC güvenliği nedir politikasının geliştirici tarafından kabul edilmesini kolaylaştırır.
6. CI/CD Kimliklerine En Az Ayrıcalık Verin
IaC pipeline’ı çoğu zaman güçlü cloud yetkileri taşır. Pipeline kimliği ele geçirilirse saldırgan aynı otomasyon yoluyla geniş altyapı değişiklikleri yapabilir.
Development, test ve production için ayrı workload identity kullanın; kalıcı access key yerine kısa ömürlü federated identity tercih edin. Production apply rolünü sadece gerekli resource ve action’larla sınırlandırın.
7. Plan Çıktısını Güvenlik Değişikliği Olarak İnceleyin
Terraform plan benzeri çıktılar kod satırından daha net biçimde hangi gerçek kaynağın oluşturulacağını, silineceğini veya değişeceğini gösterir. IAM ve network değişiklikleri özellikle yüksek etkilidir.
Plan özetini pull request’e ekleyin ve resource delete, public exposure veya privilege artışı gibi değişiklikleri otomatik etiketleyin. Bu yaklaşım IaC güvenliği nedir incelemesini daha bağlamsal hâle getirir.
8. Modül ve Provider Bağımlılıklarını Güvenilir Kaynaktan Kullanın
IaC kodu da üçüncü taraf modül ve provider kullanır. Rastgele modül, güvensiz varsayılanlar veya beklenmeyen kaynaklar ekleyebilir.
Onaylı registry ve module kaynaklarını tercih edin, sürümleri sabitleyin ve güncellemeleri review sürecinden geçirin. Kritik internal modüller için sahiplik ve changelog tutun.
9. Drift ve Manuel Production Değişikliklerini İzleyin
Cloud console üzerinden manuel değişiklik yapıldığında Git’teki IaC ile gerçek ortam farklılaşabilir. Bu drift güvenlik politikasının bypass edilmesine veya sonraki deploy’da beklenmeyen sonuca yol açabilir.
Periyodik plan/diff kontrolleri çalıştırın. Acil manuel değişiklik gerektiğinde sonradan kodu güncelleyerek gerçek durum ile sürüm kontrollü tanımı yeniden eşitleyin.
10. Deploy Sonrası CSPM ve Runtime ile Doğrulayın
Statik IaC taraması değerli olsa da provider default’ları, sonradan yapılan değişiklikler veya runtime koşulları gerçek duruşu etkileyebilir. OWASP monitoring ve runtime görünürlüğünü de güvenli IaC yaşam döngüsünün devamı olarak ele alır.
Deploy sonrasında CSPM, Kubernetes admission ve drift kontrolleriyle gerçek kaynağın beklenen politikaya uyduğunu doğrulayın. Böylece IaC güvenliği nedir koddan production’a uzanan kapalı doğrulama döngüsü olur.
Terraform ve Kubernetes İçin Farklı Riskler
| Alan | Öne çıkan risk |
|---|---|
| Terraform | Cloud IAM, network, storage, database ve lifecycle değişiklikleri. |
| Kubernetes YAML | securityContext, privileged pod, hostPath, RBAC, image ve service exposure. |
| Ortak | Secret sızıntısı, geniş yetki, kontrolsüz modül ve review eksikliği. |
Minimum CI/CD Sırası
- Format/syntax doğrulama
- Secret scanning
- IaC static security scan
- Policy as Code
- Plan/diff
- Gerekli insan onayı
- Apply
- Deploy sonrası CSPM/drift doğrulaması
Sık Yapılan Hatalar
- Secret’ları Git’e koymak
- Production pipeline’a global administrator yetkisi vermek
- Syntax doğrulamasını güvenlik testi sanmak
- Modülleri sürüm sabitlemeden kullanmak
- Plan çıktısını incelemeden apply yapmak
- Manuel console değişikliklerini takip etmemek
- Policy istisnalarını süresiz bırakmak
- Deploy sonrası cloud durumunu doğrulamamak
IaC güvenliği nedir: Sık Sorulan Sorular
IaC neyin kısaltmasıdır?
Infrastructure as Code.
IaC güvenliği neden önemlidir?
Tek bir kod değişikliği çok sayıda altyapı kaynağını aynı anda etkileyebilir.
Terraform taraması ne zaman yapılmalı?
IDE/pull request aşamasında başlayıp CI/CD’de tekrar çalışmalı ve deploy sonrası doğrulanmalıdır.
Kubernetes YAML IaC sayılır mı?
Evet, workload ve altyapı yapılandırmasını kod olarak tanımlar.
IaC içinde secret saklanır mı?
Gerçek secret değeri repository içinde saklanmamalıdır.
Policy as Code IaC güvenliğinin parçası mı?
Evet, güvenlik kurallarını otomatik ve tekrarlanabilir biçimde uygular.
İlgili İçerikler
Kubernetes Admission Controller Nedir?
Resmî ve Güvenilir Kaynaklar
OWASP — Infrastructure as Code Security Cheat Sheet
Sonuç
IaC güvenliği nedir sorusuna; altyapı kodunu sürüm kontrolü, secret yönetimi, statik analiz, least privilege, Policy as Code ve deploy sonrası doğrulama ile güvenli hâle getiren DevSecOps yaklaşımı şeklinde cevap verilebilir.
Terraform veya Kubernetes dosyasını production güvenlik yapılandırmasının kaynağı olarak ele aldığınızda IaC güvenliği nedir süreci yanlış ayarların buluta ulaşmadan önce engellendiği ve sonrasında sürekli doğrulandığı bir modele dönüşür.
