Otentikasi Active Directory (AD) memungkinkan pengguna perusahaan masuk ke instans RDS PostgreSQL Anda menggunakan kredensial AD mereka—tanpa memerlukan password database terpisah. Panduan ini akan memandu Anda melalui proses konfigurasi pengontrol domain AD pada instans Elastic Compute Service (ECS), lalu menghubungkan instans RDS Anda ke domain AD yang dikelola sendiri tersebut menggunakan LDAP.
Cara kerja
Saat pengguna terhubung ke instans RDS, instans tersebut meneruskan permintaan otentikasi ke pengontrol domain AD melalui Lightweight Directory Access Protocol (LDAP). Pengontrol domain memverifikasi kredensial pengguna dan mengembalikan hasilnya. Jika otentikasi AD diaktifkan untuk koneksi tersebut, pengontrol domain AD yang menangani verifikasi password. Jika AD tidak digunakan untuk koneksi tertentu, ApsaraDB RDS akan kembali menggunakan verifikasi password internalnya.
Instans RDS dan pengontrol 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 versi 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 dinonaktifkan secara default).
Akun domain yang termasuk dalam kelompok Domain Admins.
Akses ke Konsol ApsaraDB RDS.
Langkah 1: Siapkan pengontrol domain AD di ECS
Pengontrol domain AD harus menjalankan Windows Server. Panduan ini menggunakan Windows Server 2016 sebagai contoh.
Masuk ke instans ECS dan buka Server Manager.
Di panel navigasi sebelah kiri, klik Dashboard, lalu klik Add roles and features.

Di Add Roles and Features Wizard, konfigurasikan setiap tab sebagai 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 di 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.
Di panel navigasi sebelah kiri, klik AD DS. Di pojok kanan atas, klik More.

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

Di Active Directory Domain Services Configuration Wizard, konfigurasikan hal-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 pengontrol domain AD, masuk kembali sebelum melanjutkan ke langkah berikutnya.
Langkah 2: Tambahkan pengguna ke pengontrol 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
Di Server Manager, klik AD DS di panel navigasi sebelah kiri. Klik kanan pengontrol domain dan pilih Active Directory Users and Computers.

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

Masukkan password, 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 menambahkan pengguna ke kelompok Domain Admins.
Contoh ini menggunakan ldapuser sebagai pengguna standar. Akun ini digunakan untuk masuk ke instans RDS.
Langkah 3: Konfigurasikan aturan security group untuk ECS
Pengontrol domain AD memerlukan beberapa port agar terbuka. Gunakan security group khusus untuk pengontrol domain daripada membaginya dengan instans ECS lainnya.
Masuk ke Konsol ECS dan buka Instances & Images > Instances.
Di bilah navigasi atas, pilih wilayah instans ECS.
Klik ID instans ECS, lalu klik Security Groups di panel navigasi sebelah kiri.
Klik Add Rules pada kolom Actions.
Di tab Inbound, klik Add Rule untuk mengizinkan instans RDS mengakses instans ECS melalui port-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: Konfigurasikan instans RDS
Buat akun database yang sesuai
Di 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 (
ldapuserdalam contoh ini). Password dapat berbeda. Saat otentikasi AD aktif, pengontrol domain AD yang memverifikasi password. Saat tidak aktif, ApsaraDB RDS menggunakan password akun yang ditetapkan di konsol.
Konfigurasikan layanan domain AD
Di panel navigasi sebelah 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 diberikan secara otomatis 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 yang ditentukan. 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 md5Klik 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
Terhubung ke instans RDS menggunakan tool command-line psql. Gunakan kredensial pengguna standar AD, bukan password akun RDS.
psql -h <RDS instance endpoint> -U ldapuser -p 5432 -d postgresSaat diminta memasukkan password, masukkan password AD untuk ldapuser (bukan password 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:
Overwrite existing service information — mengganti semua catatan saat ini.
Additional service information (highest priority) — menyisipkan catatan baru di awal, memberikan prioritas lebih tinggi daripada catatan yang sudah ada.
Additional service information (lowest priority) — menambahkan catatan baru di akhir, memberikan prioritas lebih rendah daripada catatan yang sudah ada.
Format yang diperlukan:
TYPE|DATABASE|USER1|ADDRESS|MASK|METHOD|OPTIONCatatan contoh:
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 di 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 di kolom Actions untuk melihat detail perubahan. Jika modifikasi gagal, status akan menunjukkan Not Taking Effect. Klik Change log untuk melihat pesan error.
