© Liashko/Shutterstock.com
Entwickler Magazin
Grundlegende Aspekte zum Thema Sicherheit bei Serverless-Architekturen

Die passgenaue Serverless-Security

Im Folgenden wollen wir ein mit Azure Functions - also serverless - implementiertes API mit modernen Mitteln absichern, indem wir eine JSON-Web-Token-(JWT-)Validierung hinzufügen. Vorkenntnisse in OAuth 2 [1], JWT [2] und Identity Provider (IDP) [3] sind von Vorteil, aber nicht zwingend notwendig.

Andreas Grimm


Sie haben in dieser Ausgabe wahrscheinlich schon mehrere Definitionen und Gründe für den Einsatz von Serverless gelesen. Aber da es auch in Bezug auf Authentifizierung eine bedeutende Rolle spielt, hier nochmal einige inhärente Kerneigenschaften:

Auto-Scaling inkl. „scale to zero“ High Availability (Hochverfügbarkeit) Pay on Demand, d. h. keine Kosten bei Nichtbenutzung Ein außerhalb unseres Verantwortungsbereichs liegender Scheduler ruft unseren Code auf; bei Kubernetes – egal ob managed oder nicht – ist das nicht der Fall

Ohne uns um viele technische Details der darunterliegenden Serverinfrastruktur kümmern zu müssen (daher der Name Serverless), wird uns all das gebrauchsfertig geliefert. Wir brauchen nur noch auf angenehm abstrakter Ebene gewisse Eckdaten zu konfigurieren. Zum Beispiel ob wir der automatischen Skalierung eine obere Grenze verpassen wollen, um bei spontaner Popularität unseres Produkts oder bei DDoS-Attacken Überraschungen bezüglich der entstehenden Kosten zu vermeiden. Es gibt schließlich nicht mehr die technische Skalierungsgrenze des einen Servers, den wir deployt haben. Wie Sie merken, können manche Eigenschaften von Serverless also Fluch und Segen zugleich sein. Es ist auch nicht zu leugnen, dass nun spätestens mit Serverless architekturelles Wissen und Erfahrung nicht nur an Bedeutung gewinnt, sondern auch ein Mindestmaß davon vorhanden sein sollte.

Anstatt Verantwortung für traditionelle Low-Level-Aspekte wie das Betriebssystem und Netzwerk zu übernehmen, VMs zu installieren, Container oder Pods zu deployen und generelles „Infrastrukturbabysitting“ zu betreiben, geben wir das alles lieber an den Cloudprovider unserer Wahl ab. Wir setzen mit Serverless High Level Managed Services ein, die die o.g. Aspekte erfüllen. Die halten so ziemlich jeder Last stand, sind hochverfügbar und kosten uns ohne Last keinen Cent. Wir müssen diese Services nur noch miteinander verbinden und miteinander kommunizieren lassen. Das kann immer öfter sogar über eine Konfiguration geschehen, anstatt den Code selbst schreiben zu müssen.

Azure Functions – mit denen wir im Anschluss ein API erstellen werden – zählen zur Kategorie Compute. Aber auch in anderen Kategorien gibt es Serverless-Managed-Service-Angebote. Im Bereich Storage – schon lange vor Azure Functions verfügbar – ist z. B. als erstes Azure Blob Storage anzuführen. Im Bereich Messaging bietet die Azure-Cloud Services wie Azure Service Bus oder Azure Event Grid an.

Neben diesen drei wohl bekannteste...

Entwickler Magazin
Grundlegende Aspekte zum Thema Sicherheit bei Serverless-Architekturen

Die passgenaue Serverless-Security

Im Folgenden wollen wir ein mit Azure Functions - also serverless - implementiertes API mit modernen Mitteln absichern, indem wir eine JSON-Web-Token-(JWT-)Validierung hinzufügen. Vorkenntnisse in OAuth 2 [1], JWT [2] und Identity Provider (IDP) [3] sind von Vorteil, aber nicht zwingend notwendig.

Andreas Grimm


Sie haben in dieser Ausgabe wahrscheinlich schon mehrere Definitionen und Gründe für den Einsatz von Serverless gelesen. Aber da es auch in Bezug auf Authentifizierung eine bedeutende Rolle spielt, hier nochmal einige inhärente Kerneigenschaften:

Auto-Scaling inkl. „scale to zero“ High Availability (Hochverfügbarkeit) Pay on Demand, d. h. keine Kosten bei Nichtbenutzung Ein außerhalb unseres Verantwortungsbereichs liegender Scheduler ruft unseren Code auf; bei Kubernetes – egal ob managed oder nicht – ist das nicht der Fall

Ohne uns um viele technische Details der darunterliegenden Serverinfrastruktur kümmern zu müssen (daher der Name Serverless), wird uns all das gebrauchsfertig geliefert. Wir brauchen nur noch auf angenehm abstrakter Ebene gewisse Eckdaten zu konfigurieren. Zum Beispiel ob wir der automatischen Skalierung eine obere Grenze verpassen wollen, um bei spontaner Popularität unseres Produkts oder bei DDoS-Attacken Überraschungen bezüglich der entstehenden Kosten zu vermeiden. Es gibt schließlich nicht mehr die technische Skalierungsgrenze des einen Servers, den wir deployt haben. Wie Sie merken, können manche Eigenschaften von Serverless also Fluch und Segen zugleich sein. Es ist auch nicht zu leugnen, dass nun spätestens mit Serverless architekturelles Wissen und Erfahrung nicht nur an Bedeutung gewinnt, sondern auch ein Mindestmaß davon vorhanden sein sollte.

Anstatt Verantwortung für traditionelle Low-Level-Aspekte wie das Betriebssystem und Netzwerk zu übernehmen, VMs zu installieren, Container oder Pods zu deployen und generelles „Infrastrukturbabysitting“ zu betreiben, geben wir das alles lieber an den Cloudprovider unserer Wahl ab. Wir setzen mit Serverless High Level Managed Services ein, die die o.g. Aspekte erfüllen. Die halten so ziemlich jeder Last stand, sind hochverfügbar und kosten uns ohne Last keinen Cent. Wir müssen diese Services nur noch miteinander verbinden und miteinander kommunizieren lassen. Das kann immer öfter sogar über eine Konfiguration geschehen, anstatt den Code selbst schreiben zu müssen.

Azure Functions – mit denen wir im Anschluss ein API erstellen werden – zählen zur Kategorie Compute. Aber auch in anderen Kategorien gibt es Serverless-Managed-Service-Angebote. Im Bereich Storage – schon lange vor Azure Functions verfügbar – ist z. B. als erstes Azure Blob Storage anzuführen. Im Bereich Messaging bietet die Azure-Cloud Services wie Azure Service Bus oder Azure Event Grid an.

Neben diesen drei wohl bekannteste...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang