İlk yazımız tamamen giriş seviyesinde olup Private Link neden ve ne için kullanabileceğimizden ve demo ortamımızın nasıl olduğundan bahsetmeye çalıştık. Artık Private Link hizmetinin Azure Portal üzerinden nasıl ve ne tür detayları var biraz derinlemesine bakmaya çalışalım. Bildiğimiz gibi Azure üzerine kaynak dağıtmanın bir çok yöntemi var, Powershell, Azure Resource Manager, CI/CD. Bu yazı boyunca, tamamen Azure Portal üzerinden yapılandırmaları gerçekleştireceğiz.
Azure Portal’ın da Blade üzerine gelip, ‘Private Link‘ olarak arama yaptığınız zaman karşınıza ‘Preview’ damgası olan ‘Private Link‘ hizmeti karşınıza çıkacak. Tıkladığınız zaman ise aşağıdaki resimdeki gibi ‘Private Link Center’ adında bir ekran göreceksiniz. Bu ekran bize kullanmaya başlamamız için bir takım açıklamalar ve kolay ekranlar sunmuş.
Resim içerisinde gördüğünüz gibi ‘Private Link Center’ bize üç adet farklı başlangıç noktası sunuyor ve aslında bunlar neler yapabileceğinizi özetliyor. Bu yazı içerisinde üçüncü seçeneğinin detaylarına değinmiyor olacağız özellikle birinci ve ikinci seçenek bizim ilgilendiğimiz alanlar olacak. İlk seçenekte bize abonelik içerisinde mevcut olan bir resource özelinde nasıl private link hizmetini kullanbileceğimizden bahsediyor. İkinci seçenek ise, size kolaylık sağlanması için basit bir başlangıç noktası olması adına Private Link tarafından desteklenen PaaS hizmetini oluşturup, daha sonra Private Link servisinin yapılandırılması için gerekli adımların yapılması için size yol göstermektedir. Üçüncü seçenek, bu yazı içerisinde değinmeyeceğiz ama şu şekilde özetliyebileceğimiz; Azure üzerinde büyük hizmet sağlayıcıları talepleri doğrultusunda farklı müşterleri (farklı Azure abonelikleri) ile private link hizmetini kullanabilirler. Bu konuyu Private
Link kendi içerisinde ‘Service Consumer ve Service Provider’ olarak iki açıdan değerlendiriyor. Bu kısımda kendi servislerini Private Link olarak açığa çıkartıp firmaların kullanması için bir takım ön gereksinimler bekleniyor. ( Load Balancer vs.)
Not: Private Link Microsoft’un azure sunduğu servisin adıdır. Bu servisi yapılandırırken Private Link Center kullanacağız. Private Link Center üzerine gelip sol tarafa baktığınız zaman farklı tanımlamalar göreceksiniz, bizim bu kısımda ilgileneceğimiz ‘Private Endpoint’ olacak. Private Endpoint en basit haliyle, desteklenen Azure PaaS hizmetlerine Virtual Network içerisinden güvenli bir şekilde erişmek istediğiniz zaman deploy etmek zorunda olduğunuz kaynak olarak düşenebilirsiniz. Her Private Endpoint kendi içerisinde bir adet PaaS/Provider servisine ve Network Interface bağlıdır.
Bir önceki yazımızda ne yapmak istediğimizi ve ne tür azure kaynaklarına sahip olduğumuzdan bahsetmiştik. Mevcut bir adet Azure SQL Database’in private link servisini kullanarak private endpoint tanımlaması yapacağız ve microsoft backbone network üzerinden ilgili kaynağa erişimini sağlayacağız. Şimdi Private Link Center bize sunmuş olduğu ilk başlangıç noktasına gidelim ve ‘Start’ butonuna basalım.
Private Endpoint oluşturma ekranına bizi yönlendirmiş bulunmakta, bu kısımda Azure SQL Database için bir adet Private Endpoint oluşturma işlemini gerçekleştireceğiz. Abonelik ve Resource Group detaylarını seçtikten sonra, Private Endpoint için bir isim belirledim, Bu Private endpoint B-Subscription içerisinde oluşturulacak, bu yüzden onu belirttik. Sonraki ekran içerisinde ise hangi Azure PaaS kaynağı ile eşleştireceğimizi göstereceğiz.
Yukarıdaki adımlar aslında çok açık bir şekilde bir hangi Azure PaaS kaynağı ile Private Endpoint tanımlaması yapacağımızı sormakta, daha önceden bahsetmiş olduğumuz demo ortamımız da bulunan Azure SQL Database seçiyorum. Resim üzerinde olan başka bir kısım daha var onada açıklık getirelim, ‘Connect to an Azure Resource by Resource Id or alias’ seçerseniz size Private Link kurmak istediğiniz servis için ResourceId bilgisi soracak. Farz edelim ki, başka bir abonelik içerisindeki Azure SQL Database Private Endpoint özelliği ile bağlanmak istiyorsunuz, bu başka bir servis olarak başka bir departman olabilir, ilgili kaynağın Id’sini yazdıktan sonra eğer Resource sahibi kişi onaylar ise aynı şekilde kendi Virtual Network’ünüz içerisinden erişme hakkınız size sağlanacak. Microsoft web sayfası üzerinden devamlı güncellenen ve desteklenen Private Endpoint olan servisleri göz gezdirmenizde fayda var.
Private Endpoint hangi Virtual Network üzernde oluşturulmasını gerektiğini seçtim ve bununla beraber bir adet Azure Private DNS hizmetini oluşturmasını istiyorum. Bu alan zorunlu değil fakat şu şekilde düşünelim, Azure SQL Database – Private Endpoint tanımlandıktan sonra seçmiş olduğunuz virtual network içerisinde bir adet internal ip adresi alacak fakat buna erişmeye çalışacak servisleriniz, ip üzerinden gitmek yerine dns adı ile gitmesi daha mantıklı olabilir. Bir önceki yazımızda domain controller hizmeti üzerindeki DNS hizmetinden faydalanabilirdim ama Domain Controller hizmeti bildiğiniz gibi, ‘A’– aboneliği içerisinde bu yüzden örnek olması adına bu private dns zone hizmetinin ‘B’–Aboneliği içerisinde dağıtılmasını istedim. Not: Virtual Network Peering olduğu için Domain Controller üzerindeki DNS hizmetinden faydalanabilirim, B-Aboneliğinde olsam bile fakat Private DNS sağladığı burada fayda her private endpoint tipine göre dns kayıtlarını otomatik bir biçimde yönetmesi. Bu kısımda karar tamamen sizlere kalmış, talep ederseniz, merkezi dns sunucuları üzerinden, private azure dns veya host dosyası bile olabilir. Özetle ihtiyacınıza göre şekillenebilir.
Deployment’ın son özet halini gördüğünüz gibi artık ‘Private Endpoint’ tanımlamasını dağıtabilir hale gelmek için ‘Create’ butonuna basmanız yeterli olacak. Daha öncede bahsettiğimiz gibi, her bir adet Private Endpoint’in Network Interface ve Private link resource vardır. Aşağıdaki resim içerisinde özetini görebilirsiniz.
Artık connectivity hakkında konuşmaya başlayabiliriz fakat öncesinde Private Endpoint ile gelen kaynakları tanıyalım. Aşağıda gördüğünüz resim Private endpoint hangi Azure PaaS servisi ile bağlantılı olduğu, hangi Virtual Network üzerinde hizmet verdiği, Virtual Network üzerinde bulunan Network Interface’ın detaylarını görebilirsiniz.
Gördüldüğü üzere Private Endpoint tanımlamasından sonra, Azure SQL Database hizmetinin Virtual Network içerisinde aldığı private ip görebiliyorsunuz. Bu private ip ile artık Azure SQL Database erişmeniz mümkün, isterseniz Azure Virtual Network üzerinden isterseniz, Site to Site VPN veya Express Route bağlantısı olan DataCenter üzerinden erişebilirsiniz. Şimdi erişimin ve isim çözülmesinin nasıl gerçekleştiğine bakalım.
Daha farklı bir detay olması için SQL Management kullanarak aşağıdaki SQL Query kullanarak mevcut yapılan erişimin, hangi ip üzerinden geldiğini anlamanız için ‘client_net_address’ colum üzerinden görebilirsiniz.
Doğrulamanız gereken adres görebildiğiniz gibi bir private ip adres. Sonuç olarak, Azure Private Link servisini kullanarak Azure üzerinde bulunan PaaS hizmetimize private bir ip adres üzerinden erişebildik. Daha farklı örnekleri merak ediyorsanız lütfen iletişime geçiniz.