Aracılığıyla paylaş


PostgreSQL için Azure Veritabanı - Esnek Sunucuda güvenlik duvarı kuralları

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Esnek Sunucu

Esnek PostgreSQL için Azure Veritabanı sunucu çalıştırırken iki ana ağ seçeneğiniz vardır. Seçenekler özel erişim (sanal ağ tümleştirmesi) ve genel erişimdir (izin verilen IP adresleri).

Genel erişimle, PostgreSQL için Azure Veritabanı esnek sunucu örneğine genel uç nokta üzerinden erişilir. 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şturursunuz. 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şim sayesinde genel uç nokta kullanılamaz ve yalnızca aynı ağda bulunan konaklar esnek PostgreSQL için Azure Veritabanı sunucuya erişebilir.

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

Sunucu düzeyinde güvenlik duvarı kuralları, aynı PostgreSQL için Azure Veritabanı esnek sunucu örneğindeki 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ı esnek sunucu veritabanlarına ulaşmadan önce güvenlik duvarından nasıl geçmesi gerektiği gösterilmektedir:

Güvenlik duvarının nasıl çalıştığına genel bir bakış gösteren 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ı esnek sunucu 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: no pg_hba.conf entry for host "123.45.67.890", user "adminuser", database "postgresql", SSL

Not

Yerel bilgisayarınızdan PostgreSQL için Azure Veritabanı esnek sunucuya 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 verin.

Azure'dan bağlanma

Herhangi bir uygulamanın veya hizmetin giden IP adresini bulmanızı ve bu tek tek IP adreslerine veya aralıklarına açıkça erişime izin vermenizi öneririz. Örneğin, bir Azure Uygulaması Hizmeti 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. Kaydet'i seçin.

Ö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 kullanırken oturum açma ve kullanıcı izinlerinizin erişimi yalnızca yetkili kullanıcılarla sınırladığından emin olun.

Portalda Azure hizmetlerine erişime izin verme seçimlerini gösteren ekran görüntüsü.

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 Veritabanı esnek sunucu örneğine ulaşmaz.

Güvenlik duvarı sorunlarını giderme

PostgreSQL için Azure Veritabanı esnek sunucu örneğine 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ğildir: PostgreSQL için Azure Veritabanı esnek sunucu örneğinin 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 Veritabanı sunucu örneğinde 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ı sağlar. 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: password authentication failed for user "yourusername"

  • 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 Veritabanı esnek sunucu örneğine 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.

Sonraki adımlar