Bagikan melalui


Aturan firewall dalam Azure Database for PostgreSQL - Server Tunggal

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Tunggal

Penting

Azure Database for PostgreSQL - Server Tunggal berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke Azure Database for PostgreSQL - Server Fleksibel. Untuk informasi selengkapnya tentang migrasi ke Azure Database for PostgreSQL - Server Fleksibel, lihat Apa yang terjadi pada Server Tunggal Azure Database for PostgreSQL?.

Azure Database for PostgreSQL adalah server yang aman dan secara default, akan mencegah semua akses ke server database hingga Anda menentukan host IP mana yang diizinkan untuk mengaksesnya. Firewall memberikan akses ke server berdasarkan alamat IP asal setiap permintaan. Untuk mengonfigurasi firewall, Anda membuat aturan firewall yang menentukan rentang alamat IP yang dapat diterima. Anda bisa membuat aturan firewall pada tingkat server.

Aturan firewall: Aturan ini memungkinkan klien untuk mengakses seluruh Server Azure Database for PostgreSQL, yaitu seluruh database di dalam server logis yang sama. Aturan firewall tingkat server dapat dikonfigurasi menggunakan portal Microsoft Azure atau menggunakan perintah Azure CLI. Untuk membuat aturan firewall tingkat server, Anda harus menjadi pemilik atau kontributor langganan.

Ringkasan Firewall

Semua akses ke server Azure Database for PostgreSQL Anda diblokir oleh firewall secara default. Untuk mengakses server Anda dari komputer/klien atau aplikasi lainnya, Anda perlu menentukan satu atau lebih aturan firewall tingkat server untuk memungkinkan akses ke server Anda. Gunakan aturan firewall untuk menentukan rentang alamat IP publik yang diizinkan. Akses ke situs web portal Microsoft Azure itu sendiri tidak terpengaruh oleh aturan firewall. Upaya koneksi dari internet dan Azure pertama-tama harus melalui firewall sebelum dapat mencapai Database PostgreSQL Anda, seperti ditunjukkan dalam diagram berikut:

Contoh alur cara kerja firewall

Menyambungkan dari internet

Aturan firewall tingkat server berlaku untuk semua database di server Azure Database for PostgreSQL yang sama. Jika alamat IP sumber permintaan berada dalam salah satu rentang yang ditentukan di aturan firewall tingkat server, koneksi diizinkan. Jika sebaliknya, koneksi ditolak. Contohnya, jika aplikasi Anda tersambung dengan JDBC driver for PostgreSQL, Anda dapat mengalami kesalahan ini karena mencoba untuk tersambung ketika firewall sedang memblokir koneksi.

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

Catatan

Untuk mengakses Azure Database for PostgreSQL dari komputer lokal Anda, pastikan firewall pada jaringan dan komputer lokal Anda memungkinkan komunikasi keluar pada port TCP 5432.

Menyambungkan dari Azure

Anda disarankan untuk menemukan alamat IP keluar dari aplikasi atau layanan apa pun dan secara eksplisit mengizinkan akses ke alamat atau rentang IP individu tersebut. Misalnya, Anda dapat menemukan alamat IP keluar dari Azure App Service atau menggunakan IP publik yang terkait dengan mesin virtual atau sumber daya lain (lihat di bawah ini untuk info tentang menghubungkan dengan IP pribadi mesin virtual melalui titik akhir layanan).

Jika alamat IP keluar tetap tidak tersedia untuk layanan Azure Anda, Anda dapat mempertimbangkan untuk mengaktifkan koneksi dari semua alamat IP pusat data Azure. Pengaturan ini dapat diaktifkan dari portal Microsoft Azure dengan mengatur opsi Perbolehkan akses ke layanan Azure ke AKTIF dari panel Keamanan koneksi dan menekan Simpan. Dari Azure CLI, pengaturan aturan firewall dengan alamat awal dan akhir sama dengan 0.0.0.0 setara. Jika upaya koneksi ditolak oleh aturan firewall, koneksi tidak mencapai server Azure Database for PostgreSQL.

Penting

Opsi Izinkan akses ke layanan Azure mengonfigurasi firewall untuk mengizinkan semua koneksi dari Azure, termasuk koneksi dari langganan pelanggan lainnya. Saat memilih opsi ini, pastikan aktivitas masuk dan izin pengguna Anda membatasi akses hanya untuk pengguna yang diotorisasi.

Mengonfigurasi Izinkan akses ke layanan Azure di portal

Menyambungkan dari VNet

Untuk menyambungkan dengan aman ke server Azure Database for PostgreSQL Anda dari VNet, pertimbangkan untuk menggunakan titik akhir layanan VNet.

Mengelola aturan firewall secara terprogram

Selain portal Microsoft Azure, aturan firewall dapat dikelola secara terprogram menggunakan Azure CLI. Lihat juga Membuat dan mengelola aturan firewall Azure Database for PostgreSQL menggunakan Azure CLI

Pemecahan masalah firewall

Pertimbangkan poin-poin berikut ketika akses ke layanan Microsoft Azure Database for PostgreSQL Server tidak berfungsi seperti yang Anda harapkan:

  • Perubahan pada daftar perizinan belum berlaku: Kemungkinan terdapat penundaan selama lima menit agar perubahan pada konfigurasi firewall Azure Database for PostgreSQL Server diberlakukan.

  • Login tidak diotorisasi atau kata sandi yang salah digunakan: Jika proses masuk tidak memiliki izin pada server Azure Database for PostgreSQL atau kata sandi yang digunakan salah, koneksi ke server Azure Database for PostgreSQL ditolak. Membuat pengaturan firewall hanya memberi klien kesempatan untuk mencoba menyambungkan ke server Anda; setiap klien harus tetap memberikan kredensial keamanan yang diperlukan.

    Contohnya, jika menggunakan klien JDBC, kesalahan berikut dapat muncul.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"

  • Alamat IP dinamis: Jika Anda memiliki koneksi internet dengan alamat IP dinamis dan Anda memiliki masalah dalam melewati firewall, Anda dapat mencoba salah satu solusi berikut:

    • Tanyakan Penyedia Layanan Internet (ISP) Anda untuk rentang alamat IP yang ditetapkan kepada komputer klien Anda yang mengakses Azure Database for PostgreSQL Server, kemudian tambahkan rentang alamat IP sebagai aturan firewall.

    • Sebagai gantinya, dapatkan alamat IP statis untuk komputer klien Anda, kemudian tambahkan alamat IP statis sebagai aturan firewall.

  • IP server tampaknya bersifat publik: Koneksi ke server Azure Database for PostgreSQL dirutekan melalui gateway Azure yang dapat diakses publik. Namun, IP server yang sebenarnya dilindungi oleh firewall. Untuk mengetahui informasi selengkapnya, kunjungi artikel arsitektur konektivitas.

  • Tidak dapat tersambung dari sumber daya Azure dengan IP yang diizinkan: Periksa apakah titik akhir layanan Microsoft.Sql diaktifkan untuk subnet tempat Anda menyambungkan. Jika Microsoft.Sql diaktifkan, hal ini menandakan bahwa Anda hanya ingin menggunakan aturan titik akhir layanan VNet pada subnet tersebut.

    Misalnya, Anda akan menemui kesalahan berikut jika menyambungkan dari Azure VM pada subnet dengan Microsoft.Sql yang diaktifkan, tetapi tidak memiliki aturan VNet yang sesuai: FATAL: Client from Azure Virtual Networks is not allowed to access the server

  • Aturan firewall tidak tersedia untuk format IPv6: Aturan firewall harus berupa format IPv4. Jika Anda menentukan aturan firewall dalam format IPv6, aturan firewall tersebut akan menampilkan kesalahan validasi.

Langkah berikutnya