Azure SQL Firewall yapılandırılması
Azure SQL Veritabanı güvenlik duvarı, hangi IP adreslerinin Azure SQL Sunucunuza veya Azure SQL veritabanınıza erişimi olup olamayacağına karar vermenizi sağlar. Azure SQL Veritabanı oluştururken Azure SQL Veritabanı güvenlik duvarı yapılandırılmamış olarak gelmektedir.
Azure SQL Veritabanı üzerinde iki şekilde güvenlik duvarı yapılandırması yapabilirsiniz.
- Sunucu seviyesinde
- Veritabanı seviyesinde
Temel de aslında birinci yöntemi yapmazsanız ikinci yöntemi uygulayamazsınız. Buradan aslında şunu anlıyoruz, Azure SQL Veritabanı sunucusunu oluşturan kişi tum sunucu üzerindeki yetkili ve tüm veritabanlarına erişebiliyorken daha sonrasında veritabanlarına erişimlerde bir IP Sınırlaması ile veritabanına izin veriyor olabilirsiniz.
Sunucu seviyesinde Güvenlik duvarı yapılandırması
Powershell ile Azure SQL Veritabanı kurulumunu ile daha önce bir Azure SQL Veritabanı sunucusu ve Azure SQL Veritabanı kurulumları gerçekleştirmiştik. Buradaki kaynaklarımızı kullanarak konu anlatımına devam ediyorum. Azure Portal üzerine giriş yaptıktan sonra resource grup içerisinde yer alan Azure SQL Veritabanı sunucusuna geliyoruz ve sol menüde yer alan Security’nin altında yer alan Firewall and virtual networks seçiyoruz. – Sağ tarafta bulunan “show firewall settings” kısımı da aynı yere getirir bizleri-
Resim-1
Resim-2 de göreceğiniz ekran üzerinde Add Client IP yazan yere tıklıyoruz ve bizim client IP adresi bilgimizi Rule kısımına ekliyor ve yukarıdan kaydediyoruz.
Resim-2
Yada Azure portal’a giriş yapmadan elimizde olan Azure SQL Veritabanı Sunucusunun servername bilgisi ile SSMS üzerinden bağlantı kurabiliriz. ServerName bilgisi Resim-1 de “Show Firewall settings” altında görülmektedir.
Resim-3
Login bilgisinde Azure SQL Veritabanı sunucusu için kurulumda tanımladığımız Server Admin kullanıcısı ile giriş yapıyor olacağız. Şifre bilgisi ise Azure SQL Veritabanı sunucunun kurarken tanımlamış olduğunuz hesabın şifresidir. Doğru bilgiler ile connect olduğuzda bizden Azure Portal’a login olmamızı isteyecektir.
Resim-4
Login işlemini tamamladıktan sonra Client IP bilgisinin kendisi yazacak ve sizden sadece onaylamanızı isteyecektir.
Resim-5
Azure SQL Güvenlik duvarının yapılandırmasını tamamladık ve Azure SQL veritabanı sunucusu seviyesinde bir IP tanımlaması gerçekleştirdik. Artık bu tanımladığımız IP bazında tüm veritabanlarına erişebiliyor olacağız.
Resim-6
İkinci yöntem olan Veritabanı seviyesinde Güvenlik duvarı yapılandırmasına geçmeden önce Server seviyesinde yapılandırmasını yaptığımız işlemleri TSQL, Powershell yada Rest API ile de gerçekleştirebileceğimizi bilmenizi isterim.
TSQL kullanarak Server seviyesinde güvenlik duvarına bir IP tanımlaması yapacaksak eğer aşağıdaki komutu kullanabiliriz.
EXECUTE sp_set_firewall_rule N’dmcdemo-sqlserver-guvenlik-duvari-yapilandirma’,’168.0.0.2′,’168.0.0.2′;
Gerçekleştirdiğimiz tanımlamayı görüntülemek için ise aşağıdaki sorguyu kullanabiliriz.
select * from sys.firewall_rules
Server seviyesinde tanımladığımız güvenlik duvarı kuralını kaldırmak için ise aşağıdaki komutu kullanabiliriz.
EXECUTE sp_delete_database_firewall_rule N’dmcdemo-sqlserver-guvenlik-duvari-yapilandirma’;
Veritabanı seviyesinde Güvenlik duvarı yapılandırması
Sunucu seviyesi kurallarından farklı olarak, veritabanı seviyesi kuralları ilgili veri tabanında saklanır. Sunucusu seviyesinde Azure Portal, Powershell yada Rest API ile Güvenlik duvarının yapılandırmasını yaparken veritabanı seviyesinde yapılandırmayı sadece TSQL kullanarak yapabilirsiniz.
Veritabanı seviyesinde güvenlik duvarı yapılandırmasını gerçekleştirmeniz, istemcilerin ihtiyaç duymadıkları veritabanına erişememelerini sağlayarak güvenliği artırır ve ayrıca yapılandırma veritabanı içerisinde yer almasından ötürü veritabanlarının taşınmasınıda kolaylaştırır.
Mevcutta veritabanı seviyesinde bir güvenlik yapılandırılması olup olmadığını kontrol etmek için aşağıdaki sorguyu kullanabilirsiniz. Sorguyu çalıştırmadan önce işlem yapmak istediğiniz veritabanını seçmeyi unutmayınız!
select * from sys.database_firewall_rules
Veritabanı seviyesinde güvenlik duvarı tanımlaması yapmak için aşağıdaki sorguyu kullanabilirsiniz.
EXEC sp_set_database_firewall_rule
@name = N’dmcdemo_db_firewall_1′,
@start_ip_address = ‘3.236.5.227’,
@end_ip_address = ‘3.236.5.227’
Tanımladığınız kuralın geçerli olması 5 dakika kadar sürebilir.
Veritabanı seviyesinde tanımladığınız bir güvenlik duvarı kuralını silmek için ise aşağıdaki komutu kullanabilirsiniz.
EXECUTE sp_delete_database_firewall_rule N’dmcdemo_db_firewall_1′;
Azure’dan erişimlere izin verme
Azure’dan Azure SQL Sunucunuza bağlantıya izin vermek için Azure hizmetlerine erişim izni ver seçeneğinin açık olarak ayarlanması gerekir. Fakat bu işlemin farklı bir Azure abonesinin sizin kaynağınıza erişebilir olacağının da unutmamalısınız! Dolayısıyla, SQL Server’ınızdaki izinleri yapılandırmak çok önemlidir.
Resim-7
Azure SQL Veritabanı Güvenlik yapılandırılması nasıl çalışır?
Azure veya İnternet’ten herhangi bir bağlantı girişimi güvenlik duvarı tarafından karşılanacaktır.
- Veritabanı seviyesinde ki kurallar çalıştırılacaktır. Eğer ki veritabanı seviyesinde tanımlı bir güvenlik kuralı var ise bağlantı başarılı olacaktır. Aksi taktirde bağlantı başarısız olacaktır.
- Sunucu seviyesindeki kurallar çalıştırılacaktır. Birinci adımın başarısız olma durumunda devreye girecektir. Bağlantı talebi eğer tanımlı kurallar içerisinde var ise bağlantı başarılı olacak aksi taktirde bağlantı red edilecektir.
Bu konu hakkında hemen bir örnek yapalım. Sunucu seviyesinde tanımlı olan güvenlik kurallarını temizledim.
Resim-8
Resim8 de gördüğünüz üzere herhangi bir IP bilgisi tanımlı değil, fakat veritabanı seyesinde güvenlik kuralını yazı içerisinded anlattığımız şekilde tanımlamıştık. SQL Server Management Studio ile bağlantı veritabanı seviyesinde bağlantı yapalım. Bunun için “Connect to Server” ekranında yer alan Options’a tıklıyoruz ve “Connection Properties” kısımında Connect To database bölümüne veritabanı ismi olan “dmcdbpshell” yazıyoruz.
Resim-9
Giriş bilgilerimizi de yazdıktan sonra connect oluyoruz.
Resim-10
Azure SQL Firewall yapılandırmasının nasıl yapılması gerektiğini, güvenlik kurallarının nasıl çalıştığını anlatarak bu yazımı da burada bitiriyoruz. Önümüzdeki yazılarda görüşmek üzere.
Hepinize DATA’lı günler dilerim.
Çağlar Özenç
DMC Bilgi Teknolojileri