Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menggunakan SCRAM untuk enkripsi kata sandi PostgreSQL

Mode fokus
Menggunakan SCRAM untuk enkripsi kata sandi PostgreSQL - 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.

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

The Salted Challenge Response Authentication Mechanism (SCRAM) adalah alternatif dari algoritma message digest (MD5) default PostgreSQL untuk mengenkripsi kata sandi. Mekanisme otentikasi SCRAM dianggap lebih aman daripada. MD5 Untuk mempelajari selengkapnya tentang dua pendekatan berbeda untuk mengamankan kata sandi ini, lihat Password Authentication dalam dokumentasi PostgreSQL.

Kami menyarankan Anda menggunakan SCRAM daripada MD5 sebagai skema enkripsi kata sandi untuk cluster DB Anda. Instans DB RDS for PostgreSQL. Ini adalah mekanisme respons tantangan kriptografi yang menggunakan algoritma scram-sha-256 untuk autentikasi dan enkripsi kata sandi.

Anda mungkin perlu memperbarui pustaka untuk aplikasi klien Anda agar dapat mendukung SCRAM. Misalnya, versi JDBC sebelum 42.2.0 tidak mendukung SCRAM. Untuk informasi selengkapnya, lihat PostgreSQL JDBC Driver dalam dokumentasi Driver JDBC PostgreSQL. Untuk daftar driver PostgreSQL dan dukungan SCRAM lainnya, lihat List of drivers dalam dokumentasi PostgreSQL.

RDS for PostgreSQL versi 13.1 dan lebih tinggi mendukung scram-sha-256. Versi ini juga memungkinkan Anda mengonfigurasi instans DB agar mengharuskan SCRAM, seperti yang dibahas dalam prosedur berikut.

Mengatur instans DB RDS for PostgreSQL agar meminta SCRAM

Anda dapat meminta instans DB RDS for PostgreSQL untuk hanya menerima kata sandi yang menggunakan algoritma scram-sha-256.

penting

Untuk Proksi RDS yang ada dengan basis data PostgreSQL, jika Anda mengubah autentikasi basis data untuk hanya menggunakan SCRAM, proksi akan menjadi tidak tersedia selama maksimal 60 detik. Untuk menghindari masalah ini, lakukan salah satu tindakan berikut:

  • Pastikan basis data mengizinkan autentikasi SCRAM dan MD5.

  • Untuk hanya menggunakan autentikasi SCRAM, buat proksi baru, migrasikan lalu lintas aplikasi Anda ke proksi baru, lalu hapus proksi yang sebelumnya terkait dengan basis data.

Sebelum melakukan perubahan pada sistem, pastikan Anda telah memahami proses lengkapnya, sebagai berikut:

  • Dapatkan informasi semua peran dan enkripsi kata sandi untuk semua pengguna basis data.

  • Periksa kembali pengaturan parameter instans DB RDS for PostgreSQL untuk parameter yang mengontrol enkripsi kata sandi.

  • Jika instans DB RDS for PostgreSQL menggunakan grup parameter default, maka Anda harus membuat grup parameter DB kustom, lalu menerapkannya ke instans DB RDS for PostgreSQL agar Anda dapat memodifikasi parameter saat diperlukan. Jika instans DB RDS for PostgreSQL menggunakan grup parameter kustom, Anda dapat memodifikasi parameter yang diperlukan nanti selama prosesnya sesuai kebutuhan.

  • Ubah parameter password_encryption ke scram-sha-256.

  • Beri tahu semua pengguna basis data bahwa mereka perlu memperbarui kata sandi. Lakukan hal yang sama untuk akun postgres Anda. Kata sandi baru telah dienkripsi dan disimpan menggunakan algoritma scram-sha-256.

  • Verifikasikan bahwa semua kata sandi telah dienkripsi menggunakan jenis enkripsi tersebut.

  • Jika semua kata sandi menggunakan scram-sha-256, Anda dapat mengubah parameter rds.accepted_password_auth_method dari md5+scram ke scram-sha-256.

Awas

Setelah Anda mengubah rds.accepted_password_auth_method ke scram-sha-256 saja, setiap pengguna (peran) dengan kata sandi terenkripsi md5 tidak dapat terhubung.

Penyiapan meminta SCRAM untuk instans DB RDS for PostgreSQL

Sebelum membuat perubahan apa pun pada instans DB RDS for PostgreSQL, periksa semua akun pengguna basis data yang ada. Periksa juga jenis enkripsi yang digunakan untuk kata sandi. Anda dapat melakukan semua tugas ini menggunakan ekstensi rds_tools. Untuk melihat versi PostgreSQL yang rds_tools didukung, lihat Versi ekstensi untuk Amazon RDS for PostgreSQL.

Untuk mendapatkan daftar pengguna (peran) basis data dan metode enkripsi kata sandi
  1. Gunakan psql untuk terhubung ke instans DB RDS for PostgreSQL Anda, sebagaimana yang ditunjukkan di bawah ini.

    psql --host=db-name.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. Instal ekstensi rds_tools.

    postgres=> CREATE EXTENSION rds_tools; CREATE EXTENSION
  3. Dapatkan daftar peran dan enkripsi.

    postgres=> SELECT * FROM rds_tools.role_password_encryption_type();

    Anda akan melihat output yang mirip dengan berikut ini.

    rolname | encryption_type ----------------------+----------------- pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | lab_tester | md5 user_465 | md5 postgres | md5 (8 rows)

Membuat grup parameter DB kustom

catatan

Jika instans DB RDS for PostgreSQL sudah menggunakan grup parameter kustom, Anda tidak perlu membuat grup parameter yang baru.

Untuk ringkasan grup parameter Amazon RDS, lihat Bekerja dengan parameter pada instans DB RDS for PostgreSQL.

Jenis enkripsi kata sandi yang digunakan untuk kata sandi yang diatur dalam satu parameter, password_encryption. Enkripsi yang diizinkan oleh instans DB RDS for PostgreSQL diatur dalam parameter lain, rds.accepted_password_auth_method. Mengubah salah satu dari nilai default ini mengharuskan Anda membuat grup parameter DB kustom, lalu menerapkannya ke instans.

Anda juga dapat menggunakan AWS Management Console atau RDS API untuk membuat DB. Untuk informasi lebih lanjut, lihat

Anda kini dapat mengaitkan grup parameter kustom dengan instans DB.

Untuk membuat grup parameter DB kustom
  1. Gunakan perintah CLI create-db-parameter-group untuk membuat grup parameter DB kustom. Contoh ini menggunakan postgres13 sebagai sumber untuk grup parameter kustom ini.

    Untuk Linux, macOS, atau Unix:

    aws rds create-db-parameter-group --db-parameter-group-name 'docs-lab-scram-passwords' \ --db-parameter-group-family postgres13 --description 'Custom parameter group for SCRAM'

    Untuk Windows:

    aws rds create-db-parameter-group --db-parameter-group-name "docs-lab-scram-passwords" ^ --db-parameter-group-family postgres13 --description "Custom DB parameter group for SCRAM"
  2. Gunakan perintah CLI modify-db-instance untuk menerapkan grup parameter kustom ini ke klaster DB RDS for PostgreSQL.

    Untuk Linux, macOS, atau Unix:

    aws rds modify-db-instance --db-instance-identifier 'your-instance-name' \ --db-parameter-group-name "docs-lab-scram-passwords

    Untuk Windows:

    aws rds modify-db-instance --db-instance-identifier "your-instance-name" ^ --db-parameter-group-name "docs-lab-scram-passwords

    Untuk menyinkronkan ulang instans DB RDS for PostgreSQL dengan grup parameter DB kustom, Anda perlu melakukan boot ulang instans primer dan semua instans lain klaster. Untuk meminimalkan dampak pada pengguna Anda, jadwalkan proses ini agar berlangsung selama masa pemeliharaan rutin.

Mengonfigurasi enkripsi kata sandi agar menggunakan SCRAM

Mekanisme enkripsi kata sandi yang digunakan oleh instans DB RDS for PostgreSQL diatur dalam grup parameter DB dalam parameter password_encryption. Nilai yang diizinkan tidak ditentukan, md5, atau scram-sha-256. Nilai default bergantung pada versi RDS for PostgreSQL, sebagai berikut:

  • RDS for PostgreSQL 14 dan versi di atasnya – Default adalah scram-sha-256

  • RDS for PostgreSQL 13 – Default adalah md5

Dengan grup parameter DB kustom yang terhubung ke instans DB RDS for PostgreSQL, Anda dapat memodifikasi nilai untuk parameter enkripsi kata sandi.

Berikutnya, konsol RDS akan menunjukkan nilai default parameter password_encryption untuk RDS for PostgreSQL.
Untuk mengubah pengaturan enkripsi kata sandi menjadi scram-sha-256
  • Ubah nilai enkripsi kata sandi menjadi scram-sha-256, sebagaimana ditunjukkan berikut ini. Perubahan dapat langsung diterapkan karena parameternya dinamis, jadi mulai ulang tidak diperlukan agar perubahan diterapkan.

    Untuk Linux, macOS, atau Unix:

    aws rds modify-db-parameter-group --db-parameter-group-name \ 'docs-lab-scram-passwords' --parameters 'ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate'

    Untuk Windows:

    aws rds modify-db-parameter-group --db-parameter-group-name ^ "docs-lab-scram-passwords" --parameters "ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate"

Memigrasikan kata sandi untuk peran pengguna ke SCRAM

Anda dapat memigrasikan kata sandi untuk peran pengguna ke SCRAM sebagaimana dijelaskan berikut.

Untuk memigrasikan kata sandi pengguna (peran) basis data dari MD5 ke SCRAM
  1. Masuk sebagai pengguna administrator (nama pengguna default, postgres) sebagaimana ditunjukkan berikut.

    psql --host=db-name.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. Periksa pengaturan parameter password_encryption pada instans DB RDS for PostgreSQL menggunakan perintah berikut.

    postgres=> SHOW password_encryption; password_encryption --------------------- md5 (1 row)
  3. Ubah nilai parameter ini menjadi scram-sha-256. Ini adalah parameter dinamis, jadi Anda tidak perlu mem-boot ulang instans setelah melakukan perubahan ini. Periksa kembali nilainya untuk memastikan bahwa sekarang diatur kescram-sha-256, sebagai berikut.

    postgres=> SHOW password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
  4. Beri tahu semua pengguna basis data untuk mengubah kata sandi mereka. Pastikan juga untuk mengubah kata sandi Anda sendiri untuk akun postgres (pengguna basis data dengan hak akses rds_superuser).

    labdb=> ALTER ROLE postgres WITH LOGIN PASSWORD 'change_me'; ALTER ROLE
  5. Ulangi proses tersebut untuk semua basis data di Anda. instans DB RDS for PostgreSQL.

Mengubah parameter untuk mengharuskan SCRAM

Ini adalah langkah terakhir dalam proses. Setelah Anda membuat perubahan dalam prosedur berikut, setiap akun pengguna (peran) yang masih menggunakan enkripsi md5 untuk kata sandi tidak dapat masuk ke . instans DB RDS for PostgreSQL.

rds.accepted_password_auth_method menentukan metode enkripsi yang instans DB RDS for PostgreSQL menerima untuk kata sandi pengguna selama proses masuk. Nilai default-nya adalah md5+scram, yang berarti bahwa salah satu metode diterima. Pada gambar berikut, Anda dapat menemukan pengaturan default untuk parameter ini.

Konsol RDS menunjukkan nilai default dan yang diizinkan untuk parameter rds.accepted_password_auth_method.

Nilai yang diizinkan untuk parameter ini adalah md5+scram atau scram saja. Mengubah nilai parameter ini ke scram akan menjadikannya sebagai persyaratan.

Untuk mengubah nilai parameter agar mengharuskan autentikasi SCRAM untuk kata sandi
  1. Verifikasikan bahwa semua kata sandi pengguna basis data untuk semua basis data di instans DB RDS for PostgreSQL menggunakan scram-sha-256 untuk enkripsi kata sandi. Untuk melakukannya, buat kueri rds_tools untuk peran (pengguna) dan jenis enkripsi, sebagai berikut.

    postgres=> SELECT * FROM rds_tools.role_password_encryption_type(); rolname | encryption_type ----------------------+----------------- pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | lab_tester | scram-sha-256 user_465 | scram-sha-256 postgres | scram-sha-256 ( rows)
  2. Ulangi kueri di semua instans DB dalam Anda. Instans DB RDS for PostgreSQL.

    Jika semua kata sandi menggunakan scram-sha-256, Anda dapat melanjutkan.

  3. Ubah nilai autentikasi kata sandi yang diterima menjadi scram-sha-256, sebagai berikut.

    Untuk Linux, macOS, atau Unix:

    aws rds modify-db-parameter-group --db-parameter-group-name 'docs-lab-scram-passwords' \ --parameters 'ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate'

    Untuk Windows:

    aws rds modify-db-parameter-group --db-parameter-group-name "docs-lab-scram-passwords" ^ --parameters "ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate"

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.