Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memperbarui aplikasi untuk terhubung ke klaster DB Aurora PostgreSQL menggunakan sertifikat SSL/TLS baru
Sejak 13 Januari 2023, Amazon RDS telah menerbitkan sertifikat Otoritas Sertifikat (CA) baru untuk terhubung ke klaster DB Aurora menggunakan Lapisan Soket Aman atau Keamanan Lapisan Pengangkutan (SSL/TLS). Setelah itu, Anda dapat menemukan informasi tentang pembaruan aplikasi untuk menggunakan sertifikat baru.
Topik ini dapat membantu Anda menentukan apakah aplikasi klien menggunakan SSL/TLS untuk terhubung ke klaster DB Anda. Jika demikian, Anda dapat memeriksa lebih lanjut apakah aplikasi tersebut memerlukan verifikasi sertifikat untuk terhubung.
catatan
Beberapa aplikasi dikonfigurasi untuk terhubung ke klaster DB Aurora PostgreSQL hanya jika aplikasi tersebut berhasil memverifikasi sertifikat pada server.
Untuk aplikasi tersebut, Anda harus memperbarui penyimpanan kepercayaan aplikasi klien untuk menyertakan sertifikat CA baru.
Setelah memperbarui sertifikat CA di penyimpanan kepercayaan aplikasi klien, Anda dapat merotasi sertifikat di klaster DB Anda. Sebaiknya Anda menguji prosedur ini di lingkungan pengembangan dan pementasan sebelum menerapkannya di lingkungan produksi Anda.
Untuk informasi selengkapnya tentang rotasi sertifikat, lihat Memutar sertifikat SSL TLS /Anda. Untuk informasi selengkapnya tentang cara mengunduh sertifikat, lihat . Untuk informasi tentang menggunakan SSL/TLS dengan klaster DB PostgreSQL, lihat Mengamankan data Aurora SQL Postgre dengan/SSLTLS.
Topik
Menentukan apakah aplikasi terhubung ke klaster DB Aurora PostgreSQL menggunakan SSL
Periksa konfigurasi klaster DB untuk nilai parameter rds.force_ssl
. Secara default, parameter rds.force_ssl
diatur ke 0
(nonaktif). Jika parameter rds.force_ssl
diatur ke 1
(aktif), klien harus menggunakan SSL/TLS untuk koneksi. Untuk informasi selengkapnya tentang grup parameter, lihat .
Jika rds.force_ssl
tidak diatur ke 1
(aktif), buat kueri ke tampilan pg_stat_ssl
untuk memeriksa koneksi menggunakan SSL. Misalnya, kueri berikut hanya menampilkan koneksi SSL dan informasi tentang klien menggunakan SSL.
select datname, usename, ssl, client_addr from pg_stat_ssl inner join pg_stat_activity on pg_stat_ssl.pid = pg_stat_activity.pid where ssl is true and usename<>'rdsadmin';
Hanya baris yang menggunakan koneksi SSL/TLS yang ditampilkan dengan informasi mengenai koneksi. Berikut ini adalah contoh output-nya.
datname | usename | ssl | client_addr ----------+---------+-----+------------- benchdb | pgadmin | t | 53.95.6.13 postgres | pgadmin | t | 53.95.6.13 (2 rows)
Kueri sebelumnya hanya menampilkan koneksi saat ini pada waktu kueri. Tidak adanya hasil tidak menunjukkan bahwa tidak ada aplikasi yang menggunakan koneksi SSL. Koneksi SSL lainnya mungkin dibangun pada waktu yang lain.
Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung
Ketika klien, seperti psql atau JDBC, dikonfigurasikan dengan dukungan SSL, klien pertama kali mencoba untuk terhubung ke basis data dengan SSL secara default. Jika klien tidak dapat terhubung dengan SSL, maka akan kembali ke koneksi tanpa SSL. sslmode
Mode default yang digunakan untuk klien berbasis libpq (seperti psql) dan JDBC diatur ke. prefer
Sertifikat di server diverifikasi hanya jika sslrootcert
disediakan dengan sslmode
diatur ke verify-ca
atau verify-full
. Kesalahan akan muncul jika sertifikat tidak valid.
Gunakan PGSSLROOTCERT
untuk memverifikasi sertifikat dengan variabel lingkungan PGSSLMODE
, dengan PGSSLMODE
diatur ke verify-ca
atau verify-full
.
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/
ssl-cert.pem
psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U primaryuser -d postgres
Gunakan argumen sslrootcert
untuk memverifikasi sertifikat dengan sslmode
dalam format string koneksi, dengan sslmode
diatur ke verify-ca
atau verify-full
.
psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/
ssl-cert.pem
user=primaryuser dbname=postgres"
Misalnya, dalam kasus sebelumnya, jika Anda menggunakan sertifikat root yang tidak valid, Anda akan melihat kesalahan yang serupa dengan yang berikut pada klien Anda.
psql: SSL error: certificate verify failed
Memperbarui penyimpanan kepercayaan aplikasi Anda
Untuk informasi tentang cara memperbarui penyimpanan kepercayaan untuk aplikasi PostgreSQL, lihat Secure TCP/IP connections with SSL
catatan
Saat memperbarui penyimpanan kepercayaan, Anda dapat mempertahankan sertifikat lama selain menambahkan sertifikat baru.
Memperbarui penyimpanan kepercayaan aplikasi Anda untuk JDBC
Anda dapat memperbarui penyimpanan kepercayaan untuk aplikasi yang menggunakan JDBC untuk koneksi SSL/TLS.
Untuk informasi tentang cara mengunduh sertifikat root, lihat .
Untuk contoh skrip yang mengimpor sertifikat, lihat Contoh skrip untuk mengimpor sertifikat ke trust store Anda.
Menggunakan koneksi SSL/TLS untuk berbagai jenis aplikasi
Berikut ini berisi informasi tentang cara menggunakan koneksi SSL/TLS untuk berbagai jenis aplikasi:
-
psql
Klien diinvokasi dari baris perintah dengan menentukan opsi sebagai string koneksi atau sebagai variabel lingkungan. Untuk koneksi SSL/TLS, opsi yang relevan adalah
sslmode
(variabel lingkunganPGSSLMODE
),sslrootcert
(variabel lingkunganPGSSLROOTCERT
).Untuk daftar lengkap opsi, lihat Parameter key words
dalam dokumentasi PostgreSQL. Untuk daftar lengkap variabel lingkungan, lihat Environment variables dalam dokumentasi PostgreSQL. -
pgAdmin
Klien berbasis browser ini adalah antarmuka yang lebih mudah untuk terhubung ke basis data PostgreSQL.
Untuk informasi tentang cara mengonfigurasi koneksi, lihat dokumentasi pgAdmin
. -
JDBC
JDBC memungkinkan koneksi basis data dengan aplikasi Java.
Untuk informasi umum tentang cara terhubung ke basis data PostgreSQL dengan JDBC, lihat Connecting to the database
dalam dokumentasi PostgreSQL. Untuk informasi tentang terhubung dengan SSL/TLS, lihat Configuring the client dalam dokumentasi PostgreSQL. -
Python
Pustaka Python yang populer untuk terhubung ke basis data PostgreSQL adalah
psycopg2
.Untuk informasi tentang cara menggunakan
psycopg2
, lihat dokumentasi psycopg2. Untuk tutorial singkat tentang cara terhubung ke basis data PostgreSQL, lihat Tutorial Psycopg2 . Anda dapat menemukan informasi tentang opsi penerimaan perintah koneksi di Konten modul psycopg2 .
penting
Setelah Anda menentukan bahwa koneksi database Anda menggunakan SSL/TLS dan telah memperbarui toko kepercayaan aplikasi Anda, Anda dapat memperbarui database Anda untuk menggunakan sertifikat 2048-g1. rds-ca-rsa Untuk petunjuk, lihat langkah 3 dalam Memperbarui sertifikat CA Anda dengan memodifikasi instans cluster DB.