sql >> Databáze >  >> RDS >> MariaDB

Nová správa uživatelů a LDAP v ClusterControl 1.8.2

Po upgradu na ClusterControl 1.8.2 byste měli obdržet následující oznamovací banner:

Co s tím? Jedná se o amortizaci stávajícího systému správy uživatelů ve prospěch nového systému správy uživatelů spravovaného službou ClusterControl controller (cmon). Po kliknutí na banner budete přesměrováni na stránku vytvoření uživatele, kde můžete vytvořit nového administrátora, jak je popsáno v této uživatelské příručce.

V tomto příspěvku na blogu se podíváme na nový systém správy uživatelů představený v ClusterControl 1.8.2 a uvidíme, jak se liší od předchozích. Jen pro upřesnění, starý systém správy uživatelů bude stále fungovat vedle sebe s novým systémem ověřování a správy uživatelů až do 1. čtvrtletí 2022. Od této chvíle budou všechny nové instalace pro ClusterControl 1.8.2 a novější konfigurovány s novým uživatelem systém řízení.

Správa uživatelů starší než 1.8.2

ClusterControl 1.8.1 a starší ukládá uživatelské informace a účetnictví do databáze webového uživatelského rozhraní s názvem „dcps“. Tato databáze je nezávislá na databázi cmon, kterou používá služba ClusterControl Controller (cmon).

Uživatelské účty a ověřování

Uživatelský účet se skládá z následujících informací:

  • Jméno

  • Časové pásmo

  • E-mail (používá se k ověření)

  • Heslo

  • Role

  • Tým

K přihlášení do GUI ClusterControl by se použila e-mailová adresa, jak ukazuje následující snímek obrazovky:

Po přihlášení vyhledá ClusterControl organizaci, do které uživatel patří, a poté přiřadí řízení přístupu založeného na rolích (RBAC) pro přístup ke konkrétnímu clusteru a funkcím. Tým může mít nula nebo více clusterů, zatímco uživatel musí patřit do jednoho nebo více týmů. Vytvoření uživatele vyžaduje předem vytvořenou roli a tým. ClusterControl přichází s výchozím týmem s názvem Admin a 3 výchozími rolemi – Super Admin, Admin a User.

Řízení oprávnění a přístupu

ClusterControl 1.8.1 a starší používaly řízení přístupu založené na uživatelském rozhraní na základě přiřazení rolí. V jiném termínu jsme to nazvali řízení přístupu založeného na rolích (RBAC). Správce by vytvořil role a každé roli by byla přiřazena sada oprávnění pro přístup k určitým funkcím a stránkám. K vynucení role dochází na straně front-endu, kde služba řadiče ClusterControl (cmon) nemá ponětí o tom, zda má aktivní uživatel možnost přístupu k této funkci, protože informace mezi těmito dvěma ověřovacími motory nejsou nikdy sdíleny. To by v budoucnu ztížilo kontrolu autentizace a autorizace, zejména při přidávání dalších funkcí, které jsou kompatibilní s rozhraním GUI i CLI.

Následující snímek obrazovky ukazuje dostupné funkce, které lze ovládat pomocí RBAC:

Administrátor pouze potřebuje vybrat příslušnou úroveň přístupu pro konkrétní funkce a ta bude uložena v databázi „dcps“ a poté ji použije GUI ClusterControl k povolení zdrojů uživatelského rozhraní uživatelům GUI. Zde vytvořený přístupový seznam nemá nic společného s uživateli CLI.

LDAP

ClusterControl starší verze než 1.8.1 používal pro ověřování LDAP modul PHP LDAP. Podporuje adresářové služby Active Directory, OpenLDAP a FreeIPA, ale pro identifikaci uživatele lze použít pouze omezený počet atributů LDAP, jako je uid, cn nebo sAMAccountName. Implementace je poměrně přímočará a nepodporuje pokročilé základní filtrování uživatelů/skupin, mapování atributů a implementaci TLS.

Následují informace potřebné pro nastavení LDAP:

Protože se jedná o frontendovou službu, je soubor protokolu LDAP uložen pod adresář webové aplikace, konkrétně na /var/www/html/clustercontrol/app/log/cc-ldap.log. Ověřený uživatel bude namapován na konkrétní roli a tým ClusterControl, jak je definováno na stránce mapování skupiny LDAP.

Správa uživatelů po 1.8.2

V této nové verzi ClusterControl podporuje oba autentizační nástroje, autentizaci na frontendu (pomocí e-mailové adresy) a backendovou autentizaci (pomocí uživatelského jména). Pro backendovou autentizaci ukládá ClusterControl uživatelské informace a účetnictví do databáze cmon, kterou používá služba ClusterControl Controller (cmon).

Uživatelské účty a ověřování

Uživatelský účet se skládá z následujících informací:

  • Uživatelské jméno (používá se pro ověření)

  • E-mailová adresa

  • Celé jméno

  • Značky

  • Původ

  • Zakázáno

  • Pozastavit

  • Skupiny

  • Vlastník

  • ACL

  • Neúspěšné přihlášení

  • Cesta CDT

Ve srovnání se starou implementací má nová správa uživatelů více informací pro uživatele, což umožňuje komplexní manipulaci s uživatelskými účty a lepší řízení přístupu se zvýšeným zabezpečením. Proces ověřování uživatele je nyní chráněn proti útokům hrubou silou a lze jej deaktivovat z důvodů údržby nebo bezpečnosti.

K přihlášení do GUI ClusterControl by se použila e-mailová adresa nebo uživatelské jméno, jak ukazuje následující snímek obrazovky (pozor na zástupný text pro pole Uživatelské jméno):

Pokud se uživatel přihlásí pomocí e-mailové adresy, bude ověřen prostřednictvím zastaralé frontendové služby správy uživatelů a pokud je zadáno uživatelské jméno, ClusterControl automaticky použije novou službu správy koncových uživatelů spravovanou službou kontroléru. Obě autentizace fungují se dvěma různými sadami rozhraní pro správu uživatelů.

Řízení oprávnění a přístupu

V nové správě uživatelů jsou oprávnění a řízení přístupu řízena sadou textových formulářů ACL (Access Control List) nazývaných čtení (r), zápis (w) a provádění (x). Všechny objekty a funkce ClusterControl jsou strukturovány jako součást stromu adresářů, který jsme nazvali CMON Directory Tree (CDT) a každý záznam je vlastněn uživatelem, skupinou a ACL. Můžete si to představit jako podobné oprávněním souborů a adresářů v Linuxu. Ve skutečnosti se implementace řízení přístupu ClusterControl řídí standardními seznamy řízení přístupu POSIX.

Chcete-li uvést příklad, zvažte následující příkazy. Hodnotu Cmon Directory Tree (CDT) pro náš cluster jsme získali pomocí příkazového řádku "s9s tree" (představte si to jako ls -al v UNIXu). V tomto příkladu je název našeho clusteru „PostgreSQL 12“, jak je uvedeno níže (označeno písmenem „c“ na začátku řádku):

$ 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).

Předpokládejme, že máme uživatele pouze pro čtení s názvem readeruser a tento uživatel patří do skupiny nazvané readergroup. Chcete-li přiřadit oprávnění ke čtení pro čtenáře a čtenářskou skupinu a naše cesta CDT je ​​„/PostgreSQL 12“ (vždy začíná znakem „/“, podobně jako UNIX), spustili bychom:

$ 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.

Čtenář nyní může přistupovat k ClusterControl přes GUI a CLI jako uživatel pouze pro čtení pro databázový cluster s názvem "PostgreSQL 12". Všimněte si, že výše uvedené příklady manipulace ACL byly převzaty z ClusterControl CLI, jak je popsáno v tomto článku. Pokud se připojíte přes GUI ClusterControl, uvidíte následující novou stránku řízení přístupu:

GUI ClusterControl poskytuje jednodušší způsob manipulace s řízením přístupu. Poskytuje řízený přístup ke konfiguraci oprávnění, vlastnictví a seskupení. Podobně jako u starší verze je každý cluster vlastněn týmem a můžete určit jiný tým, který bude mít čtení, správce nebo zakázat jinému týmu přístup ke clusteru z obou rozhraní ClusterControl GUI nebo CLI.

LDAP

V předchozích verzích (1.8.1 a starší) byla autentizace LDAP řešena frontendovou komponentou prostřednictvím sady tabulek (dcps.ldap_settings a dcps.ldap_group_roles). Počínaje ClusterControl 1.8.2 budou všechny konfigurace a mapování LDAP uloženy v tomto konfiguračním souboru /etc/cmon-ldap.cnf.

Doporučuje se konfigurovat nastavení LDAP a mapování skupin prostřednictvím uživatelského rozhraní ClusterControl, protože jakékoli změny tohoto souboru budou vyžadovat opětovné načtení procesu řadiče, které se spouští automaticky při konfiguraci LDAP prostřednictvím uživatelského rozhraní. Můžete také provádět přímé úpravy souboru, ale musíte znovu načíst službu cmon ručně pomocí následujících příkazů:

$ systemctl restart cmon # or service cmon restart

Následující snímek obrazovky ukazuje nové dialogové okno Upřesnit nastavení LDAP:

Ve srovnání s předchozí verzí je nová implementace LDAP lépe přizpůsobitelná pro podporu standardních adresářových služeb, jako je Active Directory, OpenLDAP a FreeIPA. Podporuje také mapování atributů, takže můžete nastavit, který atribut představuje hodnotu, kterou lze importovat do databáze uživatelů ClusterControl, jako je e-mail, skutečné jméno a uživatelské jméno.

Další informace naleznete v uživatelské příručce Nastavení LDAP.

Výhody nové správy uživatelů

Všimněte si, že současná správa uživatelů stále funguje souběžně s novým systémem správy uživatelů. Našim uživatelům však důrazně doporučujeme migrovat na nový systém před 1. čtvrtletím 2022. V tuto chvíli je podporována pouze ruční migrace. Podrobnosti naleznete v části Migrace do sekce Správa nových uživatelů níže.

Nový systém správy uživatelů bude pro uživatele ClusterControl přínosem následujícími způsoby:

  • Centralizovaná správa uživatelů pro CLI ClusterControl a GUI ClusterControl. O veškerou autentizaci, autorizaci a účtování se postará služba ClusterControl Controller (cmon).

  • Pokročilá a přizpůsobitelná konfigurace LDAP. Předchozí implementace podporuje pouze řadu atributů uživatelských jmen a musela být nakonfigurována vlastním způsobem, aby fungovala správně.

  • Stejný uživatelský účet lze použít k bezpečné autentizaci k ClusterControl API prostřednictvím TLS. Podívejte se například na tento článek.

  • Bezpečné metody ověřování uživatelů. Nová nativní správa uživatelů podporuje ověřování uživatelů pomocí soukromých/veřejných klíčů a hesel. Pro ověřování LDAP jsou vazby a vyhledávání LDAP podporovány prostřednictvím SSL a TLS.

  • Konzistentní zobrazení reprezentace času na základě nastavení časového pásma uživatele, zejména při použití rozhraní CLI i GUI pro správa a monitorování databázového clusteru.

  • Ochrana proti útokům hrubou silou, kdy může být uživateli odepřen přístup do systému pozastavením nebo zakázáním přihlášení.

Migrace na novou správu uživatelů

Protože oba uživatelské systémy mají odlišný uživatelský účet a strukturu, je automatizace migrace uživatelů z frontendu na backend velmi riskantní operací. Proto musí uživatel provést migraci účtu ručně po upgradu z verze 1.8.1 a starší. Podrobnosti naleznete v části Povolení správy nových uživatelů. Stávající uživatele LDAP naleznete v části Postup migrace LDAP.

Důrazně doporučujeme uživatelům migrovat na tento nový systém z následujících důvodů:

  • Systém správy uživatelů uživatelského rozhraní (kde by se uživatel přihlašoval pomocí e-mailové adresy) bude ukončen konec 1. čtvrtletí 2022 (přibližně za 1 rok).

  • Všechny nadcházející funkce a vylepšení budou založeny na novém systému správy uživatelů spravovaném backendovým procesem cmon.

  • Je neintuitivní mít na jednom systému spuštěny dva nebo více ovladačů ověřování.

Pokud se potýkáte s problémy a potřebujete pomoc s migrací a implementací nového systému správy uživatelů ClusterControl, neváhejte nás kontaktovat prostřednictvím portálu podpory, komunitního fóra nebo kanálu Slack.

Poslední myšlenky

ClusterControl se postupem času vyvíjí v sofistikovanější produkt. Abychom podpořili růst, musíme zavést nové zásadní změny pro bohatší zážitek z dlouhodobého hlediska. V nadcházejících verzích očekávejte více funkcí a vylepšení nového systému správy uživatelů!


  1. SQL Server Změna modelu obnovy

  2. Uložit pole PHP do MySQL?

  3. Kompilace rozšíření pg_repack v binárním formátu instalace PostgreSQL

  4. 4 způsoby, jak nahradit NULL jinou hodnotou v MySQL