© dencg/Shutterstock.com
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.

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 bekanntesten Kategorien gibt es viele weitere Angebote. Hier nur einige weitere Bereiche als Beispiele:

  • Secrets-Managementsysteme (z. B. Azure Key Vault)

  • Streaming bzw. Stream Analysis (z. B. Azure Event Hub und Azure Stream Analytics)

  • künstliche Intelligenz (z. B. Azure Cognitive Services)usw.

Diese Serverless Managed Services werden sich zukünftig noch stärker in Richtung spezialisierte, kombinierbare Business-Components entwickeln, wie z. B. Amazon Pinpoint für Marketingkampagnen. Im Vordergrund steht die Reduzierung der Total Cost of Ownership eines Produktes. Wir wollen Geschäftsprobleme unserer Fachdomäne lösen, Code für die Businesslogik schreiben. Denn meistens ist genau das unsere eigentliche Aufgabe und unser eigentliches Können. Das Beheben von Sicherheitslücken des Betriebssystems überlassen wir z. B. sowieso besser den diesbezüglichen Experten. Und vielleicht haben Sie es schon gemerkt: Ganz unabhängig von den gehypten technischen Aspekten von Serverless haben wir es dadurch auch viel leichter, eine wirkliche DevOps-Kultur und agile Softwareentwicklung zu betreiben.

Es werden sich uns aber auch ganz...

Neugierig geworden? Wir haben diese Angebote für dich:

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