Microservices säkerhet Hur skyddar du din Microservice-infrastruktur?



Denna artikel om Microservices Security diskuterar några av de bästa metoderna för att säkra mikrotjänster på ett detaljerat sätt.

På dagens marknad där industrier använder olika programvaruarkitekturer och applikationer är det nästan omöjligt att känna att dina data är helt säkra. Så medan du bygger applikationer med blir säkerhetsfrågor mer betydande, eftersom enskilda tjänster kommunicerar med varandra och klienten. Så i den här artikeln om mikrotjänstsäkerhet kommer jag att diskutera olika sätt du kan implementera för att säkra dina mikrotjänster i följande sekvens.

Vad är mikrotjänster?

Mikrotjänster, aka mikrotjänstarkitektur , är en arkitektonisk stil som strukturerar en applikation som en samling av små autonoma tjänster, modellerade runt en affärsdomän. Så du kan förstå mikrotjänster som små enskilda tjänster som kommunicerar med varandra kring den enskilda affärslogiken. Om du vill veta mer om mikrotjänster på djupet kan du göra det





Vad är Microservices - Microservice Security - Edureka

tablå hur man skapar en uppsättning

Nu, ofta när företag går från monolitisk arkitektur till mikrotjänster, ser de många fördelar som skalbarhet, flexibilitet och korta utvecklingscykler. Men samtidigt introducerar denna arkitektur också några komplexa problem.



Så nästa i den här artikeln om mikrotjänstsäkerhet, låt oss förstå problemen i en mikroservicearkitektur.

Problem med mikrotjänster

Problemen med mikrotjänster är följande:

Problem 1:

Tänk på ett scenario där en användare behöver logga in för att få tillgång till en resurs. Nu, i mikrotjänstarkitektur, måste användarnas inloggningsuppgifter sparas på ett sådant sätt att användaren inte blir ombedd att verifiera varje gång han / hon försöker komma åt en resurs. Nu skapar detta ett problem, eftersom användardetaljerna kanske inte är säkra och också kan nås av 3rdfest.



Problem 2:

När en klient skickar en begäran måste klientinformationen verifieras och även behörigheterna till klienten måste kontrolleras. Så när du använder mikrotjänster kan det hända att för varje tjänst måste du autentisera och auktorisera klienten. För att göra detta kan utvecklare använda samma kod för varje tjänst. Men tror du inte att förlita sig på en specifik kod minskar mikrotjänsternas flexibilitet? Tja, det gör det definitivt. Så detta är ett av de största problemen som ofta möter denna arkitektur.

Problem 3:

Nästa problem som är mycket framträdande är säkerheten för varje enskild mikrotjänst. I denna arkitektur kommunicerar alla mikrotjänster med varandra samtidigt utöver 3rdpartansökningar. Så när en klient loggar in från en 3rdpartapplikation, måste du se till att klienten inte får tillgång till data från mikrotjänster, på ett sätt som han / hon kan utnyttja dem.

Okej, ovan nämnda problem är inte de enda problemen som finns i en mikroservicearkitektur. Jag skulle säga att du kan möta många andra problem relaterade till säkerhet baserat på applikationen och den arkitektur du har. På den noten, låt oss gå vidare med den här artikeln om mikrotjänstsäkerhet och veta det bästa sättet att minska utmaningarna.

Bästa metoder för säkerhet för mikrotjänster

De bästa metoderna för att förbättra säkerheten i mikrotjänster är följande:

Försvar i djupmekanism

Eftersom mikrotjänster är kända för att anta vilken mekanism som helst på granulär nivå, kan du använda försvaret i djupmekanismen för att göra tjänsterna säkrare. I lekmän är mekanismen Defense in Depth i grunden en teknik genom vilken du kan använda lager av säkerhetsmotåtgärder för att skydda känsliga tjänster. Så som utvecklare måste du bara identifiera tjänsterna med den mest känsliga informationen och sedan använda ett antal säkerhetslager för att skydda dem. På detta sätt kan du se till att alla potentiella angripare inte kan knäcka säkerheten på en enda gång, och måste gå framåt och försöka knäcka försvarsmekanismen i alla lager.

Eftersom du i en mikroservicearkitektur kan implementera olika säkerhetslager på olika tjänster, kan en angripare som lyckas utnyttja en viss tjänst kanske inte knäcka de andra tjänsternas försvarsmekanism.

Tokens och API Gateway

När du öppnar ett program ser du ofta en dialogruta som säger ”Acceptera licensavtalet och tillstånd för cookies”. Vad betyder detta meddelande? När du väl har godkänt det kommer dina användaruppgifter att sparas och en session skapas. Nu nästa gång du går på samma sida laddas sidan från cacheminnet snarare än själva servrarna. Innan detta koncept kom in i bilden lagrades sessioner centralt på serversidan. Men detta var en av de största hindren för horisontell skalning, applikationen.

Tokens

Så lösningen på detta problem är att använda tokens, för att registrera användaruppgifterna. Dessa tokens används för att enkelt identifiera användaren och lagras i form av cookies. Nu, varje gång en klient begär en webbsida, vidarebefordras begäran till servern och sedan bestämmer servern om användaren har åtkomst till den begärda resursen eller inte.

Nu är huvudproblemet tokens där användarinformationen lagras. Så, data för tokens måste krypteras för att undvika exploatering från 3rdpartiresurser. Jason Web Format eller oftast känd som JWT är en öppen standard som definierar tokenformatet, tillhandahåller bibliotek för olika språk och också krypterar dessa tokens.

API Gateways

API Gateways lägger till som ett extra element för att säkra tjänster genom tokenautentisering. De Gateway fungerar som en ingångspunkt för alla klientförfrågningar och döljer mikrotjänsterna effektivt från klienten. Så klienten har ingen direkt tillgång till mikrotjänster och därmed kan ingen klient utnyttja någon av tjänsterna.

Distribuerad spårning och sessionshantering

Distribuerad spårning

När du använder mikrotjänster måste du övervaka alla dessa tjänster kontinuerligt. Men när du måste övervaka en enorm mängd tjänster samtidigt blir det ett problem. För att undvika sådana utmaningar kan du använda en metod som kallas Distribuerad spårning. Distribuerad spårning är en metod för att hitta fel och identifiera orsaken bakom det. Inte bara detta, men du kan också identifiera platsen där fel inträffar. Så det är väldigt enkelt att spåra, vilken mikroservice står inför ett säkerhetsproblem.

vad är skillnaden mellan överstyrning och överbelastning

Sessionshantering

Sessionshantering är en viktig parameter som du måste tänka på när du säkrar mikrotjänster. Nu skapas en session när en användare kommer till en applikation. Så du kan hantera sessionsdata på följande sätt:

  1. Du kan lagra sessionsdata för en enskild användare på en specifik server. Men den här typen av system beror helt på belastningsbalansering mellan tjänsterna och uppfyller endast horisontell skalning.
  2. Hela sessionsdata kan lagras i en enda instans. Då kan data synkroniseras via nätverket. Det enda problemet är att nätverksresurserna i den här metoden blir uttömda.
  3. Du kan se till att användardata kan erhållas från den delade sessionens lagring, så att alla tjänster kan läsa samma sessionsdata. Men eftersom data hämtas från delad lagring måste du se till att du har någon säkerhetsmekanism för att få åtkomst till data på ett säkert sätt.

Första sessionen och ömsesidig SSL

Idén med den första sessionen är väldigt enkel. Användare måste logga in på applikationen en gång och sedan kan de komma åt alla tjänster i applikationen. Men varje användare måste initialt kommunicera med en autentiseringstjänst. Tja, detta kan definitivt leda till mycket trafik mellan alla tjänster och kan vara besvärligt för utvecklarna att räkna ut fel i ett sådant scenario.

Kommer till ömsesidig SSL, möter applikationer ofta trafik från användare, 3rdparter och även mikrotjänster som kommunicerar med varandra. Men eftersom dessa tjänster nås av 3rdparter finns det alltid en risk för attacker. Nu är lösningen på sådana scenarier ömsesidig SSL eller ömsesidig autentisering mellan mikrotjänster. Med detta krypteras data som överförs mellan tjänsterna. Det enda problemet med den här metoden är att när antalet mikrotjänster ökar, eftersom varje tjänst kommer att ha sitt eget TLS-certifikat, blir det mycket svårt för utvecklarna att uppdatera certifikaten.

3rdpartapplikationsåtkomst

Vi har alla tillgång till applikationer som är 3rdpartansökningar. 3rdpartapplikationer använder en API-token som genereras av användaren i applikationen för att komma åt de nödvändiga resurserna. Så, tredjepartsapplikationerna kan komma åt de specifika användarnas data och inte andra användaruppgifter. Tja, detta var med avseende på en enskild användare. Men tänk om applikationerna behöver komma åt data från flera användare? Hur tror du att en sådan begäran tillgodoses?

Användning av OAuth

Lösningen är att använda OAuth. När du använder OAuth uppmanar applikationen användaren att godkänna 3rdpartapplikationer, för att använda nödvändig information och generera en token för den. Generellt används en auktoriseringskod för att begära token för att se till att användarens återuppringnings-URL inte blir stulen.

Medan åtkomsttoken nämns, kommunicerar klienten med auktoriseringsservern, och den här servern auktoriserar klienten att förhindra att andra smider klientens identitet. Så när du använder Microservices med OAuth fungerar tjänsterna som en klient i OAuth-arkitekturen för att förenkla säkerhetsproblemen.

strukturen i ett Java-program

Tja, folk, jag skulle inte säga att det här är de enda sätten genom vilka du kan säkra dina tjänster. Du kan säkra mikrotjänster på många sätt baserat på applikationens arkitektur. Så om du är någon som vill bygga en applikation baserad på mikrotjänster, kom ihåg att säkerheten för tjänsterna är en viktig faktor som du måste vara försiktig med. På den noten kommer vi till ett slut på den här artikeln om mikrotjänstsäkerhet. Jag hoppas att du tyckte att den här artikeln var informativ.

Om du vill lära dig Microservices och bygga dina egna applikationer, kolla in vår som kommer med instruktörsledad live-utbildning och verklig projektupplevelse. Denna utbildning hjälper dig att förstå Microservices på djupet och hjälper dig att behärska ämnet.

Har du en fråga till oss? Vänligen nämna det i kommentarfältet i ” Microservice Security ”Och jag kommer tillbaka till dig.