Terhubung ke basis data melalui Proksi RDS - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terhubung ke basis data melalui Proksi RDS

Anda dapat terhubung ke klaster DB Aurora atau klaster yang menggunakan Aurora Serverless v2 melalui proksi seperti halnya Anda terhubung langsung ke basis data. Perbedaan utamanya adalah Anda menentukan titik akhir proksi, bukan titik akhir klaster. Secara default semua koneksi proxy memiliki read/write kemampuan dan menggunakan instance penulis. Jika Anda biasanya menggunakan titik akhir pembaca untuk koneksi hanya-baca, Anda dapat membuat titik akhir hanya-baca tambahan untuk proksi. Anda dapat menggunakan titik akhir tersebut dengan cara yang sama. Untuk informasi selengkapnya, lihat Ikhtisar titik akhir proksi.

Menghubungkan ke database menggunakan kredensi database

Gunakan langkah-langkah berikut untuk menyambung ke proxy menggunakan kredensil database:

  1. Temukan titik akhir proksi. Di AWS Management Console, Anda dapat menemukan titik akhir pada halaman detail untuk proxy yang sesuai. Dengan itu AWS CLI, Anda dapat menggunakan describe-db-proxiesperintah. Contoh berikut menunjukkan caranya.

    # Add --output text to get output as a simple tab-separated list. $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}' [ [ { "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy" }, { "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-other-secret" }, { "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-rds-secret" }, { "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-t3" } ] ]
  2. Tentukan titik akhir sebagai parameter host dalam string koneksi untuk aplikasi klien Anda. Misalnya, tentukan titik akhir proksi sebagai nilai untuk opsi mysql -h atau opsi psql -h.

  3. Masukkan nama dan kata sandi pengguna basis data yang sama seperti biasanya.

Menghubungkan ke database menggunakan otentikasi IAM

Ketika Anda menggunakan otentikasi IAM dengan RDS Proxy, Anda memiliki dua opsi untuk otentikasi antara klien dan proxy Anda:

  • Siapkan pengguna database Anda untuk mengautentikasi dengan nama pengguna dan kata sandi biasa. RDS Proxy mengambil nama pengguna dan kredensi kata sandi dari Secrets Manager. Koneksi dari Proksi RDS ke basis data acuan tidak melewati IAM.

  • Anda juga dapat menggunakan autentikasi end-to-end IAM, yang menghubungkan ke database Anda melalui proxy menggunakan IAM tanpa memerlukan kredensi database.

Untuk terhubung ke Proksi RDS menggunakan autentikasi IAM, gunakan prosedur koneksi umum yang sama seperti autentikasi IAM dengan klaster DB Aurora. Untuk informasi umum tentang cara menggunakan IAM, lihat Keamanan dalam Amazon Aurora. Jika Anda menggunakan otentikasi end-to-end IAM, berikan plugin otentikasi IAM kepada pengguna DB Anda. Lihat Membuat akun basis data menggunakan autentikasi IAM.

Perbedaan utama dalam penggunaan IAM untuk Proksi RDS meliputi:

  • Dengan otentikasi IAM standar, pengguna database memiliki kredensi reguler dalam database. Anda dapat menyiapkan rahasia Secrets Manager yang berisi nama dan kata sandi pengguna ini, dan mengotorisasi Proksi RDS untuk mengambil kredensial dari Secrets Manager. Autentikasi IAM berlaku untuk koneksi antara program klien Anda dan proksi. Proksi kemudian melakukan autentikasi ke basis data menggunakan kredensial nama dan kata sandi pengguna yang diambil dari Secrets Manager.

  • Dengan autentikasi end-to-end IAM, Anda tidak perlu mengonfigurasi rahasia Secrets Manager untuk kredensi database. Autentikasi IAM berlaku untuk koneksi antara klien ke proxy dan proxy ke database.

  • Anda menentukan titik akhir proksi, bukan instans, klaster, atau titik akhir pembaca. Untuk detail tentang titik akhir proksi, lihat Menghubungkan ke klaster DB menggunakan autentikasi IAM.

  • Pastikan Anda menggunakan Keamanan Lapisan Pengangkutan (TLS)/Lapisan Soket Aman (SSL) saat terhubung ke sebuah proksi menggunakan autentikasi IAM.

Anda dapat memberi pengguna tertentu akses ke proksi dengan mengubah kebijakan IAM. Berikut contohnya.

"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
Tip

Saat mengonfigurasi autentikasi IAM untuk koneksi Proxy RDS, ikuti panduan penting ini untuk menghindari masalah koneksi:

  • Jangan berikan rds_iam peran sambil mempertahankan otentikasi kata sandi umum untuk pengguna atau peran database yang sama.

  • Ingat bahwa sementara klien terhubung ke RDS Proxy menggunakan autentikasi IAM, RDS Proxy selalu terhubung ke database menggunakan otentikasi kata sandi melalui Secrets Manager.

  • Jika Anda sering mengalami penghentian koneksi dan koneksi ulang, hapus semua rds_iam hibah yang ada dari pengguna atau peran dan gunakan hanya otentikasi kata sandi.

  • Pastikan kebijakan kata sandi Anda memenuhi persyaratan karakter aman SCRAM-SHA-256.

Mencampur IAM dan metode otentikasi kata sandi untuk pengguna database yang sama dapat menyebabkan ketidakstabilan koneksi.

Pertimbangan untuk menghubungkan ke PostgreSQL

Jika Anda membuat pengguna database PostgreSQL baru untuk menghubungkan ke RDS Proxy, pastikan bahwa Anda memberikan hak istimewa pengguna pada database. CONNECT Tanpa ini, pengguna tidak dapat membuat koneksi. Untuk informasi selengkapnya, lihat Menambahkan pengguna database baru ke database PostgreSQL saat menggunakan RDS Proxy.

Ketika klien memulai koneksi ke database PostgreSQL, ia mengirimkan pesan startup. Pesan ini berisi pasangan nama parameter dan string nilai. Untuk detailnya, lihat StartupMessage dalam PostgreSQL message formats dalam dokumentasi PostgreSQL.

Saat Anda terhubung melalui proxy RDS, pesan startup dapat menyertakan parameter berikut yang saat ini dikenali:

  • user

  • database

Pesan startup juga bisa menyertakan parameter runtime tambahan berikut:

Untuk informasi selengkapnya tentang pesan PostgreSQL, lihat Frontend/Backend protocol dalam dokumentasi PostgreSQL.

Untuk PostgreSQL, jika Anda menggunakan JDBC, sebaiknya lakukan tindakan berikut untuk menghindari penyematan:

  • Atur parameter koneksi JDBC assumeMinServerVersion ke setidaknya 9.0 untuk menghindari penyematan. Tindakan ini dapat mencegah driver JDBC melakukan perjalanan roundtrip ekstra selama startup koneksi saat menjalankan SET extra_float_digits = 3.

  • Atur parameter koneksi JDBC ApplicationName ke any/your-application-name untuk menghindari penyematan. Tindakan ini dapat mencegah driver JDBC melakukan roundtrip ekstra selama startup koneksi saat menjalankan SET application_name = "PostgreSQL JDBC Driver". Perhatikan bahwa parameter JDBC adalah ApplicationName, tetapi parameter PostgreSQL StartupMessage adalah application_name.

Untuk informasi selengkapnya, lihat Menghindari menyematkan Proxy RDS. Untuk informasi selengkapnya tentang cara terhubung menggunakan JDBC, lihat Connecting to the database dalam dokumentasi PostgreSQL.