sql >> Databasteknik >  >> NoSQL >> MongoDB

Genomför rollbaserade åtkomstkontroller med ClusterControl

I Severalnines senaste version av ClusterControl version 1.8.2 har vi introducerat många sofistikerade funktioner och ändringar. En av de viktiga funktionerna är det nyligen förbättrade användarhanteringssystemet, som täcker New User och LDAP Management. En kompletterande befintlig kapacitet i ClusterControl är dess rollbaserade åtkomstkontroll (RBAC) för användarhantering, som är i fokus för den här bloggen.

Rollbaserad åtkomstkontroll i ClusterControl

För dem som inte är bekanta med ClusterControls rollbaserade åtkomstkontroller (RBAC), är det en funktion som gör att du kan begränsa åtkomsten för vissa användare till specifika databasklusterfunktioner och administrativa åtgärder eller uppgifter. Till exempel tillgång till distribution (lägg till lastbalanserare, lägg till befintliga kluster), hantering och övervakningsfunktioner. Detta säkerställer att endast auktoriserade användare tillåts arbeta och se baserat på deras respektive roller och undviker oönskade intrång eller mänskliga fel genom att begränsa en rolls åtkomst till administrativa uppgifter. Tillgång till funktionalitet är finkornig, vilket gör att åtkomst kan definieras av en organisation eller användare. ClusterControl använder ett behörighetsramverk för att definiera hur en användare kan interagera med hanterings- och övervakningsfunktionaliteten baserat på deras behörighetsnivå.

Rollbaserad åtkomstkontroll i ClusterControl spelar en viktig roll, särskilt för administratörsanvändare som ständigt använder den som en del av sina DBA-uppgifter. En ClusterControl DBA bör känna till den här funktionen eftersom den tillåter DBA att delegera uppgifter till teammedlemmar, kontrollera åtkomst till ClusterControl-funktioner och inte exponera alla funktioner och funktioner för alla användare. Detta kan uppnås genom att använda funktionen User Management, som låter dig styra vem som kan göra vad. Du kan till exempel ställa in ett team som analytiker, devops eller DBA och lägga till begränsningar i enlighet med deras ansvarsområde för ett visst databaskluster.

ClusterControl åtkomstkontroll visas i  följande diagram,

Detaljer om termerna som används ovan ges nedan. Ett team kan tilldelas ett eller flera av de databaskluster som hanteras av ClusterControl. Ett team består av tomma eller flera användare i ett team. Som standard, när du skapar ett nytt team, kommer superadministratörskontot alltid att vara kopplat till det. Att ta bort superadmin tar inte bort den från att vara länkad till det nya teamet.

En användare och ett kluster måste tilldelas ett team; det är en obligatorisk implementering inom ClusterControl. Som standard är superadminkontot tilldelat ett adminteam, som redan har skapats som standard. Databaskluster tilldelas även administratörsteamet som standard.

En roll kan inte ha någon användare tilldelad eller så kan den tilldelas flera användare i enlighet med deras ClusterControl-roll.

Roller i ClusterControl

Roller i ClusterControl är faktiskt inställda som standard. Dessa standardroller följer:

  • Superadmin – Det är en dold roll, men det är rollen som superadministratör (superadmin), vilket betyder alla funktioner är tillgängliga för denna roll. Som standard representerar användaren som du skapade efter en lyckad installation din roll som Super Admin. Dessutom, när du skapar ett nytt team tilldelas superadmin alltid det nya teamet som standard.

  • Admin - Som standard är nästan alla funktioner synliga. Att vara synlig innebär att användare under rollen Admin kan utföra hanteringsuppgifter. De funktioner som inte är tillgängliga för den här rollen är Customer Advisor och SSL Key Management.

  • Användare – Integrationer, åtkomst till alla kluster och vissa funktioner är inte tillgängliga för denna roll och nekas av standard. Detta är användbart om du vill tilldela vanliga användare som inte är avsedda att arbeta databas- eller administrativa uppgifter. Det finns några manuella steg som måste göras för dem i rollen Användare för att se andra kluster.

Roller i ClusterControl är godtyckliga så att administratörer kan skapa godtyckliga roller och tilldela dem till en användare under Teams.

Hur du kommer in i ClusterControl-roller

Du kan skapa en anpassad roll med en egen uppsättning åtkomstnivåer. Tilldela rollen till en specifik användare under fliken Teams. Detta kan nås genom att lokalisera Användarhantering i sidofältet i det högra hörnet. Se skärmdumpen nedan:

Tillämpa rollbaserade åtkomstkontroller med ClusterControl

Att upprätthålla RBAC är användardomänspecifik, vilket begränsar en användares åtkomst till ClusterControl-funktioner i enlighet med deras roller och privilegier. Med detta i åtanke bör vi börja skapa en specifik användare.

Skapa en användare i ClusterControl

För att skapa en användare, börja under fliken Användarhantering ➝ Teams. Nu, låt oss skapa ett team först.

När det har skapats finns det ett superadministratörskonto som är länkat som standard när ett team har skapats.

Låt oss nu lägga till en ny användare. Att lägga till en ny användare måste göras under ett team, så vi kan skapa det under DevOps.

Som du kanske har märkt är den nya användaren vi skapade nu under rollen Användare, som läggs till som standard inom ClusterControl. Sedan ligger Teamet också under DevOps.

I grund och botten finns det två användare nu under DevOps-teamet som visas nedan:

Observera att roller är användardomänspecifika, så den tillämpar åtkomstbegränsningar endast för den specifika användaren, och inte för teamet där den tillhör.

Admin vs Användarroller (Standardroller i ClusterControl)

Eftersom vi har lagt till två roller som standard i ClusterControl, finns det begränsningar som är inställda som standard. För att veta vad dessa är, gå bara till  Användarhantering ➝ Åtkomstkontroll. Nedan finns en skärmdump som visar tillgängliga funktioner eller privilegier som en användare som tillhör rollen kan göra:

Administratörsroll

Användarroll

Administratörsrollen har många fler privilegier, medan användarrollen har vissa privilegier som är begränsade. Dessa standardroller kan ändras i enlighet med din önskade konfiguration. Genom att lägga till en roll kan du också starta och ställa in vilka roller som är tillåtna eller inte. Till exempel skapar vi en ny roll. För att skapa en roll, tryck bara på "+" plusknappen längs rollerna. Du kan se den nya roll vi har skapat som heter Viewer.

Alla bockar är avmarkerade. Markera bara under kolumnen Tillåt för att aktivera funktionen eller privilegiet eller markera under kolumnen Neka om du vill neka åtkomst. Kolumnen Hantera tillåter användare i den rollen att utföra hanteringsuppgifter. Medan kolumnen Ändra låter dig aktivera ändringar som endast är tillgängliga för privilegier eller funktioner under Larm, Jobb och Inställningar.

Testar RBAC

I det här exemplet finns följande kluster i min kontroller som visas nedan:

Detta kan ses av superadministratörskontot i den här miljön.

Nu när vi har RBAC inställt för användaren vi just skapade, låt oss försöka logga in med e-postadressen och lösenordet vi just har angett.

Det här är vad som skapas,

Inga kluster är tillgängliga och synliga, och vissa privilegier nekas som visas nedan, såsom inställningar för nyckelhantering och e-postmeddelanden:

Justera RBAC

Eftersom privilegierna i rollerna är föränderliga är det enkelt att hantera dem via Användarhantering ➝ Åtkomstkontroll.

Låt oss nu tillåta den skapade användaren att se ett kluster. Eftersom vår användare har nekat åtkomst till alla kluster måste vi aktivera det. Se nedan,

Nu, som vi har sagt tidigare baserat på diagrammet, kontrolleras kluster av teamet. Till exempel finns följande klustertilldelningar,  nedan:

Eftersom vi måste tilldela klustret till rätt team, väljs det specifika klustret och klickar på knappen "Ändra team" för att visa uppmaningen så att du kan omtilldela det till rätt team.

Nu, låt oss tilldela den till DevOps.

Nu loggar du in igen som den nyskapade användaren och vi kommer att kunna se klustret.

Sammanfattning

Role-Based Access Control (RBAC) i ClusterControl är en funktion som ger finkornig restriktiv åtkomstkontroll för varje användare du har skapat i ClusterControl, vilket möjliggör större säkerhet och mer restriktiv åtkomstkontroll baserat på en användarens roll.


  1. En översikt över databasindexering för MongoDB

  2. Hur man exporterar Redis-nycklar som CSV med CLI

  3. php-redis - Finns det något sätt att lagra PHP-objekt i Redis utan att serialisera det?

  4. Datumjämförelse i mongodb