Anda dapat menetapkan dan mengelola kebijakan sandi untuk pengguna database instance AlloyDB untuk PostgreSQL Anda.
Untuk ringkasan metode autentikasi yang tersedia di AlloyDB, lihat Autentikasi.
Tentang kebijakan sandi
Jika pengguna database aplikasi Anda melakukan autentikasi dengan instance AlloyDB menggunakan metode bawaan berbasis sandi, Anda dapat meningkatkan keamanan autentikasi dengan menerapkan sandi kuat. Anda dapat menentukan dan mengaktifkan penerapan sandi dengan menetapkan kebijakan sandi pada instance Anda.
Batasan kebijakan sandi
Kebijakan sandi AlloyDB memiliki batasan berikut:
Kebijakan sandi hanya berlaku untuk sandi yang dibuat setelah Anda menetapkan kebijakan. Sandi pengguna yang ada tidak terpengaruh oleh perubahan kebijakan sandi.
Kebijakan sandi hanya berlaku untuk sandi yang dimasukkan sebagai teks biasa. Kebijakan sandi tidak berlaku untuk sandi yang dimasukkan sebagai string terenkripsi.
Menetapkan kebijakan sandi instance
Anda dapat menetapkan kebijakan sandi pada instance dengan mengonfigurasi tanda sandi pada instance.
Larang nama pengguna: mencegah nama pengguna digunakan dalam sandi.
Kompleksitas sandi: periksa apakah sandi berisi jumlah karakter huruf kecil, huruf besar, angka, dan non-alfanumerik yang diizinkan. Periksa juga apakah panjang sandi valid.
Masa berlaku sandi: pastikan sandi diubah secara berkala.
Untuk mengetahui daftar tanda kebijakan sandi yang didukung AlloyDB, lihat Tanda kebijakan sandi.
Menerapkan kerumitan sandi
Untuk menerapkan kebijakan kompleksitas sandi, lakukan hal berikut:
- Tetapkan
password.enforce_complexityflag keON. - Gunakan flag kebijakan sandi untuk menentukan kebijakan sandi Anda.
Misalnya, untuk menerapkan kebijakan sandi yang menyatakan bahwa sandi harus berisi setidaknya satu huruf besar, satu angka, dan minimal 10 karakter, Anda harus menetapkan tanda berikut:
password.enforce_complexitykeONpassword.min_uppercase_letterske1password.min_numerical_charske1password.min_pass_lengthke10
Setelah tanda ini disetel, upaya untuk menyetel sandi pengguna database yang tidak mematuhi kebijakan sandi ini akan gagal. Misalnya, dengan kebijakan ini
ditetapkan, perintah klien psql berikut gagal karena sandi foo kurang dari
10 karakter dan tidak berisi angka atau karakter huruf kapital.
CREATE USER USERNAME WITH PASSWORD 'foo';
Menerapkan masa berlaku sandi
Untuk menerapkan kebijakan masa berlaku sandi, lakukan hal berikut:
Tetapkan
password.enforce_expirationflag keON.Tetapkan
password.expiration_in_daysflag ke jumlah hari setelah sandi ditetapkan hingga masa berlakunya berakhir.Tetapkan
password.notify_expiration_in_daysflag ke jumlah hari sebelum masa berlaku sandi habis saat pengguna mulai menerima notifikasi habis masa berlaku sandi.
Misalnya, untuk menerapkan kebijakan sandi yang menyatakan bahwa masa berlaku sandi berakhir setelah 30 hari dan pengguna diberi tahu 15 hari sebelum masa berlaku sandi mereka berakhir, Anda menetapkan hal berikut:
password.enforce_expirationkeONpassword.expiration_in_dayske30password.notify_expiration_in_dayske15
Jika masa berlaku sandi pengguna berakhir, pengguna tersebut tidak dapat terhubung ke instance AlloyDB. Untuk mereset sandi pengguna, lihat Mengubah sandi pengguna database.
Jangan izinkan nama pengguna dalam sandi
Untuk menerapkan kebijakan yang mencegah sandi berisi nama pengguna, lakukan hal berikut:
- Tetapkan
password.enforce_password_does_not_contain_usernamekeON.
Misalnya, untuk memastikan bahwa sandi tidak berisi nama pengguna sebagai substring, Anda menetapkan hal berikut:
password.enforce_password_does_not_contain_usernamekeON
Jika tanda ini disetel, operasi berikut akan gagal karena sandi
alex-secret berisi nama pengguna Alex:
CREATE USER Alex WITH PASSWORD 'alex-secret';