Setelah mengaktifkan enkripsi SSL, client masih dapat terhubung tanpa SSL menggunakan parameter PGSSLMODE=disable jika kontrol akses client belum dikonfigurasi. Untuk menerapkan koneksi SSL bagi semua client, ikuti langkah-langkah dalam topik ini.
Prasyarat
-
Instans RDS for PostgreSQL Anda harus telah mengaktifkan enkripsi SSL. Untuk informasi selengkapnya, lihat Aktifkan enkripsi SSL secara cepat menggunakan sertifikat cloud atau Aktifkan enkripsi SSL menggunakan sertifikat kustom.
-
Jika Anda berencana menggunakan Metode 1, Anda harus mengonfigurasi sertifikat CA client untuk memverifikasi sertifikat client. Untuk informasi selengkapnya, lihat Konfigurasi sertifikat CA client.
Prosedur
RDS for PostgreSQL menyediakan metode berikut untuk menerapkan enkripsi SSL pada koneksi client.
Metode 1: Client ACL
Setelah mengonfigurasi sertifikat CA client, Anda dapat menyiapkan ACL client pada instans RDS for PostgreSQL untuk mengelola akses client. Client kemudian harus menyerahkan sertifikat client dan kunci privat yang valid serta menggunakan metode autentikasi yang ditentukan untuk terhubung ke database.
-
Mengonfigurasi ACL client akan membuat instans database PostgreSQL Anda tidak tersedia selama sekitar satu menit.
-
Jika kontrol akses client belum dikonfigurasi pada database RDS for PostgreSQL Anda, metode autentikasi akan menggunakan nilai default
prefer. Hal ini memungkinkan client terhubung tanpa SSL menggunakanPGSSLMODE=disable. Untuk memblokir koneksi non-SSL, konfigurasikan ACL client agar menggunakan metode autentikasi selainprefersetelah mengaktifkan enkripsi SSL.
Klik Modify di samping Configure ACL dan pilih mode kontrol koneksi client.
Anda dapat menggunakan salah satu metode autentikasi berikut untuk menerapkan koneksi SSL ke instans RDS for PostgreSQL Anda:
-
cert: Melakukan autentikasi menggunakan sertifikat client alih-alih password. Metode ini mengenkripsi koneksi, memverifikasi sertifikat client, dan memastikan bahwa Common Name (CN) dalam sertifikat sesuai dengan username database. -
verify-ca: Mengenkripsi koneksi dan memverifikasi sertifikat client terhadap CA yang dikonfigurasi. -
verify-full(didukung pada RDS for PostgreSQL 12 dan versi lebih baru): Mengenkripsi koneksi, memverifikasi sertifikat client terhadap CA yang dikonfigurasi, dan memastikan bahwa CN dalam sertifikat sesuai dengan username database.
Metode 2: file pg_hba.conf
Setelah mengaktifkan enkripsi SSL, Anda dapat menggunakan fitur AD Domain Service Configuration di RDS for PostgreSQL untuk memodifikasi file pg_hba.conf. Hal ini memaksa client menggunakan SSL saat terhubung ke database.
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID instans tersebut.
-
Di panel navigasi sebelah kiri, klik Accounts, lalu klik tab AD Domain Services.
-
Pada tabel aturan di halaman konfigurasi pg_hba.conf, modifikasi catatan pertama dengan mengatur TYPE menjadi
hostssl, DATABASE dan USER menjadi all, ADDRESS menjadi0.0.0.0/0, dan METHOD menjadi md5. -
Klik Submit.
CatatanSetelah mengklik Submit, status instans berubah menjadi Maintaining Instance selama sekitar satu menit. Konfigurasi baru hanya berlaku untuk koneksi baru. Untuk menerapkan perubahan pada koneksi yang sudah ada, Anda harus memutuskan lalu menyambungkan ulang.