Setelah memutakhirkan ke ClusterControl 1.8.2, Anda akan mendapatkan spanduk pemberitahuan berikut:
Ada apa dengan itu? Ini adalah pemberitahuan penyusutan sistem manajemen pengguna saat ini yang mendukung sistem manajemen pengguna baru yang ditangani oleh layanan pengontrol ClusterControl (cmon). Saat mengklik spanduk, Anda akan diarahkan ke halaman pembuatan pengguna untuk membuat pengguna admin baru, seperti yang dijelaskan dalam panduan pengguna ini.
Dalam posting blog ini, kita akan melihat sistem manajemen pengguna baru yang diperkenalkan di ClusterControl 1.8.2, dan untuk melihat perbedaannya dari yang sebelumnya. Hanya untuk klarifikasi, sistem manajemen pengguna lama masih akan bekerja berdampingan dengan otentikasi pengguna baru dan sistem manajemen hingga Q1 2022. Mulai sekarang, semua instalasi baru untuk ClusterControl 1.8.2 dan yang lebih baru akan dikonfigurasi dengan pengguna baru sistem manajemen.
Manajemen Pengguna sebelum 1.8.2
ClusterControl 1.8.1 dan yang lebih lama menyimpan informasi pengguna dan akuntansi di dalam database UI web yang disebut "dcps". Database ini independen dari database cmon yang digunakan oleh layanan ClusterControl Controller (cmon).
Akun Pengguna dan Otentikasi
Akun pengguna terdiri dari informasi berikut:
-
Nama
-
Zona waktu
-
Email (digunakan untuk otentikasi)
-
Sandi
-
Peran
-
Tim
Seseorang akan menggunakan alamat email untuk masuk ke GUI ClusterControl, seperti yang ditunjukkan pada tangkapan layar berikut:
Setelah login, ClusterControl akan mencari organisasi tempat pengguna berada dan kemudian menetapkan kontrol akses berbasis peran (RBAC) untuk mengakses cluster dan fungsionalitas tertentu. Sebuah tim dapat memiliki nol atau lebih cluster, sementara pengguna harus menjadi bagian dari satu atau lebih tim. Membuat pengguna membutuhkan peran dan tim yang dibuat sebelumnya. ClusterControl hadir dengan tim default yang disebut Admin, dan 3 peran default - Admin Super, Admin, dan Pengguna.
Izin dan Kontrol Akses
ClusterControl 1.8.1 dan yang lebih lama menggunakan kontrol akses berbasis UI berdasarkan penetapan peran. Dalam istilah lain, kami menyebutnya kontrol akses berbasis peran (RBAC). Administrator akan membuat peran, dan setiap peran akan diberikan serangkaian izin untuk mengakses fitur dan halaman tertentu. Penegakan peran terjadi di sisi front-end, di mana layanan pengontrol ClusterControl (cmon) tidak tahu apakah pengguna aktif memiliki kemampuan untuk mengakses fungsionalitas karena informasi tidak pernah dibagikan di antara dua mesin otentikasi ini. Hal ini akan membuat autentikasi dan otorisasi lebih sulit untuk dikontrol di masa mendatang, terutama saat menambahkan lebih banyak fitur yang kompatibel dengan antarmuka GUI dan CLI.
Tangkapan layar berikut menunjukkan fitur yang tersedia yang dapat dikontrol melalui RBAC:
Administrator hanya perlu memilih tingkat akses yang relevan untuk fitur tertentu, dan itu akan disimpan di dalam database "dcps" dan kemudian digunakan oleh ClusterControl GUI untuk mengizinkan sumber daya UI ke pengguna GUI. Daftar akses yang dibuat di sini tidak ada hubungannya dengan pengguna CLI.
LDAP
ClusterControl pra-1.8.1 menggunakan modul PHP LDAP untuk autentikasi LDAP. Ini mendukung layanan direktori Active Directory, OpenLDAP dan FreeIPA tetapi hanya sejumlah atribut LDAP yang dapat digunakan untuk identifikasi pengguna seperti uid, cn atau sAMAccountName. Implementasinya cukup mudah dan tidak mendukung pemfilteran basis pengguna/grup tingkat lanjut, pemetaan atribut, dan implementasi TLS.
Berikut adalah informasi yang diperlukan untuk setelan LDAP:
Karena ini adalah layanan frontend, file log LDAP disimpan di bawah direktori aplikasi web, khususnya di /var/www/html/clustercontrol/app/log/cc-ldap.log. Pengguna yang diautentikasi akan dipetakan ke peran dan tim ClusterControl tertentu, seperti yang ditentukan di halaman pemetaan grup LDAP.
Pengelolaan Pengguna pasca-1.8.2
Dalam versi baru ini, ClusterControl mendukung penangan autentikasi, autentikasi frontend (menggunakan alamat email) dan autentikasi backend (menggunakan nama pengguna). Untuk otentikasi backend, ClusterControl menyimpan informasi pengguna dan akuntansi di dalam database cmon yang digunakan oleh layanan ClusterControl Controller (cmon).
Akun Pengguna dan Otentikasi
Akun pengguna terdiri dari informasi berikut:
-
Nama pengguna (digunakan untuk otentikasi)
-
Alamat email
-
Nama lengkap
-
Tag
-
Asal
-
Dinonaktifkan
-
Tangguhkan
-
Grup
-
Pemilik
-
ACL
-
Login gagal
-
Jalur CDT
Jika dibandingkan dengan implementasi lama, manajemen pengguna baru memiliki lebih banyak informasi untuk pengguna, yang memungkinkan manipulasi akun pengguna yang kompleks dan kontrol akses yang lebih baik dengan keamanan yang ditingkatkan. Proses otentikasi pengguna sekarang dilindungi dari serangan brute force dan dapat dinonaktifkan untuk alasan pemeliharaan atau keamanan.
Seseorang akan menggunakan alamat email atau nama pengguna untuk masuk ke GUI ClusterControl, seperti yang ditunjukkan pada tangkapan layar berikut (perhatikan teks placeholder untuk bidang Nama Pengguna):
Jika pengguna masuk menggunakan alamat email, pengguna akan diautentikasi melalui layanan manajemen pengguna frontend yang tidak digunakan lagi dan jika nama pengguna diberikan, ClusterControl akan secara otomatis menggunakan layanan manajemen pengguna backend baru yang ditangani oleh layanan pengontrol. Kedua autentikasi bekerja dengan dua set antarmuka manajemen pengguna yang berbeda.
Izin dan Kontrol Akses
Dalam manajemen pengguna baru, izin dan kontrol akses dikendalikan oleh sekumpulan formulir teks Daftar Kontrol Akses (ACL) yang disebut baca (r), tulis (w), dan jalankan (x). Semua objek dan fungsionalitas ClusterControl disusun sebagai bagian dari pohon direktori, kami menyebutnya Pohon Direktori CMON (CDT) dan setiap entri dimiliki oleh pengguna, grup, dan ACL. Anda dapat menganggapnya mirip dengan izin file dan direktori Linux. Faktanya, implementasi kontrol akses ClusterControl mengikuti Daftar Kontrol Akses POSIX standar.
Untuk memberikan contoh, perhatikan perintah berikut. Kami mengambil nilai Cmon Directory Tree (CDT) untuk cluster kami dengan menggunakan baris perintah "s9s tree" (bayangkan ini sebagai ls -al di UNIX). Dalam contoh ini, nama cluster kami adalah “PostgreSQL 12”, seperti yang ditunjukkan di bawah ini (ditunjukkan dengan "c" di awal baris):
$ s9s tree --list --long
MODE SIZE OWNER GROUP NAME
crwxrwx---+ - system admins PostgreSQL 12
srwxrwxrwx - system admins localhost
drwxrwxr-- 1, 0 system admins groups
urwxr--r-- - admin admins admin
urwxr--r-- - dba admins dba
urwxr--r-- - nobody admins nobody
urwxr--r-- - readeruser admins readeruser
urwxr--r-- - s9s-error-reporter-vagrant admins s9s-error-reporter-vagrant
urwxr--r-- - system admins system
Total: 22 object(s) in 4 folder(s).
Misalkan kita memiliki pengguna hanya-baca yang disebut readeruser, dan pengguna ini termasuk dalam grup yang disebut readergroup. Untuk menetapkan izin baca untuk readeruser dan readergroup, dan jalur CDT kami adalah "/ PostgreSQL 12" (selalu dimulai dengan "/", mirip dengan UNIX), kami akan menjalankan:
$ s9s tree --add-acl --acl="group:readergroup:r--" "/PostgreSQL 12"
Acl is added.
$ s9s tree --add-acl --acl="user:readeruser:r--" "/PostgreSQL 12"
Acl is added.
Sekarang pengguna pembaca dapat mengakses ClusterControl melalui GUI dan CLI sebagai pengguna hanya-baca untuk cluster database yang disebut "PostgreSQL 12". Perhatikan bahwa contoh manipulasi ACL di atas diambil dari ClusterControl CLI, seperti yang dijelaskan dalam artikel ini. Jika Anda terhubung melalui GUI ClusterControl, Anda akan melihat halaman kontrol akses baru berikut:
ClusterControl GUI menyediakan cara yang lebih sederhana untuk menangani kontrol akses. Ini memberikan pendekatan terpandu untuk mengonfigurasi izin, kepemilikan, dan pengelompokan. Serupa dengan versi yang lebih lama, setiap cluster dimiliki oleh sebuah tim, dan Anda dapat menentukan tim yang berbeda untuk membaca, admin, atau melarang tim lain mengakses cluster dari antarmuka ClusterControl GUI atau CLI.
LDAP
Di versi sebelumnya (1.8.1 dan yang lebih lama), autentikasi LDAP ditangani oleh komponen frontend melalui sekumpulan tabel (dcps.ldap_settings dan dcps.ldap_group_roles). Mulai dari ClusterControl 1.8.2, semua konfigurasi dan pemetaan LDAP akan disimpan di dalam file konfigurasi ini, /etc/cmon-ldap.cnf.
Disarankan untuk mengonfigurasi setelan LDAP dan pemetaan grup melalui UI ClusterControl karena setiap perubahan pada file ini akan memerlukan pemuatan ulang ke proses pengontrol, yang dipicu secara otomatis saat mengonfigurasi LDAP melalui UI. Anda juga dapat melakukan modifikasi langsung pada file, namun Anda harus memuat ulang layanan cmon secara manual dengan menggunakan perintah berikut:
$ systemctl restart cmon # or service cmon restart
Tangkapan layar berikut menunjukkan dialog Setelan Lanjutan LDAP yang baru:
Jika dibandingkan dengan versi sebelumnya, implementasi LDAP yang baru lebih dapat disesuaikan untuk mendukung layanan direktori standar industri seperti Active Directory, OpenLDAP, dan FreeIPA. Ini juga mendukung pemetaan atribut sehingga Anda dapat mengatur atribut mana yang mewakili nilai yang dapat diimpor ke database pengguna ClusterControl seperti email, nama asli, dan nama pengguna.
Untuk informasi selengkapnya, lihat panduan pengguna Setelan LDAP.
Keuntungan Manajemen Pengguna Baru
Perhatikan bahwa manajemen pengguna saat ini masih bekerja berdampingan dengan sistem manajemen pengguna baru. Namun, kami sangat menyarankan pengguna kami untuk bermigrasi ke sistem baru sebelum Q1 2022. Hanya migrasi manual yang didukung saat ini. Lihat Migrasi ke bagian Pengelolaan Pengguna Baru di bawah untuk detailnya.
Sistem manajemen pengguna baru akan menguntungkan pengguna ClusterControl dengan cara berikut:
-
Manajemen pengguna terpusat untuk CLI ClusterControl dan GUI ClusterControl. Semua otentikasi, otorisasi, dan akuntansi akan ditangani oleh layanan ClusterControl Controller (cmon).
-
Konfigurasi LDAP lanjutan dan dapat disesuaikan. Implementasi sebelumnya hanya mendukung sejumlah atribut nama pengguna dan harus dikonfigurasi dengan caranya sendiri agar berfungsi dengan baik.
-
Akun pengguna yang sama dapat digunakan untuk mengautentikasi ke ClusterControl API dengan aman melalui TLS. Lihat artikel ini misalnya.
-
Metode otentikasi pengguna yang aman. Manajemen pengguna asli yang baru mendukung otentikasi pengguna menggunakan kunci pribadi/publik dan kata sandi. Untuk autentikasi LDAP, pengikatan dan pencarian LDAP didukung melalui SSL dan TLS.
-
Tampilan representasi waktu yang konsisten berdasarkan pengaturan zona waktu pengguna, terutama saat menggunakan antarmuka CLI dan GUI untuk manajemen dan pemantauan klaster basis data.
-
Perlindungan terhadap serangan brute force, di mana pengguna dapat ditolak aksesnya ke sistem melalui penangguhan atau login yang dinonaktifkan.
Migrasi ke Manajemen Pengguna Baru
Karena kedua sistem pengguna memiliki akun dan struktur pengguna yang berbeda, ini adalah operasi yang sangat berisiko untuk mengotomatiskan migrasi pengguna dari frontend ke backend. Oleh karena itu, pengguna harus melakukan migrasi akun secara manual setelah memutakhirkan dari 1.8.1 dan yang lebih lama. Silakan merujuk ke Mengaktifkan Manajemen Pengguna Baru untuk detailnya. Untuk pengguna LDAP yang sudah ada, silakan lihat bagian Prosedur Migrasi LDAP.
Kami sangat menyarankan pengguna untuk bermigrasi ke sistem baru ini karena alasan berikut:
-
Sistem manajemen pengguna UI (di mana pengguna akan masuk menggunakan alamat email) tidak akan digunakan lagi oleh akhir Q1 2022 (~1 tahun dari sekarang).
-
Semua fitur dan peningkatan yang akan datang akan didasarkan pada sistem manajemen pengguna baru, yang ditangani oleh proses backend cmon.
-
Adalah kontra-intuitif untuk memiliki dua atau lebih pengendali otentikasi yang berjalan pada satu sistem.
Jika Anda menghadapi masalah dan memerlukan bantuan tentang migrasi dan implementasi sistem manajemen pengguna ClusterControl yang baru, jangan ragu untuk menghubungi kami melalui portal dukungan, forum komunitas, atau saluran Slack.
Pemikiran Terakhir
ClusterControl berkembang menjadi produk yang lebih canggih dari waktu ke waktu. Untuk mendukung pertumbuhan, kami harus memperkenalkan perubahan besar baru untuk pengalaman yang lebih kaya dalam jangka panjang. Harapkan lebih banyak fitur dan peningkatan pada sistem manajemen pengguna baru di versi mendatang!