Mikroservicesikkerhed Hvordan sikres din mikroserviceinfrastruktur?



Denne artikel om Microservices Security diskuterer nogle af de bedste fremgangsmåder til sikring af mikrotjenester på en detaljeret måde.

På nutidens marked, hvor industrier bruger forskellige softwarearkitekturer og applikationer, er det næsten umuligt at føle, at dine data er helt sikre. Så mens du bygger applikationer ved hjælp af bliver sikkerhedsproblemer mere betydningsfulde, da individuelle tjenester kommunikerer med hinanden og klienten. Så i denne artikel om mikroservicesikkerhed vil jeg diskutere de forskellige måder, du kan implementere for at sikre dine mikroservices i følgende sekvens.

Hvad er mikrotjenester?

Mikrotjenester, også kaldet mikroservicearkitektur , er en arkitektonisk stil, der strukturerer en applikation som en samling af små autonome tjenester, modelleret omkring en forretningsdomæne. Så du kan forstå mikrotjenester som små individuelle tjenester, der kommunikerer med hinanden omkring den enkelte forretningslogik. Hvis du ønsker at vide mere om mikrotjenester i dybden, kan du





Hvad er mikroservices - mikroservicesikkerhed - Edureka

Nu, ofte når virksomheder skifter fra en monolitisk arkitektur til mikrotjenester, ser de mange fordele som skalerbarhed, fleksibilitet og korte udviklingscyklusser. Men på samme tid introducerer denne arkitektur også et par komplekse problemer.



Så næste i denne artikel om mikroservicesikkerhed, lad os forstå problemerne i en mikroservicearkitektur.

Problemer med mikrotjenester

Problemerne med mikrotjenester er som følger:

hvordan man bruger en iterator

Opgave 1:

Overvej et scenarie, hvor en bruger skal logge ind for at få adgang til en ressource. Nu, i mikrotjenestearkitektur, skal brugerens loginoplysninger gemmes på en sådan måde, at brugeren ikke bliver bedt om bekræftelse hver gang han / hun forsøger at få adgang til en ressource. Nu skaber dette et problem, da brugeroplysningerne muligvis ikke er sikre og også kan tilgås af 3rdparti.



Opgave 2:

Når en klient sender en anmodning, skal klientoplysningerne verificeres, og også tilladelserne til klienten skal kontrolleres. Så når du bruger mikrotjenester, kan det ske, at for hver eneste tjeneste skal du godkende og autorisere klienten. For at gøre dette kan udviklere muligvis bruge den samme kode til hver eneste tjeneste. Men tror du ikke at stole på en bestemt kode reducerer fleksibiliteten ved mikrotjenester? Nå, det gør det bestemt. Så dette er et af de største problemer, der ofte står over for i denne arkitektur.

Opgave 3:

Det næste problem, der er meget fremtrædende, er sikkerheden for hver enkelt mikroservice. I denne arkitektur kommunikerer alle mikrotjenester med hinanden samtidigt ud over 3rdpartansøgninger. Så når en klient logger ind fra en 3rdpartapplikation, skal du sørge for, at klienten ikke får adgang til dataene fra mikrotjenester, på en måde som han / hun muligvis udnytter dem.

Okay, de ovennævnte problemer er ikke de eneste problemer, der findes i en mikroservicearkitektur. Jeg vil sige, du kan stå over for mange andre problemer relateret til sikkerhed baseret på den applikation og den arkitektur, du har. På den note, lad os gå videre med denne artikel om mikroservicesikkerhed og kende den bedste måde at reducere udfordringerne på.

Bedste fremgangsmåder til sikkerhed inden for mikrotjenester

De bedste fremgangsmåder til forbedring af sikkerheden i mikrotjenester er som følger:

Forsvar i dybdemekanisme

Da mikrotjenester er kendt for at anvende enhver mekanisme på et granulært niveau, kan du anvende Defense in Depth-mekanismen for at gøre tjenesterne mere sikre. I lægmandssprog er Defense in Depth-mekanismen grundlæggende en teknik, hvorigennem du kan anvende lag af sikkerhedsmodforanstaltninger for at beskytte de følsomme tjenester. Så som udvikler skal du bare identificere tjenesterne med de mest følsomme oplysninger og derefter anvende et antal sikkerhedslag for at beskytte dem. På denne måde kan du sørge for, at enhver potentiel angriber ikke kan knække sikkerheden på en gang, og skal gå fremad og forsøge at knække forsvarsmekanismen i alle lagene.

Da du i en mikroservicearkitektur også kan implementere forskellige sikkerhedslag på forskellige tjenester, kan en angriber, der har succes med at udnytte en bestemt tjeneste, muligvis ikke knække forsvarsmekanismen for de andre tjenester.

Tokens og API Gateway

Når du åbner en applikation, ser du ofte en dialogboks, der siger 'Accepter licensaftalen og tilladelse til cookies'. Hvad betyder denne meddelelse? Når du først har accepteret det, gemmes dine brugeroplysninger og en session oprettes. Nu, næste gang du går på den samme side, indlæses siden fra cachehukommelsen snarere end selve serverne. Før dette koncept kom ind i billedet, blev sessioner gemt centralt på serversiden. Men dette var en af ​​de største barrierer i vandret skalering, applikationen.

Poletter

Så løsningen på dette problem er at bruge tokens til at registrere brugeroplysningerne. Disse tokens bruges til let at identificere brugeren og lagres i form af cookies. Hver gang en klient anmoder om en webside, videresendes anmodningen til serveren, og derefter bestemmer serveren, om brugeren har adgang til den ønskede ressource eller ej.

c ++ sortere int array

Nu er det største problem tokens, hvor brugeroplysningerne er gemt. Så data for tokens skal krypteres for at undgå udnyttelse fra 3rdfestressourcer. Jason Web Format eller mest kendt som JWT er en åben standard, der definerer tokenformatet, giver biblioteker til forskellige sprog og krypterer også disse tokens.

API-gateways

API Gateways tilføjer som et ekstra element for at sikre tjenester gennem token-godkendelse. Det Gateway fungerer som et indgangspunkt for alle klientforespørgsler og skjuler mikrotjenesterne effektivt fra klienten. Så klienten har ingen direkte adgang til mikrotjenester, og på den måde kan ingen klient udnytte nogen af ​​tjenesterne.

Distribueret sporing og sessionsstyring

Distribueret sporing

Mens du bruger mikrotjenester, skal du løbende overvåge alle disse tjenester. Men når du skal overvåge en enorm mængde tjenester samtidigt, bliver det et problem. For at undgå sådanne udfordringer kan du bruge en metode kendt som Distribueret sporing. Distribueret sporing er en metode til at lokalisere fejlene og identificere årsagen bag den. Ikke kun dette, men du kan også identificere det sted, hvor fejlen sker. Så det er meget let at spore, hvilken mikroservice står over for et sikkerhedsproblem.

Sessionsstyring

Sessionshåndtering er en vigtig parameter, som du skal overveje, mens du sikrer mikrotjenester. Nu oprettes en session, hver gang en bruger kommer til en applikation. Så du kan håndtere sessionsdataene på følgende måder:

dataindvinding c ++
  1. Du kan gemme sessionsdata for en enkelt bruger på en bestemt server. Men denne type system afhænger fuldstændigt af belastningsbalancering mellem tjenesterne og opfylder kun vandret skalering.
  2. De komplette sessionsdata kan gemmes i en enkelt forekomst. Derefter kan dataene synkroniseres via netværket. Det eneste problem er, at i denne metode bliver netværksressourcer opbrugt.
  3. Du kan sikre dig, at brugerdataene kan fås fra den delte sessionslagring, så alle tjenester kan læse de samme sessionsdata for at sikre. Men da dataene hentes fra delt lager, skal du sørge for, at du har en sikkerhedsmekanisme for at få adgang til data på en sikker måde.

Første session og gensidig SSL

Idéen med den første session er meget enkel. Brugere skal logge ind på applikationen en gang, og så kan de få adgang til alle tjenesterne i applikationen. Men hver bruger skal oprindeligt kommunikere med en godkendelsestjeneste. Nå, dette kan bestemt resultere i en masse trafik mellem alle tjenesterne og kan være besværligt for udviklerne at finde ud af fejl i et sådant scenario.

Kommer til gensidig SSL, applikationer ofte møder trafik fra brugere, 3rdparter og også mikrotjenester, der kommunikerer med hinanden. Men da disse tjenester er tilgængelige af de 3rdparter er der altid en risiko for angreb. Nu er løsningen på sådanne scenarier gensidig SSL eller gensidig godkendelse mellem mikrotjenester. Med dette krypteres de data, der overføres mellem tjenesterne. Det eneste problem med denne metode er, at når antallet af mikrotjenester øges, så da hver eneste tjeneste vil have sit eget TLS-certifikat, vil det være meget svært for udviklerne at opdatere certifikaterne.

3rdadgang til partapplikation

Vi har alle adgang til applikationer, der er 3rdpartansøgninger. Den 3rdpartapplikationer bruger et API-token genereret af brugeren i applikationen for at få adgang til de krævede ressourcer. Så tredjepartsapplikationer kan få adgang til bestemte brugeres data og ikke andre brugeroplysninger. Nå, dette var med hensyn til en enkelt bruger. Men hvad hvis applikationerne har brug for adgang til data fra flere brugere? Hvordan tror du, at en sådan anmodning imødekommes?

Brug af OAuth

Løsningen er at bruge OAuth. Når du bruger OAuth, beder applikationen brugeren om at godkende 3rdpartapplikationer, for at bruge de nødvendige oplysninger og generere et token til det. Generelt bruges en autorisationskode til at anmode om tokenet for at sikre, at brugerens tilbagekaldelses-URL ikke stjæles.

Så mens klienten nævner adgangstokenet, kommunikerer klienten med autorisationsserveren, og denne server bemyndiger klienten til at forhindre andre i at smide klientens identitet. Så når du bruger Microservices med OAuth, fungerer tjenesterne som en klient i OAuth-arkitekturen for at forenkle sikkerhedsproblemerne.

Nå, folkens, jeg vil ikke sige, at det er de eneste måder, hvorpå du kan sikre dine tjenester. Du kan sikre mikrotjenester på mange måder baseret på applikationens arkitektur. Så hvis du er en person, der stræber efter at opbygge en applikation baseret på mikrotjenester, så husk at sikkerheden af ​​tjenesterne er en vigtig faktor, som du skal være forsigtig med. På den note slutter vi denne artikel om mikroservicesikkerhed. Jeg håber, du fandt denne artikel informativ.

Hvis du ønsker at lære Microservices og oprette dine egne applikationer, så tjek vores som kommer med instruktørstyret live træning og projektoplevelse i det virkelige liv. Denne træning hjælper dig med at forstå Microservices i dybden og hjælper dig med at opnå mestring over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i ” Microservice sikkerhed ”Og jeg vender tilbage til dig.