Sözlük Infrastructure as Code (IaC) Security

Kod Olarak Altyapı (IaC) Güvenliği

Kısaca: Kod Olarak Altyapı (IaC) Güvenliği

Kod Olarak Altyapı (IaC) güvenliği, bulut altyapınızı, Terraform, CloudFormation, Kubernetes YAML gibi belirli dillerde yazılmış yapılandırma dosyalarını veya betikleri dağıtımdan önce tarayarak güvence altına alma sürecidir.

Bu süreç size yardımcı olur.

  • Gereksiz portların yanlışlıkla açılması veya aşırı kullanıcı erişimi verilmesi gibi yanlış yapılandırmaları erken yakalayın.
  • CI/CD boru hatlarında kod olarak güvenlik politikalarını uygulayın.
  • Betiklerdeki güvensiz yapılandırmaların neden olduğu bulut ihlalleri, veri sızıntıları ve uyumluluk sorunları riskini azaltın.

IaC güvenliğinin amacı, bulut altyapınızı oluşturma şeklinizin güvenli olmasını sağlamaktır.

Kod Olarak Altyapı (IaC) Güvenliği Nedir

Kod Olarak Altyapı (IaC) güvenliği, Terraform, AWS CloudFormation, Pulumi veya Kubernetes YAML dosyaları gibi belirli kodlar kullanılarak tanımlanan ve yönetilen bulut altyapısını güvence altına alma sürecidir.

Sunucuları, ağları ve bulut kaynaklarını manuel olarak bir terminal veya web arayüzü kullanarak yapılandırmak yerine, ekipler tüm yapılandırmaları kodda tanımlar. IaC güvenliği, bulut altyapısını oluşturmak için kullanılan kodun güvenli olmasını, yanlış yapılandırma, güvenlik açıkları veya aşırı izinler tanıtmamasını sağlar.

Basitçe ifade etmek gerekirse :

IaC güvenliği, “bulutunuzun nasıl yapılandırıldığını ve oluşturulduğunu” kontrol eder, böylece güvensiz altyapıyı üretime göndermemiş olursunuz.

Neden IaC Güvenliği Önemlidir

Kod ile altyapıyı yönettiğinizde, altyapı kurulumunu hızlandırırsınız. Ancak diğer taraftan, üretim ortamınızda savunmasız altyapı da dağıtabilirsiniz.

Peki neden IaC güvenliği önemlidir:

Yanlış yapılandırmalar bulut ihlallerinin başlıca nedenidir.

Örnek: herkese açık S3 kovaları, açık veritabanları veya internette hassas verileri açığa çıkaran geniş açık bir güvenlik grubu

Kodda yanlış bir satır birçok kaynağı etkileyebilir.

Eğer bir Terraform modülü erişim için 0.0.0.0/0 (herkese açık) ayarlarsa, bunu kullanan her ortam açığa çıkar

IaC yazılım tedarik zincirinin bir parçasıdır.

IaC yazılım tedarik zincirinin bir parçası olduğundan, saldırganlar altyapıyı tehlikeye atarak arka kapılar veya yanlış yapılandırmalar enjekte etmek için boru hatlarına sızabilir.

Uyumluluk doğru yapılandırmaya bağlıdır.

SOC 2, ISO 27001 ve PCI DSS gibi çerçeveler güvenli yapılandırmalara, erişim kontrolüne ve kayda dayanır. Güvensiz IaC uyumluluğu bozabilir.

IaC Güvenliği Nasıl Çalışır

IaC güvenliği, altyapı dağıtılmadan önce güvenlik açıklarını yakalar.

1. Yanlış Yapılandırmalar İçin IaC Dosyalarını Tarayın

Araçlar, Terraform, CloudFormation veya Kubernetes manifestinizi analiz ederek riskli ayarları bulur, örneğin:

  • Herkese açık S3 kovaları
  • Kamuya açık veritabanı.
  • 0.0.0.0/0 (herkese açık) güvenlik grupları
  • Kök olarak çalışan konteynerler
  • Şifrelenmemiş depolama veya günlükler

Amaç: güvenlik sorunlarını buluta ulaşmadan önce yakalamak

2. Güvenlik Politikalarını Kod Olarak Uygulayın

Güvenlik kuralları politikalar olarak yazılır, örneğin:

  • Herhangi bir genel Amazon RDS (İlişkisel Veritabanı Hizmeti) veritabanına izin verilmez
  • Tüm S3 kovaları şifreleme kullanmalıdır.
  • Kubernetes podları ayrıcalıklı konteynerler çalıştıramaz.

Bu politikalar CI/CD boru hatlarında otomatik olarak uygulanır.

Amaç: Güvenlik kurallarını geliştirme iş akışınızın bir parçası haline getirin, sonradan düşünülmüş bir şey değil.

3. CI/CD Boru Hatlarıyla Entegrasyon

IaC güvenlik araçları, riskli değişiklikleri otomatik olarak engellemek veya uyarmak için CI/CD ile entegre edilir.

Tipik akış:

  1. Geliştirici altyapı kodunu taahhüt eder.
  2. CI/CD boru hattı IaC güvenlik taramalarını çalıştırır.
  3. Kritik bir sorun (örneğin, genel veritabanı) bulunursa, derleme başarısız olur.
  4. Geliştirici, dağıtımdan önce sorunu düzeltir.

Amaç: Sol kaydırma, dağıtımdan önce sorunları erken yakalama

4. Bulut Güvenlik Duruşuna Haritalama

IaC güvenliği genellikle CSPM (Bulut Güvenlik Duruşu Yönetimi) ile eşleştirilir.

  • CSPM, bulutta gerçekten neyin çalıştığını kontrol eder, örneğin veritabanının internete açık olmadığını kontrol eder. Bu depolama kovası şifrelenmiş mi? ve benzeri.
  • IaC güvenliği, dağıtılmak üzere olanı kontrol eder

Birlikte, tasarım ve çalışma zamanında altyapının tam görünürlüğünü sağlarlar.

Yaygın IaC Güvenlik Riskleri

IaC güvenliğinin tespit edebileceği sorun örnekleri:

  • Genel olarak açığa çıkan depolama (örneğin, genel okuma/yazma izinli S3 kovaları)
  • Şifrelenmemiş veritabanları, hacimler veya günlükler
  • Aşırı izinli IAM rolleri
  • Açık güvenlik grupları (SSH/RDP için 0.0.0.0/0).
  • Ayrıcalıklı erişimle çalışan Kubernetes podları.
  • Terraform veya YAML dosyalarında sabitlenmiş sırlar.

Uygulamada Örnek

Bir ekip, AWS altyapısını yönetmek için Terraform kullanır.

Bir IaC güvenlik taraması şunları işaretler:

  • Genel erişim etkinleştirilmiş bir RDS veritabanı
  • Şifreleme olmadan ve genel okuma erişimi olan bir S3 kovası

Bu güvensiz yapılandırmayı AWS’ye dağıtmak yerine, pipeline yapıyı başarısız kılar.

Sonra geliştirici şunları yapmalıdır:

  • Erişimi kısıtlamak için güvenlik grubunu günceller
  • S3 kovasında şifrelemeyi etkinleştirir ve genel erişimi engeller.

Sonuç: Yanlış yapılandırmalar üretime ulaşmadan önce düzeltilir, veri açığa çıkma riskini azaltır.

IaC Güvenliğini Kimler Kullanır

  • DevOps - IaC şablonlarını yazar ve bakımını yapar
  • Bulut güvenlik mühendisleri - politikaları tanımlar ve yapılandırmaları gözden geçirir.
  • AppSec / DevSecOps Takımları - IaC’yi pipeline’lara entegre eder
  • Güvenlik ve uyumluluk ekipleri - denetimler ve yönetim için raporları kullanır.

IaC Güvenliği Ne Zaman Uygulanmalı

IaC güvenliği yaşam döngüsü boyunca uygulanmalıdır:

  • Geliştirme sırasında - ön taahhüt kancaları ve IDE eklentileri.
  • CI/CD yapıları sırasında - otomatik taramalar riskli değişiklikleri engelleyebilir.
  • Dağıtımdan önce - üretim ortamları için politika kontrolleri.
  • Sürekli olarak - yeni kurallar veya tehditler ortaya çıktığında şablonları yeniden tarayın.

IaC Güvenlik Araçlarının Temel Yetkinlikleri

Çoğu IaC güvenlik çözümü şunları sağlar:

  • Kod olarak politika: Güvenlik kurallarını tanımlayın ve sürüm kontrolü yapın
  • IaC’nin statik analizi: Terraform, CloudFormation, Kubernetes yapılandırmasını tarayın, vb.
  • CI/CD entegrasyonu: Github Actions, GitLab CI, Jenkins, vb.
  • Yanlış yapılandırma tespiti: Güvensiz yapılandırmayı belirleyin
  • Sapma tespiti (CSPM ile): IaC kurulumu ile canlı bulut arasındaki farkları tespit edin.
  • Raporlama ve uyumluluk eşlemesi: Sorunları kontrol ve düzenlemelere eşleyin.

Örnek araçlar: Checkov, Tfsec, Terrascan veya uygulama/bulut duruşunun bir parçası olarak IaC taraması yaptıklarında Plexicus ASPM gibi gelişmiş platformlar.

IaC Güvenliği için En İyi Uygulamalar

  • Sol kaydırın: IaC’yi erken tarayın ve üretime ulaşmadan önce güvenlik sorunlarını yakalayın
  • Sabit kodlanmış sırları (API anahtarları, belirteçler, vb.) önleyin
  • En az ayrıcalıkları zorunlu kılın
  • Tutarlı uygulamayı otomatikleştirmek için kod olarak politika kullanın.
  • Mimari değişiklikleriyle birlikte politikaları düzenli olarak gözden geçirin ve güncelleyin.

İlgili Terimler

SSS: Kod Olarak Altyapı (IaC) Güvenliği

1. Kod Olarak Altyapı (IaC) güvenliği nedir?

IaC güvenliği, buluta dağıtılmadan önce yanlış yapılandırmaları ve riskleri bulmak için altyapı yapılandırma dosyalarını (Terraform, CloudFormation, Kubernetes YAML gibi) tarama ve güvence altına alma uygulamasıdır.

2. IaC güvenliği neden önemlidir?

Çünkü tek bir güvensiz şablon, bir anda yüzlerce savunmasız kaynağı dağıtabilir (örneğin, herkese açık S3 kovaları veya açık güvenlik grupları). Kodda sorunları düzeltmek daha ucuz, daha hızlıdır ve bunların üretime ulaşmasını tamamen önler.

3. IaC güvenliği nasıl çalışır?

IaC güvenlik araçları, depo veya CI/CD hattınızdaki yapılandırma dosyalarını tarar ve aşağıdaki gibi riskli ayarları arar:

  • Herkese açık depolama
  • Açık portlar (SSH/RDP üzerinde 0.0.0.0/0)
  • Devre dışı bırakılmış şifreleme
  • Aşırı izinli IAM rolleri

Bir sorun tespit ederlerse, bunu işaretler, derlemeyi başarısız kılar (eğer yapılandırılmışsa) veya düzeltme önerileriyle bir bilet açar.

4. IaC güvenliği ile CSPM arasındaki fark nedir?

  • IaC güvenliği, dağıtılmak üzere olanı (kodunuzu) kontrol eder.
  • CSPM, bulutta zaten çalışmakta olanı kontrol eder.

IaC güvenliği önleyici, CSPM ise dedektif/iyileştiricidir. Her ikisini kullanmak uçtan uca kapsama sağlar.

5. IaC güvenliği ne zaman uygulanmalıdır?

Geliştirme yaşam döngüsünün mümkün olan en erken aşamasında:

  • Geliştirici makinelerinde (ön taahhüt kancaları)
  • Çekme isteklerinde (PR kontrolleri)
  • CI/CD hatlarında (derleme ve dağıtım aşamaları)

Sorunları ne kadar erken yakalarsanız, düzeltmek o kadar az maliyetli olur.

Sonraki Adımlar

Uygulamalarınızı güvence altına almaya hazır mısınız? İleriye doğru yolunuzu seçin.

Plexicus ile uygulamalarını güvence altına alan 500+ şirkete katılın

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready