Otentikasi Active Directory (AD) memungkinkan pengguna perusahaan masuk ke instans RDS PostgreSQL Anda menggunakan kredensial AD mereka—tanpa memerlukan kata sandi database terpisah. Panduan ini memandu Anda melalui proses konfigurasi controller domain AD pada instans Elastic Compute Service (ECS), lalu menghubungkan instans RDS ke domain AD yang dikelola sendiri tersebut menggunakan LDAP.
Cara kerja
Saat pengguna terhubung ke instans RDS, instans tersebut meneruskan permintaan otentikasi ke controller domain AD melalui Lightweight Directory Access Protocol (LDAP). Controller domain memverifikasi kredensial pengguna dan mengembalikan hasilnya. Jika otentikasi AD diaktifkan untuk koneksi tersebut, verifikasi kata sandi dilakukan oleh controller domain AD. Jika AD tidak digunakan untuk koneksi tertentu, ApsaraDB RDS akan menggunakan verifikasi kata sandi internalnya sendiri.
Instans RDS dan controller domain AD berkomunikasi secara eksklusif melalui jaringan pribadi. Keduanya harus berada dalam virtual private cloud (VPC) yang sama.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Instans ApsaraDB RDS for PostgreSQL yang menjalankan PostgreSQL 10 atau versi lebih baru, versi mesin minor 20210228 atau lebih baru, dan menggunakan cloud disks. Untuk memperbarui versi mesin minor, lihat Perbarui versi mesin minor instans ApsaraDB RDS for PostgreSQL.
-
Instans ECS dalam VPC yang sama dengan instans RDS, menjalankan Windows Server 2016 atau versi lebih baru.
-
Security group ECS dikonfigurasi untuk mengizinkan inbound traffic dari alamat IP pribadi instans RDS. Lihat Tambahkan aturan security group. Jika firewall ECS diaktifkan, konfigurasikan juga untuk mengizinkan traffic yang sama (firewall secara default dinonaktifkan).
-
Akun domain yang termasuk dalam kelompok Domain Admins.
-
Akses ke Konsol ApsaraDB RDS.
Langkah 1: Siapkan controller domain AD pada ECS
Controller domain AD harus menjalankan Windows Server. Panduan ini menggunakan Windows Server 2016 sebagai contoh.
-
Masuk ke instans ECS dan buka Server Manager.
-
Pada panel navigasi kiri, klik Dashboard, lalu klik Add roles and features.

-
Pada Add Roles and Features Wizard, konfigurasikan setiap tab sesuai petunjuk berikut:
Instans ECS harus memiliki alamat IP statis. Alamat IP dinamis menyebabkan server DNS menjadi tidak tersedia.
Tab Pengaturan Before You Begin Gunakan pengaturan default. Installation Type Gunakan pengaturan default. Server Selection Gunakan pengaturan default. Server Roles Pilih Active Directory Domain Services, lalu klik Add Features pada kotak dialog. Pilih DNS Server, lalu klik Add Features. Features Gunakan pengaturan default. AD DS Gunakan pengaturan default. DNS Server Gunakan pengaturan default. Install Klik Install. -
Setelah instalasi selesai, klik Close.
-
Pada panel navigasi kiri, klik AD DS. Di pojok kanan atas, klik More.

-
Pada panel All Servers Task Details and Notifications, klik Promote this server to a domain controller.

-
Pada Active Directory Domain Services Configuration Wizard, konfigurasikan hal berikut:
Tab Pengaturan Deployment Configuration Pilih Add a new forest dan atur Root domain name. Contoh ini menggunakan pgsqldomain.net(pgsqldomainadalah awalan,netadalah akhiran). Gunakan nama domain root yang sama sepanjang konfigurasi.
Domain Controller Options Atur Directory Services Restore Mode (DSRM) password. 
Server Selection Hapus centang pada Create DNS delegation. 
Additional Options, Paths, Review Options Gunakan pengaturan default. Prerequisites Check Klik Install. -
Setelah instans ECS restart sebagai controller domain AD, masuk kembali sebelum melanjutkan ke langkah berikutnya.
Langkah 2: Tambahkan pengguna ke controller domain AD
Anda memerlukan dua jenis pengguna AD: pengguna administrator (digunakan oleh LDAP untuk bind ke direktori) dan pengguna standar (digunakan untuk masuk ke instans RDS).
Tambahkan pengguna administrator
-
Pada Server Manager, klik AD DS pada panel navigasi kiri. Klik kanan controller domain dan pilih Active Directory Users and Computers.

-
Perluas pgsqldomain.net, klik kanan Users, lalu pilih New > User.
pgsqldomain.netadalah nama domain root yang ditetapkan pada Langkah 1.
-
Masukkan username dan klik Next.

-
Masukkan kata sandi, pilih Password never expires, lalu klik Next dan Finish.

-
Klik ganda pengguna baru tersebut dan tambahkan ke kelompok Domain Admins.


Tambahkan pengguna standar
Ikuti langkah-langkah yang sama seperti di atas untuk membuat pengguna standar. Lewati langkah penambahan pengguna ke kelompok Domain Admins.
Contoh ini menggunakan ldapuser sebagai pengguna standar. Akun ini digunakan untuk masuk ke instans RDS.
Langkah 3: Konfigurasi aturan security group untuk ECS
Controller domain AD memerlukan beberapa port agar terbuka. Gunakan security group khusus untuk controller domain, jangan gunakan bersama dengan instans ECS lainnya.
-
Masuk ke Konsol ECS dan buka Instances & Images > Instances.
-
Pada bilah navigasi atas, pilih wilayah instans ECS.
-
Klik ID instans ECS, lalu klik Security Groups pada panel navigasi kiri.
-
Klik Add Rules pada kolom Actions.
-
Pada tab Inbound, klik Add Rule untuk mengizinkan instans RDS mengakses instans ECS melalui port berikut:
Protokol Port Layanan TCP 88 Otentikasi Kerberos TCP 135 RPC TCP/UDP 389 LDAP TCP 445 CIFS TCP 3268 Global Catalog TCP/UDP 53 DNS TCP 49152–65535 Range port dinamis default (masukkan sebagai 49152/65535)
Langkah 4: Konfigurasi instans RDS
Buat akun database yang sesuai
-
Pada Konsol ApsaraDB RDS, temukan instans RDS dan klik ID-nya.
-
Buat akun bernama
ldapuser. Lihat Buat akun.Nama akun RDS harus persis sama dengan nama pengguna standar AD (
ldapuserpada contoh ini). Kata sandi boleh berbeda. Saat otentikasi AD aktif, controller domain AD yang memverifikasi kata sandi. Saat tidak aktif, ApsaraDB RDS menggunakan kata sandi akun yang ditetapkan di konsol.
Konfigurasi layanan domain AD
-
Pada panel navigasi kiri, klik Accounts, lalu buka tab AD Domain Services. Saat pertama kali membuka tab ini, sistem membuat dua catatan default:
host all all 0.0.0.0/0 md5 host replication all 0.0.0.0/0 md5Anda dapat menghapus atau mengubah catatan-catatan ini.
-
Klik Edit pada catatan pertama dan konfigurasikan parameter berikut: Untuk bidang OPTION, gunakan format berikut:
Parameter Nilai contoh Deskripsi Priority 0Prioritas catatan. 0adalah prioritas tertinggi dan secara otomatis diberikan ke catatan pertama.TYPE hostJenis koneksi. hostcocok untuk koneksi TCP/IP baik SSL maupun non-SSL.hostsslhanya cocok untuk koneksi SSL (memerlukan enkripsi SSL diaktifkan).hostnosslhanya cocok untuk koneksi non-SSL.DATABASE allDatabase yang dapat diakses oleh pengguna tertentu. Gunakan alluntuk mengizinkan akses ke semua database. Pisahkan beberapa database dengan koma.USER ldapuserPengguna standar AD yang diizinkan terhubung. Pisahkan beberapa pengguna dengan koma. Akun Domain Admins tidak dapat digunakan di sini. ADDRESS 0.0.0.0/0Alamat IP sumber yang diizinkan. 0.0.0.0/0mengizinkan koneksi dari alamat IP mana pun.MASK (biarkan kosong) Subnet mask untuk alamat IP di ADDRESS. Biarkan kosong saat menggunakan notasi CIDR. METHOD ldapMetode autentikasi. Harus huruf kecil. Nilai yang valid: trust,reject,scram-sha-256,md5,password,gss,sspi,ldap,radius,cert,pam.OPTION Lihat di bawah Opsi LDAP yang diperlukan saat METHOD adalah ldap.ldapserver=<Private IP address of the ECS instance> ldapbasedn="CN=Users,DC=<domain prefix>,DC=<domain suffix>" ldapbinddn="CN=<AD administrator username>,CN=Users,DC=<domain prefix>,DC=<domain suffix>" ldapbindpasswd="<AD administrator password>" ldapsearchattribute="sAMAccountName"Untuk domain contoh
pgsqldomain.netdengan pengguna administratoradminuser:ldapserver=<ECS private IP> ldapbasedn="CN=Users,DC=pgsqldomain,DC=net" ldapbinddn="CN=adminuser,CN=Users,DC=pgsqldomain,DC=net" ldapbindpasswd="<adminuser password>" ldapsearchattribute="sAMAccountName"Untuk daftar lengkap parameter OPTION, lihat dokumentasi metode autentikasi PostgreSQL.
-
Klik add di sebelah kanan catatan layanan domain AD untuk menambahkan catatan fallback dengan nilai berikut:
host all all 0.0.0.0/0 md5 -
Klik OK, lalu klik Submit.
Setelah Anda mengklik Submit, instans RDS akan berstatus Maintaining Instance selama sekitar satu menit. Konfigurasi baru hanya berlaku untuk koneksi baru. Tutup koneksi yang ada dan sambungkan ulang agar perubahan diterapkan.
Langkah 5: Uji koneksi
Hubungkan ke instans RDS menggunakan tool command-line psql. Gunakan kredensial pengguna standar AD, bukan kata sandi akun RDS.
psql -h <RDS instance endpoint> -U ldapuser -p 5432 -d postgres
Saat diminta memasukkan kata sandi, masukkan kata sandi AD untuk ldapuser (bukan kata sandi akun RDS).
Instal client PostgreSQL sebelum menggunakan psql. Untuk metode koneksi lainnya, lihat Hubungkan ke instans ApsaraDB RDS for PostgreSQL.
Impor catatan layanan domain AD secara massal (opsional)
Untuk mengonfigurasi beberapa catatan layanan domain AD sekaligus, gunakan fitur impor massal.
Mode impor:
-
Timpa informasi layanan yang ada — mengganti semua catatan saat ini.
-
Informasi layanan tambahan (prioritas tertinggi) — menyisipkan catatan baru di awal, memberikan prioritas lebih tinggi daripada catatan yang ada.
-
Informasi layanan tambahan (prioritas terendah) — menambahkan catatan baru di akhir, memberikan prioritas lebih rendah daripada catatan yang ada.
Format yang diperlukan:
TYPE|DATABASE|USER1|ADDRESS|MASK|METHOD|OPTION
Contoh catatan:
host|all|ldapuser|0.0.0.0/0||ldap|ldapserver=<ECS private IP> ldapbasedn="CN=Users,DC=pgsqldomain,DC=net" ldapbinddn="CN=<AD administrator username>,CN=Users,DC=pgsqldomain,DC=net" ldapbindpasswd="<AD administrator password>" ldapsearchattribute="sAMAccountName"
Masukkan catatan-catatan tersebut ke dalam kotak teks Edit AD domain, lalu pilih mode impor dan kirim.
Lihat riwayat edit layanan domain AD
-
Di Konsol RDS, klik ID instans, lalu buka Accounts > AD Domain Services Edit History.
-
Klik changedetails pada kolom Actions untuk melihat detail perubahan. Jika modifikasi gagal, status akan menunjukkan Not Taking Effect. Klik Change log untuk melihat pesan error.
