Terhubung ke basis data melalui Proksi RDS - Layanan Basis Data Relasional Amazon

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

Cara terhubung ke instans DB RDS melalui proksi atau dengan menghubungkan ke basis data umumnya 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 Konsol Manajemen AWS, 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 instans DB RDS. Untuk informasi umum tentang cara menggunakan IAM, lihat Keamanan dalam Amazon RDS. 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 instans 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 Microsoft SQL Server

Untuk terhubung ke proksi menggunakan autentikasi IAM, Anda tidak menggunakan kolom kata sandi. Sebagai gantinya, Anda memasukkan properti token yang sesuai untuk setiap jenis driver basis data di kolom token. Misalnya, gunakan properti accessToken untuk JDBC, atau properti sql_copt_ss_access_token untuk ODBC. Atau gunakan AccessToken properti untuk SqlClient driver.NET. Anda tidak dapat menggunakan autentikasi IAM dengan klien yang tidak mendukung properti token.

Dalam beberapa kondisi, proksi tidak dapat berbagi koneksi basis data dan sebagai gantinya menyematkan koneksi dari aplikasi klien Anda ke proksi ke koneksi basis data khusus. Untuk informasi selengkapnya tentang cara kondisi ini, lihat Menghindari menyematkan Proxy RDS.

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.