RDS for MySQL memungkinkan Anda menggunakan plugin validate_password untuk membuat kebijakan kata sandi kustom. Fitur ini meningkatkan keamanan akses database dengan memungkinkan Anda menyesuaikan aturan kompleksitas kata sandi seperti panjang dan kekuatan.
Pengenalan fungsi
Plugin validate_password untuk RDS for MySQL memberikan kontrol detail halus atas persyaratan kompleksitas kata sandi akun database:
Apakah kata sandi dapat sama dengan nama pengguna database.
Panjang minimum kata sandi.
Jumlah minimum huruf besar dan kecil.
Jumlah minimum digit.
Jumlah minimum karakter khusus.
Kebijakan pemeriksaan kekuatan kata sandi.
Prasyarat
Instans RDS for MySQL menjalankan MySQL 5.7 atau 8.0.
Penting
Plugin
validate_passwordyang diinstal pada node utama tidak disinkronkan secara otomatis ke node sekunder.Untuk instans dengan arsitektur utama/sekunder (Edisi Ketersediaan Tinggi atau Edisi Kluster), Anda harus menginstal plugin validate_password pada node utama dan sekunder secara terpisah. Anda dapat melakukan failover manual utama/sekunder untuk masuk ke node sekunder dan menginstal plugin. Jika hanya diinstal pada node utama, plugin tersebut tidak akan tersedia pada node utama baru (node sekunder asli) setelah failover, sehingga membatalkan kebijakan kata sandi.
CatatanSetelah plugin diinstal, parameter kebijakan kata sandi yang dikonfigurasi di Konsol RDS secara otomatis disinkronkan ke node sekunder. Tidak perlu menyetelnya lagi.
Batas parameter inti dan penanganan sistem
Nilai
lengthharus lebih besar dari atau sama dengannumber_count + (2 × mixed_case_count) + special_char_count. Jika nilai tidak memenuhi persyaratan ini, RDS secara otomatis menyesuaikan nilailengthagar sama dengan hasil rumus.Aturan wajib RDS
Tidak peduli apa pun pengaturan kebijakan kustom, saat Anda membuat atau memodifikasi kata sandi di Konsol RDS atau dengan memanggil Operasi API (CreateAccount atau ResetAccountPassword), kata sandi harus selalu memenuhi persyaratan berikut:
Panjangnya 8 hingga 32 karakter.
Mengandung setidaknya tiga dari jenis karakter berikut: huruf besar, huruf kecil, digit, dan karakter khusus (
!@#$%^&*()_+-=).
Mengabaikan batas panjang minimum 8 karakter (tidak disarankan)
Anda tidak dapat mengabaikan pemeriksaan wajib di Konsol RDS dengan menyesuaikan nilai parameter. Bahkan jika Anda menetapkan panjang minimum kata sandi menjadi 5, Anda tetap harus memasukkan setidaknya 8 karakter saat membuat atau memodifikasi kata sandi.
Untuk menetapkan kata sandi yang memiliki kurang dari 8 karakter, Anda dapat menggunakan perintah
SET PASSWORDuntuk melewati pemeriksaan wajib di Konsol RDS dan langsung menetapkan kata sandi 5 karakter. Metode ini cocok hanya untuk lingkungan pengujian atau skenario khusus. Jangan gunakan di lingkungan produksi.
Harga
Fitur kebijakan kata sandi kustom gratis.
Langkah 1: Instal plugin validate_password
Gunakan akun istimewa untuk terhubung ke instans MySQL.
Jalankan perintah SQL berikut untuk menginstal plugin
validate_password.INSTALL PLUGIN validate_password SONAME 'validate_password.so';Jalankan perintah SQL berikut untuk memverifikasi bahwa plugin telah diinstal.
SHOW GLOBAL VARIABLES LIKE 'validate_password%';Jika hasil serupa dengan berikut ini dikembalikan, plugin telah diinstal.

Langkah 2: Modifikasi parameter kebijakan kata sandi
Buka halaman Instans. Di bilah navigasi atas, pilih Wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.
Di panel navigasi di sebelah kiri, klik Parameters.
Ikuti petunjuk dalam Setel parameter instans untuk mencari dan memodifikasi serangkaian parameter
loose_validate_password.CatatanSebelum memodifikasi parameter, pastikan bahwa Anda telah menginstal plugin validate_password. Jika tidak, parameter yang dimodifikasi tidak akan berlaku.
Sebelum memodifikasi parameter, pastikan bahwa Anda mengetahui batasan parameter inti yang dijelaskan di bagian Penting. Untuk informasi lebih lanjut tentang kebijakan kata sandi, lihat dokumentasi resmi MySQL.
Parameter
Versi database yang didukung
Deskripsi
Contoh konfigurasi (MySQL 5.7)
loose_validate_password_check_user_name
5.7
Menentukan apakah kata sandi dapat sama dengan nama pengguna. Nilai valid:
ON (default): Diizinkan.
OFF: Tidak diizinkan.
OFF: Kata sandi tidak boleh sama dengan nama pengguna.
loose_validate_password_policy
8.0/5.7
Tingkat pemeriksaan kekuatan kata sandi. Nilai valid:
0: Memeriksa hanya panjang kata sandi.
1 (default): Memeriksa panjang kata sandi, digit, huruf besar dan kecil, serta karakter khusus.
2: Memeriksa panjang kata sandi, digit, huruf besar dan kecil, karakter khusus, dan file kamus.
CatatanKarena Anda tidak dapat menentukan file kamus, tingkat 2 sama dengan tingkat 1.
1: Memeriksa panjang kata sandi, digit, huruf besar dan kecil, serta karakter khusus.
loose_validate_password_length
8.0/5.7
Panjang minimum kata sandi.
MySQL 5.7: Nilainya bisa dari 0 hingga 256. Nilai default adalah 8.
MySQL 8.0: Nilainya bisa dari 1 hingga 12. Nilai default adalah 8.
10: Panjang minimum kata sandi adalah 10 karakter (memenuhi persyaratan: 10 >= 2 + (2 × 2) + 1 = 7).
loose_validate_password_number_count
5.7
Jumlah digit yang diperlukan dalam kata sandi.
Nilainya bisa dari 0 hingga 256. Nilai default adalah 1.
2: Kata sandi harus mengandung setidaknya 2 digit.
loose_validate_password_mixed_case_count
5.7
Jumlah huruf besar dan kecil yang diperlukan dalam kata sandi.
Nilainya bisa dari 0 hingga 256. Nilai default adalah 1.
2: Kata sandi harus mengandung setidaknya satu huruf besar dan satu huruf kecil (total 2 huruf campuran).
loose_validate_password_special_char_count
5.7
Jumlah karakter khusus yang diperlukan dalam kata sandi.
Nilainya bisa dari 0 hingga 256. Nilai default adalah 1.
1: Kata sandi harus mengandung setidaknya 1 karakter khusus.
Referensi
Anda dapat menetapkan kata sandi untuk akun database di Konsol RDS (Buat akun atau Setel ulang kata sandi akun) atau dengan memanggil Operasi API (CreateAccount atau ResetAccountPassword).
Untuk informasi tentang cara membatasi izin akun database, lihat Modifikasi izin akun, Berikan akun izin untuk mengakses database dari alamat IP tertentu, dan Berikan akun izin untuk mengakses hanya tabel, tampilan, atau bidang tertentu.