Microservices-beveiliging Hoe kunt u uw microservice-infrastructuur beveiligen?



In dit artikel over Microservices Security worden enkele van de best practices voor het beveiligen van microservices op een gedetailleerde manier besproken.

In de huidige markt waar industrieën verschillende softwarearchitecturen en -applicaties gebruiken, is het bijna onmogelijk om te denken dat uw gegevens volledig veilig zijn. Dus tijdens het bouwen van applicaties met de worden veiligheidsproblemen belangrijker naarmate individuele diensten met elkaar en met de klant communiceren. In dit artikel over beveiliging van microservices bespreek ik de verschillende manieren waarop u uw microservices kunt beveiligen in de volgende volgorde.

Wat zijn microservices?

Microservices, ook bekend als microservice-architectuur , is een architectonische stijl die een applicatie structureert als een verzameling kleine autonome diensten, gemodelleerd rond een zakelijk domein. U kunt microservices dus begrijpen als kleine individuele services die met elkaar communiceren rond de enkele bedrijfslogica. Als je meer wilt weten over microservices, dan kan dat





Wat zijn Microservices - Microservice Security - Edureka

Nu bedrijven vaak overschakelen van een monolithische architectuur naar microservices, zien ze veel voordelen zoals schaalbaarheid, flexibiliteit en korte ontwikkelingscycli. Maar tegelijkertijd introduceert deze architectuur ook enkele complexe problemen.



Laten we daarom in dit artikel over microservicesbeveiliging de problemen in een microservice-architectuur begrijpen.

Problemen bij microservices

De problemen bij microservices zijn de volgende:

omgekeerde van een nummer in java

Probleem 1:

Overweeg een scenario waarin een gebruiker moet inloggen om toegang te krijgen tot een bron. Nu moeten in de architectuur van microservices de inloggegevens van de gebruiker zo worden opgeslagen dat de gebruiker niet elke keer om verificatie wordt gevraagd als hij / zij toegang probeert te krijgen tot een bron. Dit zorgt nu voor een probleem, omdat de gebruikersgegevens mogelijk niet veilig zijn en ook toegankelijk zijn voor de 3rdpartij.



Probleem 2:

Wanneer een klant een verzoek verzendt, moeten de klantgegevens worden geverifieerd en ook de machtigingen die aan de klant zijn gegeven, moeten worden gecontroleerd. Dus als u microservices gebruikt, kan het gebeuren dat u voor elke service de client moet authenticeren en autoriseren. Om dit te doen, kunnen ontwikkelaars dezelfde code gebruiken voor elke service. Maar denkt u niet dat het vertrouwen op een specifieke code de flexibiliteit van microservices vermindert? Nou, dat doet het zeker. Dit is dus een van de grootste problemen waarmee deze architectuur vaak wordt geconfronteerd.

Probleem 3:

Het volgende probleem dat zeer prominent aanwezig is, is de beveiliging van elke individuele microservice. In deze architectuur communiceren alle microservices tegelijkertijd met elkaar naast de 3rdpartijtoepassingen. Dus als een klant inlogt vanaf een 3rdpartijapplicatie, moet u ervoor zorgen dat de klant geen toegang krijgt tot de gegevens van microservices, op een manier dat hij / zij deze kan exploiteren.

Oké, de bovengenoemde problemen zijn niet de enige problemen die worden aangetroffen in een microservice-architectuur. Ik zou zeggen dat je op basis van de applicatie en de architectuur die je hebt, met veel andere problemen met betrekking tot beveiliging te maken kunt krijgen. Laten we wat dat betreft verder gaan met dit artikel over beveiliging van microservices en weten wat de beste manier is om de uitdagingen te verminderen.

Best practices voor beveiliging van microservices

De best practices om de beveiliging in microservices te verbeteren zijn als volgt:

Verdedigingsmechanisme

Aangezien het bekend is dat microservices elk mechanisme op gedetailleerd niveau toepassen, kunt u het Defense in Depth-mechanisme toepassen om de services veiliger te maken. In termen van de leek is het Defense in Depth-mechanisme in feite een techniek waarmee u lagen van beveiligingsmaatregelen kunt toepassen om de gevoelige services te beschermen. Als ontwikkelaar hoeft u dus alleen maar de services met de meest gevoelige informatie te identificeren en vervolgens een aantal beveiligingslagen toe te passen om ze te beschermen. Op deze manier kunt u ervoor zorgen dat een potentiële aanvaller de beveiliging niet in één keer kan kraken, en vooruit moet gaan om het verdedigingsmechanisme van alle lagen te kraken.

Aangezien u in een microservicearchitectuur verschillende beveiligingslagen op verschillende services kunt implementeren, kan een aanvaller die erin slaagt een bepaalde service te misbruiken, mogelijk het verdedigingsmechanisme van de andere services niet kraken.

Tokens en API-gateway

Wanneer u een toepassing opent, ziet u vaak een dialoogvenster met de tekst 'Accepteer de licentieovereenkomst en toestemming voor cookies'. Wat betekent dit bericht? Zodra u het accepteert, worden uw gebruikersreferenties opgeslagen en wordt er een sessie gemaakt. Nu, de volgende keer dat u naar dezelfde pagina gaat, wordt de pagina uit het cachegeheugen geladen in plaats van de servers zelf. Voordat dit concept in beeld kwam, werden sessies centraal opgeslagen op de server-side. Maar dit was een van de grootste obstakels bij het horizontaal schalen van de applicatie.

Munten

De oplossing voor dit probleem is dus om tokens te gebruiken om de gebruikersreferenties vast te leggen. Deze tokens worden gebruikt om de gebruiker gemakkelijk te identificeren en worden opgeslagen in de vorm van cookies. Elke keer dat een cliënt een webpagina opvraagt, wordt het verzoek doorgestuurd naar de server en vervolgens bepaalt de server of de gebruiker al dan niet toegang heeft tot de gevraagde bron.

java is a vs heeft een

Nu is het grootste probleem de tokens waar de gebruikersinformatie is opgeslagen. De gegevens van tokens moeten dus worden versleuteld om misbruik van 3rdpartij middelen. Jason Web Format of het meest algemeen bekend als JWT is een open standaard die het token-formaat definieert, bibliotheken voor verschillende talen biedt en ook die tokens versleutelt.

API-gateways

API Gateways voegen als een extra element toe om services te beveiligen via token-authenticatie. De Gateway fungeert als toegangspunt voor alle clientverzoeken en verbergt de microservices efficiënt voor de client. De klant heeft dus geen directe toegang tot microservices en op die manier kan geen enkele klant een van de services exploiteren.

Gedistribueerde tracering en sessiebeheer

Gedistribueerde tracering

Bij het gebruik van microservices moet u al deze services continu monitoren. Maar als u een gigantisch aantal services tegelijkertijd moet controleren, wordt dat een probleem. Om dergelijke uitdagingen te vermijden, kunt u een methode gebruiken die bekend staat als Distributed Tracing. Gedistribueerde tracering is een methode om de fouten op te sporen en de reden erachter te achterhalen. Niet alleen dit, maar u kunt ook de plaats identificeren waar de storing plaatsvindt. Het is dus heel gemakkelijk om op te sporen welke microservice met een beveiligingsprobleem kampt.

Sessiebeheer

Sessiebeheer is een belangrijke parameter waarmee u rekening moet houden bij het beveiligen van microservices. Nu wordt er een sessie aangemaakt wanneer een gebruiker een toepassing binnenkomt. U kunt de sessiegegevens dus op de volgende manieren verwerken:

  1. U kunt de sessiegegevens van een enkele gebruiker op een specifieke server opslaan. Maar dit soort systeem is volledig afhankelijk van de taakverdeling tussen de services en voldoet alleen aan horizontale schaalvergroting.
  2. De volledige sessiegegevens kunnen in één instantie worden opgeslagen. Vervolgens kunnen de gegevens via het netwerk worden gesynchroniseerd. Het enige probleem is dat bij deze methode de netwerkbronnen uitgeput raken.
  3. U kunt ervoor zorgen dat de gebruikersgegevens kunnen worden opgehaald uit de gedeelde sessieopslag, zodat alle services dezelfde sessiegegevens kunnen lezen. Maar aangezien de gegevens worden opgehaald uit gedeelde opslag, moet u ervoor zorgen dat u over een beveiligingsmechanisme beschikt om op een veilige manier toegang te krijgen tot gegevens.

Eerste sessie en wederzijdse SSL

Het idee van de eerste sessie is heel simpel. Gebruikers moeten één keer inloggen op de applicatie en dan hebben ze toegang tot alle services in de applicatie. Maar elke gebruiker moet in eerste instantie communiceren met een authenticatiedienst. Dit kan zeker resulteren in veel verkeer tussen alle services en kan voor de ontwikkelaars lastig zijn om fouten in een dergelijk scenario te achterhalen.

Als ze naar Mutual SSL gaan, krijgen applicaties vaak te maken met verkeer van gebruikers, 3rdpartijen en ook microservices die met elkaar communiceren. Maar aangezien deze services toegankelijk zijn voor de 3rdpartijen is er altijd een risico op aanslagen. Nu is de oplossing voor dergelijke scenario's wederzijdse SSL of wederzijdse authenticatie tussen microservices. Hiermee worden de gegevens die tussen de services worden overgedragen, versleuteld. Het enige probleem met deze methode is dat, wanneer het aantal microservices toeneemt, het, aangezien elke service zijn eigen TLS-certificaat zal hebben, het erg moeilijk zal zijn voor de ontwikkelaars om de certificaten bij te werken.

3rdtoegang tot partyapplicaties

We hebben allemaal toegang tot applicaties die 3 zijnrdpartijtoepassingen. De 3rdpartijtoepassingen gebruiken een API-token dat door de gebruiker in de toepassing is gegenereerd om toegang te krijgen tot de vereiste bronnen. Toepassingen van derden hebben dus toegang tot de gegevens van die specifieke gebruikers en niet tot de inloggegevens van andere gebruikers. Nou, dit was met betrekking tot een enkele gebruiker. Maar wat als de applicaties toegang moeten hebben tot gegevens van meerdere gebruikers? Hoe denk je dat aan een dergelijk verzoek wordt voldaan?

Gebruik van OAuth

De oplossing is om OAuth te gebruiken. Wanneer u OAuth gebruikt, vraagt ​​de applicatie de gebruiker om de 3rdpartijtoepassingen, om de vereiste informatie te gebruiken en er een token voor te genereren. Over het algemeen wordt een autorisatiecode gebruikt om het token aan te vragen om ervoor te zorgen dat de terugbel-URL van de gebruiker niet wordt gestolen.

Dus terwijl het toegangstoken wordt genoemd, communiceert de client met de autorisatieserver, en deze server autoriseert de client om te voorkomen dat anderen de identiteit van de client vervalsen. Dus wanneer u Microservices met OAuth gebruikt, fungeren de services als een client in de OAuth-architectuur om de beveiligingsproblemen te vereenvoudigen.

Nou mensen, ik zou niet zeggen dat dit de enige manieren zijn waarop u uw diensten kunt beveiligen. U kunt microservices op veel manieren beveiligen op basis van de architectuur van de applicatie. Dus als u iemand bent die een applicatie wil bouwen op basis van microservices, onthoud dan dat de beveiliging van de services een belangrijke factor is waar u voorzichtig mee moet zijn. In dat opzicht komen we tot een einde aan dit artikel over beveiliging van microservices. Ik hoop dat je dit artikel informatief vond.

.trim () java

Als je Microservices wilt leren kennen en je eigen applicaties wilt bouwen, bekijk dan onze die wordt geleverd met live training onder leiding van een instructeur en real-life projectervaring. Deze training zal u helpen Microservices diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van ' Microservice-beveiliging ”En ik neem contact met je op.