Bulut ortamında sanal makinelerinize erişim sağlamak, her zaman güvenlik ekipleri için ciddi bir ikilem oluşturmuştur. Bir tarafta operasyonel verimlilik, diğer tarafta saldırı yüzeyini genişletme riski. Geleneksel yöntemlerde sunuculara RDP veya SSH ile bağlanmak için public IP adresi atamak zorundasınız ve bu durum makinenizi doğrudan internete açık hale getirir. Port taramaları, brute-force saldırıları ve credential stuffing gibi tehditlere sizi maruz bırakır. İşte Azure Bastion tam da bu problemi köklü biçimde çözmek için tasarlandı.
Azure Bastion Nedir?
Azure Bastion, Microsoft’un sunduğu tam yönetimli (fully managed) bir PaaS hizmetidir. Sanal makinelerinize doğrudan Azure Portal üzerinden, tarayıcı tabanlı RDP ve SSH bağlantısı kurmanıza olanak tanır. En önemli özelliği şudur: VM’lerinize public IP adresi atamanıza hiç gerek kalmaz. Bastion hizmeti sanal ağınızın özel bir alt ağında (AzureBastionSubnet) konuşlanır ve tüm bağlantıları TLS üzerinden güvenli biçimde yönlendirir.
Geleneksel bir jump box veya VPN gateway çözümüyle karşılaştırdığınızda fark çok belirgindir. Jump box kullanıyorsanız o sunucuyu da yönetmeniz, yama uygulamanız ve güvenli tutmanız gerekir. VPN kurulumu ise hem maliyetli hem de yapılandırması karmaşık olabilir, özellikle farklı lokasyonlardaki ekipler için. Bastion bu karmaşıklığı ortadan kaldırır çünkü altyapı tamamen Microsoft tarafından yönetilir.
Mimari Yapı ve Kurulum
Azure Bastion’ı devreye almak için öncelikle sanal ağınızda AzureBastionSubnet adında bir alt ağ oluşturmanız gerekir. Bu alt ağ en az /26 boyutunda olmalıdır (64 IP adresi). Bastion kaynağı bu alt ağa deploy edildiğinde, aynı sanal ağdaki veya peered (eşlenmiş) ağlardaki tüm VM’lere erişim sağlayabilirsiniz.
Bağlantı akışı şu şekilde çalışır: Kullanıcı Azure Portal’da VM’in blade’ine gider, “Connect” butonuna tıklar ve Bastion seçeneğini seçer. Portal tarayıcı içinde HTML5 tabanlı bir RDP/SSH oturumu başlatır. Tüm trafik 443 portu üzerinden TLS ile şifrelenir. Kurumsal güvenlik duvarları genellikle 443 portuna izin verdiği için ek firewall kuralları tanımlamanıza da gerek kalmaz.
Desteklenen Bağlantı Yöntemleri
Bastion yalnızca portal üzerinden tarayıcı bağlantısıyla sınırlı değildir. Standard SKU kullandığınızda yerel RDP/SSH istemcinizi de kullanabilirsiniz. Bu özellik özellikle dosya transferi yapmanız gereken durumlarda veya mevcut araçlarınızı (PuTTY, Windows Terminal) bırakmak istemediğiniz senaryolarda çok işe yarar. Ayrıca Azure CLI üzerinden az network bastion ssh ve az network bastion rdp komutlarıyla da bağlantı kurabilirsiniz.
SKU Karşılaştırması: Basic ve Standard
Azure Bastion iki farklı SKU seviyesinde sunulur ve doğru seçim iş yükünüze bağlıdır.
Basic SKU: Küçük ve orta ölçekli ortamlar için uygundur. Tarayıcı tabanlı RDP/SSH bağlantısı, AzureBastionSubnet desteği ve iki eş zamanlı bağlantı kapasitesi sunar. Aylık maliyeti yaklaşık 140 USD civarındadır (bölgeye göre değişiklik gösterir).
Standard SKU: Kurumsal ortamlar için tasarlanmıştır. Basic’in tüm özelliklerine ek olarak yerel istemci desteği, host scaling (50’ye kadar eş zamanlı bağlantı), IP-based connection, shareable link ve Kerberos kimlik doğrulama desteği sunar. Aylık bazda yaklaşık 330 USD’den başlar ancak instance sayısına göre ölçeklenir.
Müşterilerimizin deneyimlerine göre eğer 10’dan fazla VM’i olan bir ortamınız varsa doğrudan Standard SKU ile başlamanızı öneririz. Basic’ten Standard’a geçiş mümkündür ancak tersi yapılamaz.
Güvenlik Avantajları
Azure Bastion’ın sağladığı güvenlik katmanlarını tek tek inceleyelim:
Public IP gereksizliği: VM’leriniz internete doğrudan açık olmadığı için port taraması ve DDoS saldırılarına karşı korunaklı hale gelir. Bu, özellikle PCI-DSS ve KVKK gibi uyumluluk gereksinimlerini karşılamanız gereken ortamlarda büyük avantaj sağlar.
Sıfır güven (Zero Trust) uyumluluğu: Bastion, her bağlantı için kimlik doğrulaması gerektirir. Azure Active Directory entegrasyonu ve koşullu erişim (Conditional Access) politikalarıyla birleştiğinde, yalnızca doğru kimlik bilgilerine sahip, doğru cihazdan, doğru konumdan bağlanan kullanıcılar erişim sağlayabilir.
Session kaydı ve denetim: Tüm Bastion oturumları Azure Activity Log’da kaydedilir. Kim, ne zaman, hangi VM’e bağlandı bilgisi merkezi olarak takip edilebilir. Bu özellik, güvenlik denetimlerinde ve olay müdahalesinde (incident response) kritik önem taşır.
NSG ile katmanlı güvenlik: AzureBastionSubnet üzerinde Network Security Group kuralları tanımlayarak ek güvenlik katmanı ekleyebilirsiniz. Örneğin, yalnızca belirli IP aralıklarından Bastion’a erişimi kısıtlayabilirsiniz.
Gerçek Dünya Uygulama Senaryoları
Bir finans kurumu düşünün: Üretim ortamındaki veritabanı sunucularına erişim talep eden DBA ekibi var. Geleneksel yöntemle ya VPN bağlantısı kurulur ya da jump box üzerinden geçilir. VPN lisansları pahalıdır ve yönetimi karmaşık. Jump box’ın kendisi bir güvenlik açığı oluşturur. Azure Bastion ile DBA ekibi Azure Portal’a giriş yapar, MFA ile kimlik doğrulaması geçer ve doğrudan tarayıcıdan veritabanı sunucusuna SSH bağlantısı kurar. Tüm bu süreç loglanır ve denetlenebilir.
Bir başka yaygın senaryo: Uzaktan çalışan geliştirici ekiplerinin test ortamlarına erişimi. Geliştiricilerin kişisel bilgisayarlarına kurumsal VPN kurmak yerine, Bastion üzerinden web tarayıcısıyla erişim çok daha pratik ve güvenlidir. Conditional Access ile yalnızca şirket tarafından onaylı cihazlardan erişime izin verebilirsiniz.
Maliyet Optimizasyonu İpuçları
Azure Bastion saatlik olarak ücretlendirilir ve veri transferi maliyeti de buna eklenir. Maliyeti optimize etmek için birkaç strateji uygulayabilirsiniz. Birincisi, eğer yoğun kullanmadığınız saatler varsa Bastion kaynağını silip ihtiyaç duyduğunuzda yeniden oluşturabilirsiniz. Azure CLI ile bu işlem otomatize edilebilir. Ancak bu yalnızca geliştirme ve test ortamları için mantıklıdır, üretim ortamlarında sürekli erişilebilirlik şarttır. İkincisi, hub-spoke mimarisinde merkezi bir Bastion dağıtımı yaparak birden fazla spoke ağındaki VM’lere tek bir Bastion üzerinden erişim sağlayabilirsiniz. Bu sayede her sanal ağ için ayrı Bastion kaynağı oluşturmaya gerek kalmaz.
En İyi Uygulamalar
Bastion dağıtımında dikkat etmeniz gereken noktaları şöyle özetleyebiliriz: AzureBastionSubnet boyutunu en az /26 olarak planlayın, gelecekte ölçekleme yapmanız gerekebilir. Diagnostic logging’i mutlaka etkinleştirin ve logları Log Analytics workspace’e gönderin. Azure Policy ile tüm VM’lerin Bastion üzerinden erişilmesini zorunlu kılın ve doğrudan public IP atamasını engelleyin. Son olarak, periyodik erişim gözden geçirmeleri (access review) yaparak kimin hangi VM’lere erişebildiğini düzenli olarak denetleyin.
Azure Bastion ve Alternatif Çözümlerin Karşılaştırması
Sanal makinelere uzaktan erişim sağlamak için birden fazla yöntem mevcuttur ve her birinin avantajları ile dezavantajları vardır. Doğru yöntem seçimi güvenlik gereksinimlerinize, bütçenize ve operasyonel ihtiyaçlarınıza bağlıdır.
Public IP ile doğrudan erişim en basit yöntemdir ancak güvenlik açısından en riskli olandır. VM’nize atanan public IP üzerinden RDP (3389) veya SSH (22) portları açılır. Bu portlar sürekli internete açık olduğu için brute-force saldırılarına, port taramalarına ve bilinen protokol zafiyetlerinin istismarına maruz kalır. NSG kurallarıyla belirli IP adreslerinden erişimi kısıtlasanız bile dinamik IP kullanan çalışanlar için bu yönetimi sürdürmek pratik değildir. Kesinlikle üretim ortamlarında kullanılmamalıdır.
VPN Gateway daha güvenli bir seçenektir. Site-to-Site VPN ile kurumsal ağınız Azure VNet’e tünel üzerinden bağlanır veya Point-to-Site VPN ile bireysel kullanıcılar bağlantı kurar. VPN Gateway güvenli bir şifreli kanal sağlar ve VM’lere public IP atanmasına gerek kalmaz. Ancak dezavantajları vardır: VPN Gateway’in kendisi saatlik maliyete sahiptir, istemci yazılımı kurulumu gerektirir, yapılandırması karmaşıktır ve farklı işletim sistemleri için uyumluluk sorunları yaşanabilir. Özellikle macOS ve Linux kullanıcıları için Point-to-Site VPN ayarları zaman zaman sorunlu olabilir.
Jump Box (Bastion Host) yaklaşımında, Azure VNet içinde bir aracı sanal makine oluşturulur. Kullanıcılar önce bu jump box’a bağlanır, oradan iç ağdaki diğer VM’lere erişir. Bu yöntem merkezi erişim kontrolü sağlar ancak jump box’ın kendisi bir saldırı hedefi haline gelir. İşletim sistemi güncellemelerini, güvenlik yamalarını ve anti-malware yazılımını yönetmeniz gerekir. Ayrıca jump box’ın yüksek erişilebilirliğini sağlamak için birden fazla instance çalıştırmanız gerekebilir ki bu da maliyeti artırır.
Azure Bastion ise bu üç yöntemin dezavantajlarını ortadan kaldırır. PaaS olduğu için yama ve güncelleme yönetimi gerekmez. İstemci yazılımı gerektirmez. Public IP atamasına gerek yoktur. Tüm bağlantılar TLS üzerinden şifrelenir ve 443 portu üzerinden geçer. Dezavantajı maliyetidir: Basic SKU aylık yaklaşık 140 USD’dir ve bu tutar düşük kullanım senaryolarında VPN Gateway’den daha pahalı olabilir. Ancak yönetim kolaylığı ve güvenlik avantajları bu maliyeti çoğu kurumsal ortamda haklı kılar.
Adım Adım Azure Bastion Kurulumu
Azure Portal üzerinden Bastion kurmak oldukça basittir. İlk adım olarak hedef sanal ağınızda AzureBastionSubnet adında bir alt ağ oluşturun. Bu isim zorunludur ve farklı bir isim kullanamazsınız. Alt ağ boyutu en az /26 olmalıdır, daha büyük ortamlar için /25 veya /24 önerilir. Azure Portal’da “Bastions” hizmetine gidin, “Create” butonuna tıklayın. Kaynak grubu, bölge ve sanal ağ seçimini yapın. SKU olarak Basic veya Standard’ı seçin. Standard SKU seçtiyseniz instance sayısını belirleyin. Public IP adresi oluşturun veya mevcut birini atayın. Bu IP adresi Bastion’un kendisine aittir, VM’lere değil.
Kurulum tamamlandıktan sonra herhangi bir VM’in blade’ine gidin. Sol menüden “Connect” seçIn ve “Bastion” tabını tıklayın. Kullanıcı adı ve şifrenizi girin veya SSH private key yükleyin. Tarayıcınızda yeni bir sekmede RDP veya SSH oturumu başlar. Bağlantı tamamen tarayıcı içinde çalışır ve ek yazılım kurulumu gerektirmez.
Azure CLI ile kurulum yapmak istiyorsanız şu komutları kullanabilirsiniz:
az network vnet subnet create --name AzureBastionSubnet --resource-group myRG --vnet-name myVNet --address-prefix 10.0.1.0/26
az network public-ip create --name myBastionPIP --resource-group myRG --sku Standard --location eastus
az network bastion create --name myBastion --resource-group myRG --vnet-name myVNet --public-ip-address myBastionPIP --sku Standard
Sıkça Sorulan Sorular
Bastion üzerinden dosya transferi yapılabilir mi? Standard SKU ile yerel istemci bağlantısı kullanıldığında evet, dosya transferi mümkündür. Basic SKU’daki tarayıcı tabanlı bağlantıda pano (clipboard) üzerinden metin kopyalama yapılabilir ancak dosya transferi sınırlıdır.
Bastion birden fazla sanal ağı destekler mi? Evet, VNet peering ile eşlenmiş ağlardaki VM’lere de Bastion üzerinden erişebilirsiniz. Hub-spoke mimarisinde hub VNet’e tek bir Bastion deployment yaparak tüm spoke ağlarına erişim sağlayabilirsiniz.
Bastion’un SLA’sı nedir? Azure Bastion yüzde 99,95 kullanılabilirlik SLA’sı sunar. Availability Zone dağıtımı yapıldığında bu oran daha da yükselir. Kritik ortamlar için zone-redundant deployment önerilir.
Eş zamanlı bağlantı limiti nedir? Basic SKU’da 2, Standard SKU’da ise instance başına 25 eş zamanlı bağlantı desteklenir. Standard SKU 2-50 instance arasında ölçeklenebildiğinden maksimum 1250 eş zamanlı bağlantıya kadar çıkılabilir.
Gerçek Hayat Vakası: Finans Sektörü Uygulaması
Bir müşterimiz olan orta ölçekli bir finans kuruluşu, Azure ortamındaki 45 VM’ye erişim için daha önce Site-to-Site VPN kullanıyordu. VPN tünelinin kesilmesi durumunda operasyonlar duruyordu ve acil müdahale gerekiyordu. Ayrıca uzaktan çalışan personel için Point-to-Site VPN kurulumu her cihaz için ayrı ayrı yapılması gereken zahmetli bir süreçti. Bastion’a geçiş sonrasında VPN bağımlılığı ortadan kalktı, personel tarayıcı üzerinden saniyeler içinde VM’lere bağlanabiliyor hale geldi. Conditional Access politikalarıyla MFA zorunlu kılındı ve tüm oturumlar denetim loglarına düştü. PCI-DSS denetiminde bu yapının uyumluluğu sorunsuz biçimde kanıtlandı.
Sonuç
Azure Bastion, bulut altyapınızdaki sanal makinelere güvenli erişim sağlamanın en temiz ve en yönetilebilir yoludur. Public IP’leri ortadan kaldırarak saldırı yüzeyinizi daraltır, merkezi denetim ve loglama ile uyumluluk gereksinimlerinizi karşılar, kullanıcılarınız için ise tarayıcı tabanlı sade bir deneyim sunar.
Cloudspark olarak Azure altyapı güvenliği konusunda uzman ekibimizle Bastion kurulumu ve yapılandırması dahil tüm güvenli erişim çözümlerinde yanınızdayız.



