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 proksi memiliki kemampuan baca/tulis dan menggunakan instans 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.

Terhubung ke sebuah proksi menggunakan autentikasi native

Gunakan langkah berikut untuk terhubung ke proksi menggunakan autentikasi native:

  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.

Terhubung ke sebuah proksi menggunakan autentikasi IAM

Saat Anda menggunakan autentikasi IAM dengan Proksi RDS, siapkan pengguna basis data Anda untuk melakukan autentikasi dengan nama dan kata sandi pengguna reguler. Autentikasi IAM berlaku untuk Proksi RDS yang mengambil kredensial nama dan kata sandi pengguna dari Secrets Manager. Koneksi dari Proksi RDS ke basis data acuan tidak melewati IAM.

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 di Aurora.

Perbedaan utama dalam penggunaan IAM untuk Proksi RDS meliputi:

  • Anda tidak dapat mengonfigurasi setiap pengguna basis data dengan plugin otorisasi. Pengguna basis data masih memiliki nama dan kata sandi pengguna reguler dalam basis data. 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.

  • 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.

  • Dalam kasus autentikasi IAM basis data langsung, Anda secara selektif memilih pengguna basis data dan mengonfigurasinya untuk diidentifikasi dengan plugin autentikasi khusus. Anda kemudian dapat terhubung ke pengguna tersebut menggunakan autentikasi IAM.

    Dalam kasus penggunaan proksi, Anda memberi proksi Rahasia yang berisi nama pengguna dan kata sandi pengguna tertentu (autentikasi native). Anda kemudian terhubung ke proksi menggunakan autentikasi IAM. Di sini, Anda melakukannya dengan membuat token autentikasi dengan titik akhir proksi, bukan titik akhir basis data. Anda juga menggunakan nama pengguna yang cocok dengan salah satu nama pengguna untuk rahasia yang Anda berikan.

  • 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"

Pertimbangan untuk terhubung ke sebuah proksi dengan PostgreSQL

Untuk PostgreSQL, saat klien memulai koneksi ke basis data PostgreSQL, pesan startup akan dikirimkan. Pesan ini berisi pasangan nama parameter dan string nilai. Untuk detailnya, lihat StartupMessage dalam PostgreSQL message formats dalam dokumentasi PostgreSQL.

Saat terhubung melalui proksi RDS, pesan startup bisa menyertakan parameter yang dikenal saat ini sebagai berikut:

  • 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.