sql >> Databáze >  >> NoSQL >> MongoDB

Vynucení řízení přístupu na základě rolí pomocí ClusterControl

V nedávném vydání ClusterControl verze 1.8.2 od společnosti Somenines jsme zavedli mnoho sofistikovaných funkcí a změn. Jednou z důležitých funkcí je nově vylepšený systém správy uživatelů, který pokrývá správu nových uživatelů a LDAP. Doplňkovou stávající funkcí v ClusterControl je Role-Based Access Control (RBAC) pro správu uživatelů, na kterou se zaměřuje tento blog.

Řízení přístupu na základě rolí v ClusterControl

Pro ty, kteří neznají ClusterControl Role-Based Access Controls (RBAC), je to funkce, která vám umožňuje omezit přístup určitých uživatelů ke konkrétním funkcím databázového clusteru a administrativním akcím nebo úkolům. Například přístup k funkcím nasazení (přidání nástrojů pro vyrovnávání zatížení, přidání existujícího clusteru), správy a monitorování. Tím je zajištěno, že pouze oprávnění uživatelé mohou pracovat a prohlížet na základě jejich příslušných rolí, a zabraňuje nežádoucímu vniknutí nebo lidským chybám omezením přístupu role k administrativním úkolům. Přístup k funkcím je jemně zrnitý, což umožňuje definovat přístup organizací nebo uživatelem. ClusterControl používá rámec oprávnění k definování toho, jak může uživatel interagovat s funkcemi správy a monitorování na základě úrovně oprávnění.

Řízení přístupu na základě rolí v ClusterControl hraje důležitou roli zejména pro administrátory, kteří jej neustále využívají jako součást svých úkolů DBA. ClusterControl DBA by měl být obeznámen s touto funkcí, protože umožňuje DBA delegovat úkoly členům týmu, řídit přístup k funkcím ClusterControl a nevystavovat všechny funkce a funkce všem uživatelům. Toho lze dosáhnout využitím funkce Správa uživatelů, která vám umožňuje řídit, kdo co může dělat. Můžete například nastavit tým, jako je analytik, devops nebo DBA, a přidat omezení podle rozsahu jejich odpovědnosti za daný databázový cluster.

Řízení přístupu ClusterControl je znázorněno  na následujícím diagramu

Podrobnosti o termínech použitých výše jsou uvedeny níže. Tým lze přiřadit k jednomu nebo více databázovým clusterům spravovaným pomocí ClusterControl. Tým se skládá z prázdných nebo více uživatelů v týmu. Ve výchozím nastavení bude při vytváření nového týmu vždy přidružen účet superadministrátora. Odstraněním superadministrátora neztratíte spojení s tímto novým týmem.

Uživatel a klastr musí být přiřazeni k týmu; je to povinná implementace v rámci ClusterControl. Ve výchozím nastavení je účet superadministrátora určen pro tým administrátorů, který již byl ve výchozím nastavení vytvořen. Databázové clustery jsou ve výchozím nastavení také přiřazeny k týmu administrátorů.

Role nemůže mít přiřazeného žádného uživatele nebo může být přiřazena více uživatelům v souladu s jejich rolí ClusterControl.

Role v ClusterControl

Role v ClusterControl jsou ve skutečnosti nastaveny jako výchozí. Následují tyto výchozí role:

  • Superadministrátor – Je to skrytá role, ale je to role superadministrátora (superadministrátora), což znamená pro tuto roli jsou k dispozici všechny funkce. Ve výchozím nastavení představuje vaši roli superadministrátora uživatel, kterého jste vytvořili po úspěšné instalaci. Při vytváření nového týmu je navíc ve výchozím nastavení vždy superadmin přiřazen k novému týmu.

  • Správce – ve výchozím nastavení lze zobrazit téměř všechny funkce. Být viditelný znamená, že uživatelé v roli správce mohou provádět úkoly správy. Funkce, které nejsou pro tuto roli dostupné, jsou Customer Advisor a SSL Key Management.

  • Uživatel – Integrace, přístup ke všem clusterům a některé funkce nejsou pro tuto roli dostupné a jsou odepřeny výchozí. To je užitečné, pokud chcete přiřadit běžné uživatele, kteří nejsou určeni k práci s databázemi nebo administrativními úkoly. Pro uživatele v roli uživatele je třeba provést několik ručních kroků, aby viděli další clustery.

Role v ClusterControl jsou libovolné, takže administrátoři mohou vytvářet libovolné role a přiřazovat je uživateli v rámci Teams.

Jak se dostat do rolí ClusterControl

Můžete vytvořit vlastní roli s vlastní sadou úrovní přístupu. Přiřaďte roli konkrétnímu uživateli na kartě Týmy. Toho lze dosáhnout umístěním Správa uživatelů v postranním panelu v pravém rohu. Podívejte se na snímek obrazovky níže:

Vynucení řízení přístupu na základě rolí pomocí ClusterControl

Vynucení RBAC je specifické pro doménu uživatele, což omezuje přístup uživatele k funkcím ClusterControl v souladu s jeho rolemi a oprávněními. S ohledem na to bychom měli začít vytvářet konkrétního uživatele.

Vytvoření uživatele v ClusterControl

Chcete-li vytvořit uživatele, začněte na kartě Správa uživatelů ➝ Týmy. Nyní nejprve vytvoříme tým.

Po vytvoření existuje účet superadministrátora, který je po vytvoření týmu ve výchozím nastavení propojen.

Nyní přidáme nového uživatele. Přidání nového uživatele musí být provedeno pod týmem, abychom jej mohli vytvořit pod DevOps.

Jak jste si mohli všimnout, nový uživatel, kterého jsme vytvořili, je nyní pod rolí User, která je standardně přidána do ClusterControl. Pak je tým také pod DevOps.

V týmu DevOps jsou nyní v podstatě dva uživatelé, jak je uvedeno níže:

Uvědomte si, že role jsou specifické pro doménu uživatele, takže omezení přístupu aplikuje pouze na konkrétního uživatele, nikoli na tým, kam patří.

Administrátorské vs. uživatelské role (výchozí role v ClusterControl)

Protože máme v ClusterControl ve výchozím nastavení přidány dvě role, existují omezení, která jsou nastavena ve výchozím nastavení. Chcete-li vědět, co to je, přejděte na  Správa uživatelů ➝ Řízení přístupu. Níže je snímek obrazovky, který znázorňuje dostupné funkce nebo oprávnění, která může uživatel patřící do role provádět:

Role správce

Uživatelská role

Role správce má mnohem více oprávnění, zatímco role uživatele má některá oprávnění, která jsou omezená. Tyto výchozí role lze upravit podle požadované konfigurace. Přidání role vám také umožňuje spustit a nastavit, které role jsou povoleny či nikoli. Vytvoříme například novou roli. Chcete-li vytvořit roli, stačí kliknout na tlačítko „+“ vedle rolí. Můžete vidět novou roli, kterou jsme vytvořili, nazvanou Prohlížeč.

Všechna zaškrtnutí nejsou zaškrtnuta. Jednoduše zaškrtněte ve sloupci Povolit funkci nebo oprávnění, nebo zaškrtněte ve sloupci Odepřít, pokud chcete přístup odepřít. Sloupec Spravovat umožňuje uživatelům v dané roli provádět úkoly správy. Zatímco sloupec Upravit vám umožňuje povolit úpravy, které jsou dostupné pouze pro oprávnění nebo funkce pod Alarmy, Úlohy a Nastavení.

Testování RBAC

V tomto příkladu jsou v mém ovladači přítomny následující clustery, jak je znázorněno níže:

Toto je v tomto prostředí viditelné pro účet superadministrátora.

Nyní, když máme nastaveno RBAC pro uživatele, kterého jsme právě vytvořili, zkusme se přihlásit pomocí e-mailu a hesla, které jsme právě nastavili.

Toto je vytvořeno,

Žádné clustery nejsou dostupné a zobrazitelné a některá oprávnění jsou odepřena, jak je uvedeno níže, jako je nastavení správy klíčů a upozornění e-mailem:

Úprava RBAC

Vzhledem k tomu, že oprávnění v rolích jsou proměnná, je snadné je spravovat pomocí Správa uživatelů ➝ Řízení přístupu.

Nyní umožníme vytvořenému uživateli zobrazit cluster. Protože náš uživatel má přístup ke všem clusterům odepřen, musíme jej povolit. Viz níže,

Nyní, jak jsme již uvedli na základě diagramu, jsou clustery řízeny týmem. Níže jsou například následující přiřazení clusteru:

Protože potřebujeme přiřadit cluster ke správnému týmu, výběrem konkrétního clusteru a kliknutím na tlačítko „Změnit tým“ se zobrazí výzva, která vám umožní jej znovu přiřadit ke správnému týmu.

Nyní to přiřaďme DevOps.

Nyní se znovu přihlaste jako nově vytvořený uživatel a budeme moci vidět cluster.

Shrnutí

Řízení přístupu založeného na rolích (RBAC) v ClusterControl je funkce, která poskytuje jemně zrnité omezující řízení přístupu pro každého uživatele, kterého jste vytvořili v ClusterControl, a umožňuje tak vyšší zabezpečení a restriktivnější řízení přístupu založené na role uživatele.


  1. Jak nastavit připojení k Redis Sentinel pomocí knihovny Jedis?

  2. Nějaké podrobné a konkrétní důvody proč je MongoDB mnohem rychlejší než SQL DB?

  3. 3 způsoby, jak převést datum na řetězec v MongoDB

  4. Nelze spustit MongoDB jako službu