Getty Images/iStockphoto

5 bewährte Verfahren für die Microservices-Autorisierung

Autorisierung ist eine wichtige Sicherheitskomponente einer Microservices-Architektur. Diese fünf bewährten Verfahren unterstützen dabei, den Autorisierungsprozess zu verwalten.

Der verteilte Aufbau einer Microservices-Architektur macht die Autorisierung zu einem besonders komplexen Unterfangen.

Unternehmen müssen nicht nur festlegen, auf welche Dienste ein Benutzer zugreifen kann, sondern diese granularen Berechtigungen auch konsistent und in großem Umfang sowie über verschiedene Dienste hinweg verwalten.

Um die einzigartigen Sicherheitsherausforderungen zu bewältigen, die Microservices mit sich bringen, sollten Sie diese fünf Tipps für die Entwicklung eines Autorisierungsplans für eine auf Microservices basierende Anwendung berücksichtigen.

Monolithische versus Microservices-Architektur
Abbildung 1: Was eine monolithische von einer Microservice-Architektur unterscheidet.

1. Setzen Sie auf Zero-Trust und das Prinzip der geringsten Privilegien

Sicherheit ist das Herzstück einer effektiven Autorisierung, aber die Autorisierung sollte kein Hindernis für den Fortschritt innerhalb einer Organisation darstellen. Eine gut geplante Autorisierung sollte alle erforderlichen Geschäftslogiken ermöglichen und Zusammenarbeit und Innovation fördern, gleichzeitig aber verdächtige Aktivitäten unterbinden.

Um der Sicherheit Vorrang einzuräumen und die Geschäftskontinuität zu fördern, sollten Sie sich an das Zero-Trust-Prinzip und das Prinzip der minimalen Rechtevergabe (Principle of least Privilege, POLP) halten, um die Möglichkeiten einer Identität innerhalb eines Systems einzuschränken. Dazu gehören eine kontinuierliche Überprüfung, die Beschränkung des Umfangs der Privilegien auf das Wesentliche und die Begrenzung der Zugriffsdauer von unbestimmt auf einen bestimmten Zeitraum.

2. Verwenden Sie Zugriffstoken, um Berechtigungen zu definieren

Zugriffstoken sind die Bausteine der modernen Autorisierung. Diese Token sind Datenketten, die Informationen enthalten, die die Berechtigungen eines Benutzers für den Zugriff auf bestimmte Ressourcen innerhalb eines Systems überprüfen. Je nach Arbeitsbelastung und Sicherheitsanforderungen einer Organisation kann die Gültigkeitsdauer eines Tokens zwischen einigen Stunden und einigen Wochen liegen. Sobald das Token abläuft, hat der Benutzer keinen Zugriff mehr auf die Ressourcen. Token müssen regelmäßig ausgetauscht werden, um die Sicherheit zu erhöhen.

Autorisierungsdienste erstellen und verwalten Zugriffstoken. Die Open-Source-Community AuthZEN strebt danach, Standards im Bereich der Autorisierung zu setzen. Anbieter wie Permit.io, AuthZed und Aserto arbeiten ebenfalls daran, richtlinienbasierte Autorisierung für Microservices-Anwendungen einfach und effektiv zu gestalten.

3. Berechtigungen in großem Umfang mit Richtlinien verwalten

Strategie ist ein wichtiger Aspekt bei der Erstellung von Autorisierungsrichtlinien. Richtlinien sind Regeln, die für einzelne oder Gruppen von Token gelten und Benutzerrollen und -hierarchien umfassen können. Rollenbasierte Zugriffskontrolle (RBAC) ist das traditionelle Modell, aber neuere, fortschrittlichere Modelle, wie die attributbasierte Zugriffssteuerung (Attribute-based Access Control, ABAC), werden immer beliebter. ABAC bietet Flexibilität und Vielseitigkeit bei der Definition von Richtlinien auf der Grundlage der Attribute einer Identität, einer Ressource, einer Aktion, einer Umgebung oder einer Kombination dieser Faktoren. Beispielsweise kann eine Organisation Entwicklern von Standort A Zugriff auf eine Ressource gewähren, Entwicklern von Standort B jedoch nicht. Richtlinien können auch durch Attribute wie Zeit, Titel, Alter oder Benutzername bestimmt werden.

Wenn eine Organisation den GitOps-Ansatz für die Plattformentwicklung verfolgt, muss sie Richtlinien in Git-Repositorys integrieren. Die Definition von Richtlinien als Code vereinfacht die Richtlinienverwaltung und erleichtert die Übertragung von Richtlinien in die Produktion oder das Zurücksetzen von Richtlinien, die veraltet oder riskant geworden sind.

4. Überlegen Sie, wo die Autorisierung stattfindet

Ob in einem Rechenzentrum, an einem Edge-Standort oder irgendwo in der Cloud – die Autorisierung kann an verschiedenen Orten und über mehrere Systeme hinweg erfolgen, wenn Identitäten versuchen, auf Ressourcen zuzugreifen oder bestimmte Aufgaben auszuführen. Es ist wichtig, die Autorisierung so nah wie möglich an den Ort des Geschehens zu verlagern, was zwei wesentliche Vorteile hat:

  • Geringe Latenz. Die Anfrage muss nicht von einem Punkt des Netzwerks zu einem anderen übertragen werden.
  • Hohe Verfügbarkeit. Der Autorisierungsdienst kann auch bei einer Netzwerkunterbrechung normal funktionieren.

Um dies zu ermöglichen, integrieren Sie die Autorisierung in den gesamten Cloud-Stack. Dies kann Identitätsanbieter wie Okta und Microsoft Active Directory, Git-Repositorys wie GitHub und GitLab, Cloud-Plattformen wie AWS und Microsoft Azure sowie Sicherheits- und Überwachungstools wie Splunk und Datadog umfassen.

5. Zentralisieren Sie die Berechtigungsverwaltung

Die Verwaltung aller Autorisierungsaktivitäten für Ihre Organisation und Anwendungen von einem einzigen Ort aus vereinfacht den Betrieb und erleichtert Audits. Sie löst Probleme der inkonsistenten Zugriffskontrolle, mindert die mit unbefugtem Zugriff verbundenen Risiken, verhindert Datenschutzverletzungen und optimiert die Benutzerverwaltung und -berechtigungen.

Sie verbessert zudem die Skalierbarkeit und Flexibilität, sodass jeder Microservice sicher betrieben werden kann, ohne die Systemintegrität zu beeinträchtigen. Durch die Zentralisierung und Standardisierung der Autorisierung kann eine Organisation eine robuste Sicherheit aufrechterhalten und gleichzeitig die agile Entwicklung ihrer Microservices-basierten Anwendungen ermöglichen.

Erfahren Sie mehr über Softwareentwicklung