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.

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 instans DB RDS. Untuk informasi umum tentang cara menggunakan IAM, lihat Keamanan di Amazon RDS Amazon.

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 instans 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 proksi dengan 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 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.