sql >> Database teknologi >  >> NoSQL >> MongoDB

Håndhævelse af rollebaseret adgangskontrol med ClusterControl

I Severalnines' seneste udgivelse af ClusterControl version 1.8.2 har vi introduceret en masse sofistikerede funktioner og ændringer. En af de vigtige funktioner er det nyligt forbedrede User Management System, som dækker New User og LDAP Management. En supplerende eksisterende funktion i ClusterControl er dens rollebaserede adgangskontrol (RBAC) til brugerstyring, som er fokus på denne blog.

Rollebaseret adgangskontrol i ClusterControl

For dem, der ikke er bekendt med ClusterControls rollebaserede adgangskontroller (RBAC), er det en funktion, der giver dig mulighed for at begrænse visse brugeres adgang til specifikke databaseklyngefunktioner og administrative handlinger eller opgaver. For eksempel adgang til implementering (tilføj belastningsbalancere, tilføj eksisterende klynge), administrations- og overvågningsfunktioner. Dette sikrer, at kun autoriserede brugere har lov til at arbejde og se baseret på deres respektive roller og undgår uønsket indtrængen eller menneskelige fejl ved at begrænse en rolles adgang til administrative opgaver. Adgang til funktionalitet er finmasket, så adgang kan defineres af en organisation eller bruger. ClusterControl bruger en tilladelsesramme til at definere, hvordan en bruger kan interagere med administrations- og overvågningsfunktionaliteten baseret på deres autorisationsniveau.

Rollebaseret adgangskontrol i ClusterControl spiller en vigtig rolle, især for administratorbrugere, der konstant bruger den som en del af deres DBA-opgaver. En ClusterControl DBA bør være bekendt med denne funktion, da den giver DBA'en mulighed for at uddelegere opgaver til teammedlemmer, kontrollere adgangen til ClusterControl funktionalitet og ikke udsætte alle funktioner og funktionaliteter for alle brugere. Dette kan opnås ved at bruge User Management-funktionaliteten, som giver dig mulighed for at kontrollere, hvem der kan gøre hvad. Du kan f.eks. oprette et team som analytiker, devops eller DBA og tilføje begrænsninger i henhold til deres ansvarsområde for en given databaseklynge.

ClusterControl-adgangskontrol er afbildet i  følgende diagram,

Detaljer om de anvendte termer ovenfor er angivet nedenfor. Et team kan tildeles en eller flere af databaseklyngerne, der administreres af ClusterControl. Et team består af tomme eller flere brugere i et team. Som standard, når du opretter et nyt team, vil superadministratorkontoen altid være knyttet til det. Sletning af superadmin fjerner det ikke fra at være knyttet til det nye team.

En bruger og en klynge skal tildeles et team; det er en obligatorisk implementering inden for ClusterControl. Som standard er superadmin-kontoen udpeget til et administratorteam, som allerede er oprettet som standard. Databaseklynger tildeles også administratorteamet som standard.

En rolle kan ikke have nogen bruger tildelt, eller den kan tildeles til flere brugere i overensstemmelse med deres ClusterControl-rolle.

Roller i ClusterControl

Roller i ClusterControl er faktisk indstillet som standard. Disse standardroller følger:

  • Superadministrator - Det er en skjult rolle, men det er rollen som superadministrator (superadmin), hvilket betyder alle funktioner er tilgængelige for denne rolle. Som standard repræsenterer den bruger, du oprettede efter en vellykket installation, din Super Admin-rolle. Derudover, når du opretter et nyt team, tildeles superadminen altid det nye team som standard.

  • Administrator - Som standard er næsten alle funktioner synlige. At være synlig betyder, at brugere under administratorrollen kan udføre administrationsopgaver. De funktioner, der ikke er tilgængelige for denne rolle, er kunderådgiveren og SSL Key Management.

  • Bruger – integrationer, adgang til alle klynger og nogle funktioner er ikke tilgængelige for denne rolle og nægtes af Standard. Dette er nyttigt, hvis du vil tildele almindelige brugere, der ikke er beregnet til at arbejde med database- eller administrative opgaver. Der er nogle manuelle trin, der skal udføres for dem i brugerrollen for at se andre klynger.

Roller i ClusterControl er vilkårlige, så administratorer kan oprette vilkårlige roller og tildele dem til en bruger under Teams.

Sådan kommer du ind i ClusterControl-roller

Du kan oprette en tilpasset rolle med sit eget sæt af adgangsniveauer. Tildel rollen til en bestemt bruger under fanen Teams. Dette kan nås ved at finde Brugerstyring i sidebjælken i højre hjørne. Se skærmbilledet nedenfor:

Håndhævelse af rollebaseret adgangskontrol med ClusterControl

Håndhævelse af RBAC er brugerdomænespecifik, hvilket begrænser en brugers adgang til ClusterControl-funktioner i overensstemmelse med deres roller og privilegier. Med dette i tankerne bør vi begynde at oprette en bestemt bruger.

Oprettelse af en bruger i ClusterControl

For at oprette en bruger skal du starte under fanen Brugeradministration ➝ Teams. Lad os nu oprette et team først.

Når den er oprettet, er der en superadmin-konto, som er linket som standard, når et team er oprettet.

Lad os nu tilføje en ny bruger. Tilføjelse af en ny bruger skal ske under et team, så vi kan oprette det under DevOps.

Som du måske har bemærket, er den nye bruger, vi oprettede, nu under rollen Bruger, som er tilføjet som standard i ClusterControl. Så er Teamet også under DevOps.

Grundlæggende er der nu to brugere under DevOps-teamet som vist nedenfor:

Bemærk, at roller er brugerdomænespecifikke, så det gælder kun adgangsbegrænsninger for den specifikke bruger og ikke for det team, hvor det hører til.

Administrator vs brugerroller (standardroller i ClusterControl)

Da vi har tilføjet to roller som standard i ClusterControl, er der begrænsninger, der er sat som standard. For at vide, hvad disse er, skal du blot gå til  Brugeradministration ➝ Adgangskontrol. Nedenfor er et skærmbillede, der viser de tilgængelige funktioner eller privilegier, som en bruger, der tilhører rollen, kan gøre:

Administratorrolle

Brugerrolle

Administratorrollen har mange flere privilegier, hvorimod brugerrollen har nogle privilegier, der er begrænsede. Disse standardroller kan ændres i overensstemmelse med din ønskede konfiguration. Tilføjelse af en rolle giver dig også mulighed for at starte og indstille, hvilke roller der er tilladt eller ej. For eksempel opretter vi en ny rolle. For at oprette en rolle skal du blot trykke på "+" plus-knappen langs rollerne. Du kan se den nye rolle, vi har oprettet kaldet Viewer.

Alle flueben er ikke markeret. Bare tjek under Tillad kolonnen for at aktivere funktionen eller privilegiet, eller tjek under Kolonnen Afvis, hvis du vil nægte adgang. Kolonnen Administrer giver brugerne i denne rolle mulighed for at udføre administrationsopgaver. Mens kolonnen Modify giver dig mulighed for at aktivere ændringer, der kun er tilgængelige for privilegier eller funktioner under Alarmer, Jobs og Settings.

Test RBAC

I dette eksempel er følgende klynger til stede i min controller som vist nedenfor:

Dette kan ses af superadministratorkontoen i dette miljø.

Nu hvor vi har indstillet RBAC til den bruger, vi lige har oprettet, så lad os prøve at logge ind med den e-mail og adgangskode, vi lige har angivet.

Dette er, hvad der er skabt,

Ingen klynger er tilgængelige og kan ses, og nogle privilegier nægtes som vist nedenfor, såsom nøglestyringsindstillinger og e-mailmeddelelser:

Justering af RBAC

Da privilegierne i rollerne kan ændres, er det nemt at administrere dem via Brugeradministration ➝ Adgangskontrol.

Lad os nu tillade den oprettede bruger at se en klynge. Da vores bruger har nægtet adgang til alle klynger, er vi nødt til at aktivere det. Se nedenfor,

Nu, som vi har sagt tidligere baseret på diagrammet, styres klynger af teamet. For eksempel er der følgende klyngetildelinger nedenunder:

Da vi skal tildele klyngen til det rigtige team, vil du ved at vælge den specifikke klynge og klikke på knappen "Skift team" vise prompten, så du kan gentildele den til det rigtige team.

Lad os nu tildele den til DevOps.

Nu, logget ind igen som den nyoprettede bruger, og vi vil kunne se klyngen.

Oversigt

Role-Based Access Control (RBAC) i ClusterControl er en funktion, der giver finmasket restriktiv adgangskontrol for hver bruger, du har oprettet i ClusterControl, hvilket muliggør større sikkerhed og mere restriktiv adgangskontrol baseret på en brugerens rolle.


  1. Kom godt i gang med PHP og MongoDB

  2. Sådan konverteres Redis-dato til R

  3. Skal jeg bruge muligheden allowDiskUse i et produktmiljø?

  4. Implementer en GraphQL API med MongoDB Atlas og Apollo Server på Koyeb