PostgreSQL için Azure Veritabanı esnek sunucusunda güvenlik duvarı kuralları

PostgreSQL için Azure Veri Tabanı esnek bir sunucu çalıştırdığınızda iki ana ağ seçeneğiniz vardır: özel erişim (sanal ağ tümleştirmesi) ve genel erişim (izin verilen IP adresleri).

Genel erişimle, PostgreSQL için Azure Veri Tabanı esnek sunucusuna genel uç nokta üzerinden erişebilirsiniz. Varsayılan olarak, güvenlik duvarı sunucuya tüm erişimi engeller. Hangi IP konaklarının sunucuya erişebileceğini belirtmek için sunucu düzeyinde güvenlik duvarı kuralları oluşturun. Güvenlik duvarı kuralları izin verilen genel IP adresi aralıklarını belirtir. Güvenlik duvarı, her isteğin kaynak IP adresine göre sunucuya erişim verir. Özel erişimde herhangi bir ortak uç nokta yoktur ve PostgreSQL için Azure Veri Tabanı esnek sunucunuza yalnızca aynı ağda bulunan ana bilgisayarlar erişebilir.

Azure portalını veya Azure CLI komutlarını kullanarak güvenlik duvarı kuralları oluşturun. Abonelik sahibi veya abonelik katkıda bulunanı olmanız gerekir.

Sunucu düzeyinde güvenlik duvarı kuralları, aynı PostgreSQL için Azure Veri Tabanı esnek sunucudaki tüm veritabanları için geçerlidir. Kurallar Azure portalı web sitesine erişimi etkilemez.

Aşağıdaki diyagramda İnternet'ten ve Azure'dan gelen bağlantı girişimlerinin PostgreSQL için Azure Veritabanı veritabanlarına ulaşmadan önce güvenlik duvarından nasıl geçmesi gerektiği gösterilmektedir:

PostgreSQL için Azure Veritabanı'nda güvenlik duvarı kurallarının diyagramı.

İnternet'ten bağlanma

İsteğin kaynak IP adresi sunucu düzeyinde güvenlik duvarı kurallarında belirtilen aralıklardan biri içindeyse, bağlantı verilir. Aksi takdirde reddedilir.

Örneğin, uygulamanız PostgreSQL için Azure Veritabanı için Java Veritabanı Bağlantısı (JDBC) sürücüsüne bağlanıyorsa, güvenlik duvarı bağlantıyı engellediğinden bu hatayla karşılaşabilirsiniz:

  • java.util.concurrent.ExecutionException: java.lang.RuntimeException:
  • org.postgresql.util.PSQLException: FATAL: "123.45.67.890" hostu için pg_hba.conf girişi yok, "adminuser" kullanıcısı, "postgresql" veritabanı, SSL.

Uyarı

PostgreSQL için Azure Veri Tabanı esnek sunucusuna yerel bilgisayarınızdan erişmek için, ağınızdaki ve yerel bilgisayarınızdaki güvenlik duvarının 5432 numaralı TCP bağlantı noktasında giden iletişime izin verdiğinden emin olun.

Azure'dan bağlanma

Herhangi bir uygulamanın veya hizmetin giden IP adresini bulun ve bu tek tek IP adreslerine veya aralıklarına açıkça erişime izin verin. Örneğin, bir Azure App Service uygulamasının giden IP adresini bulabilir veya sanal makineye bağlı bir genel IP adresi kullanabilirsiniz.

Azure hizmetiniz için sabit bir giden IP adresi kullanılamıyorsa, Azure veri merkezleri için tüm IP adreslerinden bağlantıları etkinleştirmeyi göz önünde bulundurun:

  1. Azure portalındaki bölmesinde Azure'daki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver onay kutusunu seçin.

  2. Kaydetseçeneğini seçin.

    Güvenlik duvarı içeren ağ sayfasının ekran görüntüsü.

    Önemli

    Azure'ın içindeki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver seçeneği, güvenlik duvarını diğer müşterilerin aboneliklerinden gelen bağlantılar da dahil olmak üzere Azure'dan gelen tüm bağlantılara izin verecek şekilde yapılandırılır. Bu seçeneği kullandığınızda, oturum açma ve kullanıcı izinlerinizin erişimi yalnızca yetkili kullanıcılarla sınırladığından emin olun.

Güvenlik duvarı kurallarını program aracılığıyla yönetme

Azure portalını kullanmanın yanı sıra, Azure CLI kullanarak güvenlik duvarı kurallarını program aracılığıyla yönetebilirsiniz.

Azure CLI'dan, başlangıç ve bitiş adresi 0.0.0.0'a eşit olan bir güvenlik duvarı kuralı ayarı, portalda Azure'daki herhangi bir Azure hizmetinden bu sunucuya genel erişime izin ver seçeneğinin eşdeğeridir. Güvenlik duvarı kuralları bağlantı girişimini reddederse, uygulama PostgreSQL için Azure Veri Tabanı esnek sunucuya ulaşmaz.

Güvenlik duvarı sorunlarını giderme

PostgreSQL için Azure Veri Tabanı esnek sunucuya erişim beklediğiniz gibi davranmadığında aşağıdaki olasılıkları göz önünde bulundurun:

  • İzin verilenler listesinde yapılan değişiklikler henüz geçerli değil: PostgreSQL için Azure Veri Tabanı esnek bir sunucunun güvenlik duvarı yapılandırmasında yapılan değişiklikler beş dakikaya kadar sürebilir.

  • Oturum açma yetkisi yok veya yanlış bir parola kullanıldı: Oturum açma işleminin esnek PostgreSQL için Azure Veri Tabanı sunucuda izinleri yoksa veya parola yanlışsa, sunucu bağlantısı reddedilir. Güvenlik duvarı ayarı oluşturmak yalnızca istemcilere sunucunuza bağlanmayı deneme fırsatı verir. Her istemci yine de gerekli güvenlik kimlik bilgilerini sağlamalıdır.

Örneğin, bir JDBC istemcisi için kimlik doğrulaması başarısız olursa aşağıdaki hata görüntülenebilir:

  • java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: kullanıcı "yourusername" için parola doğrulaması başarısız oldu

  • Güvenlik duvarı dinamik IP adreslerine izin vermiyor: Dinamik IP adresleme ile İnternet bağlantınız varsa ve güvenlik duvarından geçerken sorun yaşıyorsanız aşağıdaki çözümlerden birini deneyin:

  • İnternet servis sağlayıcınızdan (ISS) PostgreSQL için Azure Veri Tabanı esnek sunucuya erişen istemci bilgisayarlarınıza atanan IP adresi aralığını isteyin. Ardından IP adresi aralığını güvenlik duvarı kuralı olarak ekleyin.

  • İstemci bilgisayarlarınız için bunun yerine statik IP adreslerini alın ve ardından statik IP adreslerini güvenlik duvarı kuralı olarak ekleyin.

  • Güvenlik duvarı kuralları IPv6 biçiminde kullanılamaz: Güvenlik duvarı kuralları IPv4 biçiminde olmalıdır. Güvenlik duvarı kurallarını IPv6 biçiminde belirtirseniz doğrulama hatası alırsınız.