Azure SQL Veritabanı'nda sunucular için sanal ağ hizmet uç noktalarını ve kuralları kullanma
Uygulama hedefi:
Azure SQL Veritabanı
Azure SYNAPSE Analizi
sanal ağ kuralları , veritabanınız için sunucunun ve Azure SQL Veritabanı veya Azure Synapse Analytics 'teki adanmış SQL havuzunuz (eskiden SQL DW) veritabanları için sanal ağlardaki belirli alt ağlardan gönderilen iletişimleri kabul edip etmediğini denetleyen bir güvenlik duvarı güvenlik özelliğidir. bu makalede, sanal ağ kurallarının neden bazen SQL Veritabanı ve Azure Synapse Analytics 'te veritabanınıza yönelik iletişime güvenle izin vermek için en iyi seçenektir.
Not
bu makale hem SQL Veritabanı hem de Azure Synapse Analytics için geçerlidir. kolaylık sağlaması için, veritabanı SQL Veritabanı ve Azure Synapse Analytics 'te her iki veritabanına de başvurur. benzer şekilde, sunucu başvuruları, SQL Veritabanı ve Azure Synapse Analytics 'i barındıran mantıksal SQL sunucusuna başvurur.
Bir sanal ağ kuralı oluşturmak için öncelikle kuralın başvurması için bir sanal ağ hizmet uç noktası olması gerekir.
Sanal ağ kuralı oluşturma
Yalnızca bir sanal ağ kuralı oluşturmak istiyorsanız, Bu makalenin ilerleyen kısımlarında yeralarak adımları ve açıklamayı atlayabilirsiniz.
Sanal ağ kuralları hakkında ayrıntılar
Bu bölümde, sanal ağ kurallarıyla ilgili çeşitli ayrıntılar açıklanmaktadır.
Yalnızca bir coğrafi bölge
Her sanal ağ hizmeti uç noktası yalnızca bir Azure bölgesi için geçerlidir. Uç nokta diğer bölgelerin alt ağdan iletişim kabul etmesine izin vermez.
Herhangi bir sanal ağ kuralı, temeldeki uç noktasının geçerli olduğu bölge ile sınırlıdır.
Sunucu düzeyi, veritabanı düzeyi değil
Her bir sanal ağ kuralı yalnızca sunucudaki belirli bir veritabanına değil, tüm sunucunuza uygulanır. Diğer bir deyişle, sanal ağ kuralları veritabanı düzeyinde değil, sunucu düzeyinde uygulanır.
Bunun aksine, IP kuralları her iki düzeyde de uygulanabilir.
Güvenlik yönetimi rolleri
Sanal ağ hizmet uç noktalarının yönetiminde güvenlik rollerinin bir ayrımı vardır. Aşağıdaki rollerden her biri için eylem gereklidir:
- Ağ Yöneticisi (ağ katılımcısı rolü): Uç noktasını açın.
- veritabanı yöneticisi (SQL Server katkıda bulunan rolü): Verilen alt ağı sunucuya eklemek için erişim denetim listesini (ACL) güncelleştirin.
Azure RBAC alternatifi
Ağ yöneticisinin ve veritabanı yöneticisinin rollerinin sanal ağ kurallarını yönetmek için gerekenden daha fazla özelliği vardır. Yalnızca kendi yeteneklerinin bir alt kümesi gereklidir.
Azure 'da rol tabanlı erişim denetimi (RBAC) kullanarak yalnızca gerekli özellik alt kümesini içeren tek bir özel rol oluşturabilirsiniz. Özel rol, ağ yöneticisi ya da veritabanı Yöneticisi dahil olmak yerine kullanılabilir. Özel bir role Kullanıcı eklerseniz, kullanıcıyı diğer iki ana yönetici rolüne ekleyerek güvenlik açıkağınızın yüzey alanı düşüktür.
Not
bazı durumlarda, SQL Veritabanı ve sanal ağ alt ağındaki veritabanı farklı aboneliklerde bulunur. Bu durumlarda, aşağıdaki yapılandırmalardan emin olmanız gerekir:
- her iki abonelik da aynı Azure Active Directory (Azure AD) kiracısında olmalıdır.
- Kullanıcı, hizmet uç noktalarını etkinleştirme ve verilen sunucuya bir sanal ağ alt ağı ekleme gibi işlemleri başlatmak için gerekli izinlere sahiptir.
- Her iki aboneliğin de Microsoft. SQL sağlayıcısı kayıtlı olmalıdır.
Sınırlamalar
SQL Veritabanı için, sanal ağ kuralları özelliği aşağıdaki sınırlamalara sahiptir:
- veritabanınızın güvenlik duvarında SQL Veritabanı, her bir sanal ağ kuralı bir alt ağa başvurur. Bu başvurulmuş alt ağların tümü, veritabanını barındıran aynı coğrafi bölgede barındırılmalıdır.
- Her bir sunucu, herhangi bir sanal ağ için en fazla 128 ACL girişine sahip olabilir.
- Sanal ağ kuralları yalnızca Azure Resource Manager sanal ağlar için geçerlidir ve klasik dağıtım modeli ağlarına uygulanmaz.
- sanal ağ hizmet uç noktalarını SQL Veritabanı açmak, MySQL için azure veritabanı ve postgresql için azure veritabanı için uç noktaların de kullanılabilmesini sağlar. Uç noktalar Açık olarak ayarlandığında, uç noktalarından MySQL Için Azure veritabanınıza veya PostgreSQL Için Azure veritabanı örneklerine bağlanma girişimleri başarısız olabilir.
- Temel nedenle, MySQL için Azure veritabanı ve PostgreSQL için Azure veritabanı muhtemelen bir sanal ağ kuralı yapılandırmamış. MySQL için Azure veritabanı ve PostgreSQL için Azure veritabanı için bir sanal ağ kuralı yapılandırmanız gerekir ve bağlantı başarılı olur.
- zaten özel uç noktalarla yapılandırılmış SQL bir mantıksal sunucuda sanal ağ güvenlik duvarı kurallarını tanımlamak için, ortak ağ erişimini reddet olarak ayarlayın.
- Güvenlik duvarında, IP adresi aralıkları aşağıdaki ağ öğelerine uygulanır, ancak sanal ağ kuralları şunları içermez:
- Siteden siteye (S2S) sanal özel ağ (VPN)
- Azure ExpressRoute aracılığıyla şirket içi
Hizmet uç noktalarını kullanırken dikkat edilecek noktalar
SQL Veritabanı için hizmet uç noktalarını kullandığınızda aşağıdaki noktaları gözden geçirin:
- Azure SQL Veritabanı genel ıp 'lere giden bir değer gereklidir. bağlantıya izin vermek için ıp 'leri SQL Veritabanı için ağ güvenlik grupları (nsg 'ler) açılmalıdır. bunu, SQL Veritabanı için nsg hizmet etiketlerini kullanarak yapabilirsiniz.
ExpressRoute
Şirket içindeki ExpressRoute 'u genel eşleme veya Microsoft eşlemesi için kullanırsanız, kullanılan NAT IP adreslerini belirlemeniz gerekir. Ortak eşleme için, her bir ExpressRoute varsayılan olarak bağlantı hattında trafik Microsoft Azure omurga ağına girdiğinde Azure hizmet trafiğine uygulanan iki NAT IP adresi kullanılır. Microsoft eşlemesi için, kullanılan NAT IP adresleri müşteri ya da hizmet sağlayıcısı tarafından sağlanır. Hizmet kaynaklarınıza erişime izin vermek için, bu genel IP adreslerine kaynak IP güvenlik duvarı ayarında izin vermeniz gerekir. Ortak eşleme ExpressRoute bağlantı hattı IP adreslerinizi bulmak için Azure portalında ExpressRoute ile bir destek bileti açın. ExpressRoute genel ve Microsoft eşlemesi için NAT hakkında daha fazla bilgi edinmek için bkz. Azure genel eşleme Için NAT gereksinimleri.
bağlantı hattınızdan SQL Veritabanı yönelik iletişime izin vermek için NAT 'nizin genel ıp adresleri için ıp ağ kuralları oluşturmanız gerekir.
sanal ağ hizmet uç noktalarını Azure Depolama kullanmanın etkileri
Azure Depolama da, Azure Depolama hesabınızın bağlantılarını sınırlandırmanıza imkan tanıyan aynı özelliğe sahiptir. bu özelliği SQL Veritabanı tarafından kullanılan bir Azure Depolama hesabıyla kullanmayı tercih ederseniz, sorunlar ' de çalıştırabilirsiniz. daha sonra, bundan etkilenen SQL Veritabanı ve Azure Synapse Analytics özelliklerinin bir listesi ve tartışılması vardır.
Azure SYNAPSE Analytics PolyBase ve COPY deyimleri
polybase ve COPY deyimleri, yüksek aktarım hızı verileri alımı için azure Depolama hesaplarından azure Synapse Analytics 'e veri yüklemek için yaygın olarak kullanılır. limitlerden veri yüklediğiniz Azure Depolama hesabı yalnızca bir sanal ağ alt ağı kümesiyle erişirse, polybase kullandığınızda bağlantı ve depolama hesabına kopyala ekstresi kesilir. bir sanal ağla güvenli hale getirilmiş Depolama azure Synapse Analytics ile bağlantı kurarak ve polybase 'i kullanarak içeri ve dışarı aktarma senaryolarını etkinleştirmek için, bu bölümdeki adımları izleyin.
Önkoşullar
- bu kılavuzukullanarak Azure PowerShell 'yi.
- genel amaçlı bir v1 veya Azure Blob Depolama hesabınız varsa, genel amaçlı v2 depolama hesabına yükseltmebölümündeki adımları izleyerek öncelikle genel amaçlı v2 'ye yükseltmeniz gerekir.
- Azure Depolama hesabı güvenlik duvarları ve sanal ağlar ayarları menüsü altında bu depolama hesabına erişmek için güvenilir Microsoft hizmetleri izin ver özelliğinin etkinleştirilmiş olması gerekir. Bu yapılandırmayı etkinleştirmek, PolyBase ve COPY deyimlerinin, ağ trafiğinin Azure omurgasında kaldığı güçlü kimlik doğrulaması kullanarak depolama hesabına bağlanmasına izin verir. Daha fazla bilgi için bu kılavuzabakın.
Önemli
PowerShell Azure Resource Manager modülü SQL Veritabanı tarafından hala desteklenmektedir, ancak gelecekteki tüm geliştirmeler Az. SQL modülüne yöneliktir. AzureRM modülü, en az Aralık 2020 ' e kadar hata düzeltmeleri almaya devam edecektir. Az Module ve Azurerd modüllerinde komutların bağımsız değişkenleri önemli ölçüde aynıdır. uyumluluklarını hakkında daha fazla bilgi için bkz. new Azure PowerShell konusuna giriş Az module.
Adımlar
tek başına adanmış bir SQL havuzunuz varsa, PowerShell kullanarak SQL sunucunuzu Azure AD 'ye kaydedin:
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentitybu adım, bir Azure Synapse Analytics çalışma alanı içindeki adanmış SQL havuzları için gerekli değildir.
Bir Azure SYNAPSE Analytics çalışma alanınız varsa, çalışma alanınızın sistem tarafından yönetilen kimliğini kaydedin:
- Azure portal Azure SYNAPSE Analytics çalışma alanınıza gidin.
- Yönetilen kimlikler bölmesine gidin.
- izin ver Pipelines seçeneğinin etkinleştirildiğinden emin olun.
depolama hesabı oluşturmabölümündeki adımları izleyerek bir genel amaçlı v2 Depolama hesabı oluşturun.
Not
- genel amaçlı bir v1 veya Blob Depolama hesabınız varsa, önce genel amaçlı v2 depolama hesabına yükseltmebölümündeki adımları izleyerek v2 'ye yükseltmeniz gerekir.
- Azure Data Lake Storage 2. ile ilgili bilinen sorunlar için bkz. Azure Data Lake Storage 2. ile ilgili bilinen sorunlar.
Depolama hesabınız altında Access Control (IAM) bölümüne gidin ve rol ataması Ekle' yi seçin. azure AD 'ye kaydettiğiniz adanmış SQL havuzunuzu barındıran Depolama Blob verileri katkıda bulunan Azure rolünü sunucuya veya çalışma alanına atayın.
Not
Yalnızca depolama hesabında sahibi ayrıcalığına sahip Üyeler bu adımı gerçekleştirebilir. Çeşitli Azure yerleşik rolleri için bkz. Azure yerleşik rolleri.
Azure Depolama hesabıyla polybase bağlantısını etkinleştirmek için:
Daha önce oluşturmadıysanız bir veritabanı ana anahtarı oluşturun.
CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];Identity = ' yönetilen hizmet kimliği ' olan veritabanı kapsamlı kimlik bilgileri oluşturun.
CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';Not
- bu mekanizma, kapsamakta olan yönetilen kimliği kullandığından Azure Depolama erişim anahtarıyla gizli anahtar belirtmeniz gerekmez.
- polybase bağlantısının bir sanal ağla korunan bir Azure Depolama hesabıyla çalışması için kimlik adının ' Yönetilen Hizmet Kimliği ' olması gerekir.
abfss://PolyBase kullanarak genel amaçlı v2 depolama hesabınıza bağlanma düzeniyle bir dış veri kaynağı oluşturun.CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);Not
- zaten genel amaçlı bir v1 veya Blob Depolama hesabıyla ilişkili dış tablolar varsa, önce bu dış tabloları bırakmalısınız. Ardından karşılık gelen dış veri kaynağını bırakın. Ardından,
abfss://daha önce gösterildiği gibi, genel amaçlı v2 depolama hesabına bağlanan şemayla bir dış veri kaynağı oluşturun. Ardından, bu yeni dış veri kaynağını kullanarak tüm dış tabloları yeniden oluşturun. Her türlü dış tablo için oluşturma komut dosyaları oluşturmak üzere komut dosyaları oluşturma ve Yayımlama Sihirbazı 'nı kullanabilirsiniz. - düzen hakkında daha fazla bilgi için
abfss://bkz. Azure Data Lake Storage 2. urı 'si kullanma. - Dış VERI kaynağı oluşturma hakkında daha fazla bilgi için bu kılavuzabakın.
- zaten genel amaçlı bir v1 veya Blob Depolama hesabıyla ilişkili dış tablolar varsa, önce bu dış tabloları bırakmalısınız. Ardından karşılık gelen dış veri kaynağını bırakın. Ardından,
Dış tablolarkullanarak normal şekilde sorgulama.
SQL Veritabanı blob denetimi
Azure SQL denetimi, kendi depolama hesabınıza SQL denetim günlükleri yazabilir. Bu depolama hesabı sanal ağ hizmeti uç noktaları özelliğini kullanıyorsa, bkz. VNET ve güvenlik duvarının arkasındaki depolama hesabına denetim yazma.
Sunucunuza bir sanal ağ güvenlik duvarı kuralı ekleme
Uzun bir süre önce, bu özellik arttırmadan önce, güvenlik duvarında canlı bir sanal ağ kuralı uygulayabilmeniz için önce sanal ağ hizmet uç noktalarını açmanız gerekiyordu. belirli bir sanal ağ alt ağı SQL Veritabanı içindeki bir veritabanıyla ilgili uç noktalar. 2018 Ocak itibariyle ıgnoremissingvnetserviceendpoint bayrağını ayarlayarak bu gereksinimi atlayabilirsiniz. Artık sanal ağ hizmeti uç noktalarını açmadan sunucunuza bir sanal ağ güvenlik duvarı kuralı ekleyebilirsiniz.
Yalnızca bir güvenlik duvarı kuralı ayarlamak sunucunun güvenliğinin sağlanmasına yardımcı olmaz. Ayrıca, güvenliğin etkinleşmesi için sanal ağ hizmet uç noktalarını açmanız gerekir. Hizmet uç noktalarını açtığınızda, sanal ağ alt ağınız geçiş kapalı ' dan açık ' a kadar tamamlanana kadar kesinti yaşar. Bu süre kapalı kalma süresi, büyük sanal ağların bağlamında özellikle doğrudur. Geçiş sırasında kesinti süresini azaltmak veya ortadan kaldırmak için ıgnoremissingvnetserviceendpoint bayrağını kullanabilirsiniz.
Ignoremissingvnetserviceendpoint bayrağını PowerShell kullanarak ayarlayabilirsiniz. daha fazla bilgi için bkz. PowerShell, SQL Veritabanı için sanal ağ hizmeti uç noktası ve kuralı oluşturma.
Hatalar 40914 ve 40615
Bağlantı hatası 40914, Azure portal güvenlik duvarı bölmesinde belirtilen sanal ağ kuralları ile ilgilidir. Hata 40615 benzerdir, ancak güvenlik duvarındaki IP adresi kurallarıyla ilgilidir.
Hata 40914
İleti metni: "Oturum açma tarafından istenen '[sunucu-adı]' sunucusu açılamıyor. İstemcinin sunucuya erişmesine izin verilmiyor. "
Hata açıklaması: İstemci, sanal ağ sunucusu uç noktaları olan bir alt ağda bulunur. Ancak sunucuda, veritabanıyla iletişim kurmak için gereken alt ağa izin veren bir sanal ağ kuralı yok.
Hata çözümleme: Azure portal güvenlik duvarı bölmesinde, alt ağa yönelik bir sanal ağ kuralı eklemek için sanal ağ kuralları denetimini kullanın.
Hata 40615
İleti metni: " {0} Oturum açma tarafından istenen ' ' sunucusu açılamıyor. ' ' IP adresine sahip istemcinin {1} sunucuya erişmesine izin verilmiyor. "
Hata açıklaması: İstemci, sunucuya bağlanma yetkisine sahip olmayan bir IP adresinden bağlanmaya çalışıyor. Sunucu güvenlik duvarının, bir istemcinin verilen IP adresinden veritabanıyla iletişim kurmasına izin veren bir IP adresi kuralı yok.
Hata çözümleme: İstemcinin IP adresini bir IP kuralı olarak girin. Bu adımı yapmak için Azure portal güvenlik duvarı bölmesini kullanın.
Bir sanal ağ kuralı oluşturmak için portalı kullanma
bu bölümde, SQL Veritabanı veritabanınızda bir sanal ağ kuralı oluşturmak için Azure portal nasıl kullanabileceğiniz gösterilmektedir. Kural, veritabanınıza, sanal ağ hizmeti uç noktası olarak etiketlenmiş belirli bir alt ağdan gelen iletişimi kabul etmesini söyler.
Not
Sunucunuzun sanal ağ güvenlik duvarı kurallarına bir hizmet uç noktası eklemek istiyorsanız, önce alt ağ için hizmet uç noktalarının açık olduğundan emin olun.
Alt ağ için hizmet uç noktaları açık değilse, Portal bunları etkinleştirmenizi ister. Kuralı eklediğiniz bölmedeki aynı bölmede Etkinleştir düğmesini seçin.
PowerShell alternatifi
Bir betik, New-AzSqlServerVirtualNetworkRule veya az Network VNET CreatePowerShell cmdlet 'ini kullanarak sanal ağ kuralları da oluşturabilir. ilgileniyorsanız, bir sanal ağ hizmeti uç noktası ve SQL Veritabanı kuralı oluşturmak için PowerShell 'ebakın.
REST API alternatifi
dahili olarak, SQL sanal ağ eylemleri için PowerShell cmdlet 'leri REST apı 'leri çağırır. REST API 'Leri doğrudan çağırabilirsiniz.
Önkoşullar
SQL Veritabanı ilişkili olan belirli bir sanal ağ hizmet uç noktası türü adıyla etiketlenmiş bir alt ağınız zaten olmalıdır.
- İlgili uç nokta türü adı Microsoft. SQL' dir.
- Alt ağınız tür adıyla etiketlenmemişse, bkz. alt ağınızın bir uç nokta olduğunu doğrulayın.
Azure portal adımları
Azure portalında oturum açın.
SQL sunucuları arayın ve seçin ve ardından sunucunuzu seçin. Güvenlik altında güvenlik duvarları ve sanal ağlar' ı seçin.
Azure hizmetlerine erişime Izin ver ' i kapalı olarak ayarlayın.
Önemli
Denetimi Açık olarak bırakırsanız, sunucunuz Azure sınırının içindeki herhangi bir alt ağdan gelen iletişimi kabul eder. Bu, Azure veri merkezleri için tanımlanan aralıklar dahilinde tanınan IP adreslerinden birinden kaynaklanan iletişimdir. Denetim kümesini Açık olarak bırakmak, bir güvenlik noktasından aşırı erişim sağlayabilir. sanal ağ hizmeti uç noktası özelliği, birlikte SQL Veritabanı sanal ağ kuralları özelliği ile koordinasyon halinde güvenlik yüzeyi alanınızı azaltabilir. Microsoft Azure
Sanal ağlar bölümünde + Varolanı Ekle ' yi seçin.

Yeni Oluştur/Güncelleştir bölmesinde, kutuları Azure kaynaklarınızın adlarıyla girin.
İpucu
Alt ağınız için doğru adres önekini dahil etmeniz gerekir. Adres ön eki değerini portalda bulabilirsiniz. Tüm kaynaklar > Tüm > sanal ağlar' a gidin. Filtre, sanal ağlarınızı görüntüler. Sanal ağınızı seçin ve ardından alt ağlar' ı seçin. Adres aralığı sütunu, ihtiyacınız olan adres ön ekine sahiptir.

Bölmenin alt kısmındaki Tamam düğmesini seçin.
Güvenlik duvarı bölmesinde ortaya çıkan sanal ağ kuralına bakın.

Not
Aşağıdaki durumlar veya durumlar kurallar için geçerlidir:
- Ready: başlatıldığı işlemin başarılı olduğunu gösterir.
- Başarısız: başlatıldığı işlemin başarısız olduğunu gösterir.
- Silindi: yalnızca silme işlemi için geçerlidir ve kuralın silindiğini ve artık geçerli olmadığını gösterir.
- Sürüyor: işlemin devam ettiğini gösterir. İşlem bu durumdayken eski kural uygulanır.
İlgili makaleler:
- Azure sanal ağ hizmet uç noktaları
- Sunucu düzeyinde ve veritabanı düzeyinde güvenlik duvarı kuralları