Microservices-Sicherheit Wie sichern Sie Ihre Microservice-Infrastruktur?



In diesem Artikel zur Microservices-Sicherheit werden einige der Best Practices für die detaillierte Sicherung von Microservices erläutert.

In dem heutigen Markt, in dem Branchen verschiedene Softwarearchitekturen und -anwendungen verwenden, ist es nahezu unmöglich zu spüren, dass Ihre Daten vollständig sicher sind. Also, während Sie Anwendungen mit dem erstellen Sicherheitsprobleme werden immer wichtiger, da einzelne Dienste miteinander und mit dem Client kommunizieren. In diesem Artikel zur Sicherheit von Microservices werde ich die verschiedenen Möglichkeiten erläutern, die Sie implementieren können, um Ihre Microservices in der folgenden Reihenfolge zu sichern.

Was sind Microservices?

Microservices, aka Microservice-Architektur ist ein Architekturstil, der eine Anwendung als Sammlung kleiner autonomer Dienste strukturiert, die um a herum modelliert sind Geschäftsbereich. Sie können Microservices also als kleine einzelne Services verstehen, die über die einzelne Geschäftslogik miteinander kommunizieren. Wenn Sie mehr über Microservices erfahren möchten, können Sie dies tun





Was sind Microservices - Microservice Security - Edureka

Wenn Unternehmen häufig von einer monolithischen Architektur zu Microservices wechseln, sehen sie viele Vorteile wie Skalierbarkeit, Flexibilität und kurze Entwicklungszyklen. Gleichzeitig bringt diese Architektur jedoch auch einige komplexe Probleme mit sich.



Lassen Sie uns als nächstes in diesem Artikel über die Sicherheit von Microservices die Probleme einer Microservice-Architektur verstehen.

Probleme bei Microservices

Die Probleme bei Mikrodiensten sind wie folgt:

Problem 1:

Stellen Sie sich ein Szenario vor, in dem sich ein Benutzer anmelden muss, um auf eine Ressource zuzugreifen. In der Microservices-Architektur müssen die Benutzeranmeldedaten jetzt so gespeichert werden, dass der Benutzer nicht jedes Mal, wenn er versucht, auf eine Ressource zuzugreifen, zur Überprüfung aufgefordert wird. Dies führt nun zu einem Problem, da die Benutzerdetails möglicherweise nicht sicher sind und auch von der 3 abgerufen werden könnenrdParty.



Problem 2:

Wenn ein Client eine Anfrage sendet, müssen die Client-Details überprüft und auch die dem Client erteilten Berechtigungen überprüft werden. Wenn Sie Microservices verwenden, kann es daher vorkommen, dass Sie für jeden Dienst den Client authentifizieren und autorisieren müssen. Zu diesem Zweck verwenden Entwickler möglicherweise für jeden Dienst denselben Code. Glauben Sie jedoch nicht, dass die Verwendung eines bestimmten Codes die Flexibilität von Microservices verringert? Nun, das tut es definitiv. Dies ist eines der Hauptprobleme, mit denen diese Architektur häufig konfrontiert ist.

Problem 3:

Das nächste sehr wichtige Problem ist die Sicherheit jedes einzelnen Mikrodienstes. In dieser Architektur kommunizieren alle Mikrodienste zusätzlich zu den 3 gleichzeitig miteinanderrdParty-Anwendungen. Wenn sich ein Client von einem 3 aus anmeldetrdBei einer Party-Anwendung müssen Sie sicherstellen, dass der Client keinen Zugriff auf die Daten von Microservices erhält, so dass er diese möglicherweise ausnutzt.

Java, wie man Double in Int konvertiert

In Ordnung, die oben genannten Probleme sind nicht die einzigen Probleme, die in einer Microservice-Architektur auftreten. Ich würde sagen, Sie könnten aufgrund der Anwendung und der Architektur, die Sie haben, mit vielen anderen Sicherheitsproblemen konfrontiert sein. Lassen Sie uns in diesem Sinne mit diesem Artikel über die Sicherheit von Microservices fortfahren und wissen, wie Sie die Herausforderungen am besten reduzieren können.

Best Practices für die Sicherheit von Microservices

Die Best Practices zur Verbesserung der Sicherheit in Microservices lauten wie folgt:

Tiefenverteidigungsmechanismus

Da bekannt ist, dass Microservices jeden Mechanismus auf granularer Ebene übernehmen, können Sie den Mechanismus 'Tiefenverteidigung' anwenden, um die Sicherheit der Dienste zu erhöhen. Für Laien ist der Defence in Depth-Mechanismus im Grunde eine Technik, mit der Sie Ebenen von Sicherheitsgegenmaßnahmen anwenden können, um die sensiblen Dienste zu schützen. Als Entwickler müssen Sie nur die Dienste mit den vertraulichsten Informationen identifizieren und dann eine Reihe von Sicherheitsebenen anwenden, um sie zu schützen. Auf diese Weise können Sie sicherstellen, dass ein potenzieller Angreifer die Sicherheit nicht auf einmal knacken kann und vorwärts gehen und versuchen muss, den Abwehrmechanismus aller Ebenen zu knacken.

Was ist der Unterschied zwischen Überschreiben und Überladen?

Da Sie in einer Microservice-Architektur unterschiedliche Sicherheitsebenen für verschiedene Dienste implementieren können, kann ein Angreifer, der einen bestimmten Dienst erfolgreich ausnutzt, möglicherweise den Verteidigungsmechanismus der anderen Dienste nicht knacken.

Token und API-Gateway

Wenn Sie eine Anwendung öffnen, wird häufig ein Dialogfeld mit der Aufschrift 'Akzeptieren Sie die Lizenzvereinbarung und die Berechtigung für Cookies' angezeigt. Was bedeutet diese Nachricht? Sobald Sie dies akzeptieren, werden Ihre Benutzeranmeldeinformationen gespeichert und eine Sitzung erstellt. Wenn Sie das nächste Mal dieselbe Seite aufrufen, wird die Seite aus dem Cache-Speicher und nicht von den Servern selbst geladen. Bevor dieses Konzept ins Spiel kam, wurden Sitzungen zentral auf der Serverseite gespeichert. Dies war jedoch eines der größten Hindernisse bei der horizontalen Skalierung, der Anwendung.

Token

Die Lösung für dieses Problem besteht also darin, Token zu verwenden, um die Benutzeranmeldeinformationen aufzuzeichnen. Diese Token dienen zur einfachen Identifizierung des Benutzers und werden in Form von Cookies gespeichert. Jedes Mal, wenn ein Client eine Webseite anfordert, wird die Anforderung an den Server weitergeleitet, und der Server bestimmt dann, ob der Benutzer Zugriff auf die angeforderte Ressource hat oder nicht.

Das Hauptproblem sind jetzt Token, in denen die Benutzerinformationen gespeichert sind. Daher müssen die Daten von Token verschlüsselt werden, um eine Ausnutzung von 3 zu vermeidenrdParty-Ressourcen. Das Jason Web Format oder am häufigsten als JWT bekannt ist ein offener Standard, der das Token-Format definiert, Bibliotheken für verschiedene Sprachen bereitstellt und diese Token auch verschlüsselt.

API-Gateways

API-Gateways werden als zusätzliches Element hinzugefügt, um Dienste durch Token-Authentifizierung zu sichern. Das Gateway fungiert als Einstiegspunkt für alle Client-Anforderungen und verbirgt die Microservices effizient vor dem Client. Der Client hat also keinen direkten Zugriff auf Microservices, und auf diese Weise kann kein Client einen der Services nutzen.

Verteilte Ablaufverfolgung und Sitzungsverwaltung

Verteilte Verfolgung

Während Sie Microservices verwenden, müssen Sie alle diese Dienste kontinuierlich überwachen. Wenn Sie jedoch eine Vielzahl von Diensten gleichzeitig überwachen müssen, wird dies zu einem Problem. Um solche Herausforderungen zu vermeiden, können Sie eine Methode verwenden, die als verteilte Ablaufverfolgung bezeichnet wird. Die verteilte Ablaufverfolgung ist eine Methode, um die Fehler zu lokalisieren und den Grund dafür zu ermitteln. Darüber hinaus können Sie den Ort identifizieren, an dem ein Fehler auftritt. Es ist also sehr einfach festzustellen, welcher Microservice mit einem Sicherheitsproblem konfrontiert ist.

Sitzungsverwaltung

Das Sitzungsmanagement ist ein wichtiger Parameter, den Sie beim Sichern von Microservices berücksichtigen müssen. Jetzt wird eine Sitzung erstellt, wenn ein Benutzer eine Anwendung aufruft. Sie können die Sitzungsdaten also folgendermaßen behandeln:

  1. Sie können die Sitzungsdaten eines einzelnen Benutzers auf einem bestimmten Server speichern. Diese Art von System hängt jedoch vollständig vom Lastausgleich zwischen den Diensten ab und erfüllt nur die horizontale Skalierung.
  2. Die vollständigen Sitzungsdaten können in einer einzelnen Instanz gespeichert werden. Dann können die Daten über das Netzwerk synchronisiert werden. Das einzige Problem ist, dass bei dieser Methode die Netzwerkressourcen erschöpft sind.
  3. Sie können sicherstellen, dass die Benutzerdaten aus dem gemeinsam genutzten Sitzungsspeicher abgerufen werden können, um sicherzustellen, dass alle Dienste dieselben Sitzungsdaten lesen können. Da die Daten jedoch aus dem gemeinsam genutzten Speicher abgerufen werden, müssen Sie sicherstellen, dass Sie über einen Sicherheitsmechanismus verfügen, um auf sichere Weise auf Daten zugreifen zu können.

Erste Sitzung und gegenseitiges SSL

Die Idee der ersten Sitzung ist sehr einfach. Benutzer müssen sich einmal bei der Anwendung anmelden und können dann auf alle Dienste in der Anwendung zugreifen. Jeder Benutzer muss jedoch zunächst mit einem Authentifizierungsdienst kommunizieren. Nun, dies kann definitiv zu viel Verkehr zwischen allen Diensten führen und kann für die Entwickler schwierig sein, Fehler in einem solchen Szenario herauszufinden.

Bei gegenseitigem SSL sind Anwendungen häufig dem Datenverkehr von Benutzern ausgesetzt. 3rdParteien und auch Microservices, die miteinander kommunizieren. Da jedoch auf diese Dienste von der 3 zugegriffen wirdrdParteien besteht immer die Gefahr von Angriffen. Die Lösung für solche Szenarien ist nun gegenseitiges SSL oder gegenseitige Authentifizierung zwischen Microservices. Damit werden die zwischen den Diensten übertragenen Daten verschlüsselt. Das einzige Problem bei dieser Methode ist, dass es für die Entwickler sehr schwierig ist, die Zertifikate zu aktualisieren, wenn die Anzahl der Mikrodienste zunimmt. Da jeder Dienst über ein eigenes TLS-Zertifikat verfügt, ist es sehr schwierig.

3rdZugriff auf Partyanwendungen

Wir alle greifen auf Anwendungen zu, die 3 sindrdParty-Anwendungen. Die 3rdTeilnehmeranwendungen verwenden ein vom Benutzer in der Anwendung generiertes API-Token, um auf die erforderlichen Ressourcen zuzugreifen. Die Anwendungen von Drittanbietern können also auf die Daten dieser bestimmten Benutzer und nicht auf die Anmeldeinformationen anderer Benutzer zugreifen. Nun, dies betraf einen einzelnen Benutzer. Was aber, wenn die Anwendungen auf Daten von mehreren Benutzern zugreifen müssen? Wie wird Ihrer Meinung nach eine solche Anfrage berücksichtigt?

Verwendung von OAuth

Die Lösung besteht darin, OAuth zu verwenden. Wenn Sie OAuth verwenden, fordert die Anwendung den Benutzer auf, die 3 zu autorisierenrdParty-Anwendungen, um die erforderlichen Informationen zu verwenden und ein Token dafür zu generieren. Im Allgemeinen wird ein Autorisierungscode verwendet, um das Token anzufordern, um sicherzustellen, dass die Rückruf-URL des Benutzers nicht gestohlen wird.

MySQL Workbench Tutorial für Anfänger

Während der Erwähnung des Zugriffstokens kommuniziert der Client mit dem Autorisierungsserver, und dieser Server autorisiert den Client, um zu verhindern, dass andere die Identität des Clients fälschen. Wenn Sie Microservices mit OAuth verwenden, fungieren die Services als Client in der OAuth-Architektur, um die Sicherheitsprobleme zu vereinfachen.

Nun, Leute, ich würde nicht sagen, dass dies die einzigen Möglichkeiten sind, wie Sie Ihre Dienste sichern können. Sie können Microservices basierend auf der Architektur der Anwendung auf viele Arten sichern. Wenn Sie also jemand sind, der eine auf Microservices basierende Anwendung erstellen möchte, denken Sie daran, dass die Sicherheit der Dienste ein wichtiger Faktor ist, bei dem Sie vorsichtig sein müssen. In diesem Sinne beenden wir diesen Artikel über die Sicherheit von Microservices. Ich hoffe, Sie fanden diesen Artikel informativ.

Wenn Sie Microservices erlernen und Ihre eigenen Anwendungen erstellen möchten, lesen Sie unsere Dies beinhaltet ein von Lehrern geführtes Live-Training und praktische Projekterfahrung. Diese Schulung hilft Ihnen dabei, Microservices gründlich zu verstehen und das Thema zu beherrschen.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren von ” Microservice-Sicherheit Und ich werde mich bei Ihnen melden.