AWS VPC Yapılandırması: Alt Ağlar ve Güvenlik Grupları ile Ağ Güvenliğini Derinlemesine Anlama
Sanal Özel Bulut (VPC) oluşturmanın temel taşları olan alt ağlar (subnets) ve güvenlik grupları (security groups), AWS üzerinde izole ve güvenli ağ ortamları tasarlamanın kritik bileşenleridir. Bu yapılandırmalar, sanal sunucularınızın (EC2 instances) ve diğer AWS kaynaklarınızın ağ erişimini hassas bir şekilde kontrol etmenizi sağlar. Alt ağlar, VPC'nizi daha küçük, yönetilebilir IP adresi aralıklarına bölerek ağ trafiğini segmentlere ayırmanıza olanak tanır. Güvenlik grupları ise, bir alt ağdaki veya tek bir EC2 örneğindeki kaynaklar için sanal güvenlik duvarı görevi görerek gelen ve giden trafiği durum bilgisiyle (stateful) filtreler.
Alt Ağların Rolü ve Tasarım Prensipleri
VPC'nizdeki her alt ağ, belirli bir Erişilebilirlik Alanına (Availability Zone - AZ) atanır. Bu, yüksek erişilebilirlik (High Availability - HA) ve olağanüstü durum kurtarma (Disaster Recovery - DR) stratejilerinizin temelini oluşturur. Bir VPC içinde birden fazla alt ağ oluşturmak, kaynaklarınızı farklı AZ'lere dağıtarak tek bir AZ'de yaşanabilecek kesintilere karşı dayanıklılık sağlar.
Alt ağları tasarlarken dikkat edilmesi gereken temel noktalar şunlardır:
- IP Adresi Yönetimi: Alt ağ CIDR blokları, VPC CIDR bloğundan türetilmelidir. AWS, her alt ağ için belirli sayıda IP adresini rezerve eder (genellikle ilk 4 ve son IP adresi). Bu nedenle, alt ağ boyutunu (maskeyi) belirlerken gelecekteki büyüme ihtiyaçlarını göz önünde bulundurun. Örneğin, bir üretim web sunucusu alt ağı için
/24CIDR bloğu, 251 kullanılabilir IP adresi sunarken, bir test ortamı için/27(30 kullanılabilir IP) yeterli olabilir. - Genel ve Özel Alt Ağlar: Genel alt ağlar (public subnets), internet ağ geçidine (Internet Gateway) bağlıdır ve bu alt ağlardaki örneklere genel IP adresleri atanabilir. Özel alt ağlar (private subnets) ise doğrudan internet erişimine sahip değildir; erişim genellikle NAT Gateway veya NAT Instance aracılığıyla sağlanır. Hassas veritabanları veya arka uç servisleri genellikle özel alt ağlarda barındırılır.
- Yönlendirme Tabloları (Route Tables): Her alt ağ, bir yönlendirme tablosuyla ilişkilendirilir. Bu tablolar, alt ağınızdaki trafiğin nereye yönlendirileceğini belirler. Örneğin, özel bir alt ağdaki trafiği bir NAT Gateway'e yönlendirmek için yönlendirme tablosunda bir kural tanımlarsınız.
Güvenlik Grupları: Kapsamlı Ağ Erişimi Kontrolü
Güvenlik grupları, örneklerinizin ağ trafiğini filtrelemek için kullanılır. Her güvenlik grubu, bir veya daha fazla güvenlik kuralı koleksiyonudur. Bu kurallar, hangi protokollerin (TCP, UDP, ICMP), portların ve kaynak/hedef IP adreslerinin/aralıklarının örneklere veya örneklerden trafiğe izin verildiğini veya reddedildiğini belirtir. Güvenlik grupları stateful'dır, yani gelen bir isteğe verilen yanıt trafiğine otomatik olarak izin verirler.
Güvenlik grupları için en iyi uygulamalar şunlardır:
- En Az Ayrıcalık Prensibi: Yalnızca gerekli olan trafiğe izin verin. Örneğin, bir web sunucusu için yalnızca TCP port 80 (HTTP) ve 443 (HTTPS) trafiğine izin verin.
- Kaynak Olarak Güvenlik Gruplarını Kullanma: Güvenlik grupları arasında izin vermek için IP adresleri yerine başka güvenlik gruplarını referans gösterebilirsiniz. Bu, özellikle farklı katmanlardaki (web, uygulama, veritabanı) sunucular arasındaki iletişimi yönetirken esneklik sağlar.
- Kısıtlı Gelen Kurallar: Genel erişim gerektirmeyen örneklere (örneğin, veritabanı sunucuları) gelen trafiği yalnızca belirli IP aralıklarından (örneğin, uygulama sunucularının çalıştığı güvenlik grubundan veya belirli bir şirket içi IP bloğundan) kabul edin.
- Varsayılan Reddetme (Deny All): Güvenlik grupları varsayılan olarak tüm trafiği reddeder. Yalnızca izin verilen kuralları eklemeniz yeterlidir.
Gerçek Production Senaryosu: Üç Katmanlı Web Uygulaması Mimarisi
Bir e-ticaret platformu için üç katmanlı (web, uygulama, veritabanı) bir mimariyi ele alalım. Bu mimari, VPC içinde aşağıdaki gibi yapılandırılabilir:
- VPC CIDR:
10.0.0.0/16 - Genel Alt Ağ (Web Katmanı):
10.0.1.0/24(AZ-a). Bu alt ağda bulunan EC2 örnekleri, genel internetten gelen HTTP/HTTPS trafiğini kabul eder. - Özel Alt Ağ (Uygulama Katmanı):
10.0.2.0/24(AZ-a) ve10.0.3.0/24(AZ-b). Bu alt ağlardaki sunucular, doğrudan internete erişemez ancak genel alt ağdan gelen trafiği işler. - Özel Alt Ağ (Veritabanı Katmanı):
10.0.4.0/24(AZ-a) ve10.0.5.0/24(AZ-b). Bu alt ağdaki RDS örnekleri veya EC2 üzerindeki veritabanları yalnızca uygulama katmanından gelen TCP port 3306 (MySQL) trafiğini kabul eder.
Güvenlik Grupları:
- Web Sunucusu Güvenlik Grubu (SG-Web): Gelen TCP port 80 ve 443 trafiğini
0.0.0.0/0(tüm IPv4 adresleri) kaynağından kabul eder. Giden trafiğe izin verir. - Uygulama Sunucusu Güvenlik Grubu (SG-App): Gelen TCP trafiğini yalnızca
SG-Webgüvenlik grubundan ve ilgili uygulama portlarından kabul eder. Giden trafiği veritabanı portundan (örneğin 3306)SG-DBgüvenlik grubuna izin verir. - Veritabanı Sunucusu Güvenlik Grubu (SG-DB): Gelen TCP port 3306 trafiğini yalnızca
SG-Appgüvenlik grubundan kabul eder. Giden trafiğe izin verir (veya kısıtlar).
Bu yapılandırmada, web sunucuları internetten gelen isteklere yanıt verir, bu istekleri uygulama sunucularına iletir ve uygulama sunucuları da veritabanı sunucularından veri çeker. Her katman, yalnızca kendi işlevi için gerekli olan ağ erişimine sahiptir. Bir güvenlik ihlali durumunda, saldırganın veritabanı katmanına doğrudan erişim sağlaması engellenmiş olur.
Teknik Detaylar ve En İyi Uygulamalar
Alt ağları ve güvenlik gruplarını yapılandırırken aşağıdaki teknik detaylar önemlidir:
- Ağ ACL'leri (Network Access Control Lists - NACLs): Güvenlik gruplarına ek olarak, alt ağ düzeyinde de durum bilgisi olmayan (stateless) erişim kontrolü sağlarlar. NACL'ler, güvenlik gruplarından daha geniş bir kapsamda trafik filtrelemesi yapar ve genellikle ek bir güvenlik katmanı olarak kullanılır. Örneğin, belirli bir IP aralığından gelen zararlı trafiği alt ağ düzeyinde engellemek için NACL'ler kullanılabilir.
- VPC Akış Günlükleri (VPC Flow Logs): Ağ trafiğini izlemek için VPC Akış Günlüklerini etkinleştirmek, güvenlik sorunlarını tespit etmek ve ağ davranışını analiz etmek için kritik öneme sahiptir. Bu günlükler, IP trafiğinin kaynağını, hedefini, portları ve protokolleri kaydeder.
- NAT Gateway ve NAT Instance: Özel alt ağlardaki örneklerin internete çıkış yapabilmesi için NAT Gateway (yönetilen servis) veya NAT Instance (kendi yönettiğiniz EC2 örneği) kullanılır. NAT Gateway, yüksek erişilebilirlik ve ölçeklenebilirlik sunar.
- VPC Uç Noktaları (VPC Endpoints): AWS servislerine (örneğin, S3, DynamoDB) özel ağınız üzerinden, internete çıkmadan erişim sağlamak için VPC Uç Noktaları kullanmak, güvenlik ve performansı artırır.
Sonuç olarak, AWS VPC'de alt ağları ve güvenlik gruplarını doğru bir şekilde yapılandırmak, bulut ortamınızın güvenliğini, izolasyonunu ve performansını optimize etmenin temelidir. Bu bileşenleri stratejik olarak tasarlamak, üretim ortamlarınızda karşılaşabileceğiniz karmaşık ağ gereksinimlerini karşılamanın anahtarıdır.