Entwerfen Sie Modelle für Amazon Verified Permissions - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Entwerfen Sie Modelle für Amazon Verified Permissions

Verwendung eines zentralisierten PDP mit PEPs auf APIs

Das Modell eines zentralisierten Policy-Decision-Punkts (PDP) mit Policy-Enforcement-Punkten (PEPs) auf APIs folgt branchenweit bewährten Verfahren zur Schaffung eines effektiven und einfach zu wartenden Systems für die API-Zugriffskontrolle und -autorisierung. Dieser Ansatz unterstützt mehrere wichtige Prinzipien:

  • Autorisierung und API-Zugriffskontrolle werden an mehreren Stellen in der Anwendung angewendet.

  • Die Autorisierungslogik ist unabhängig von der Anwendung.

  • Entscheidungen zur Zugriffskontrolle sind zentralisiert.

Verwendung eines zentralisierten PDP mit PEPs auf APIs

Anwendungsablauf (im Diagramm mit blau nummerierten Callouts dargestellt):

  1. Ein authentifizierter Benutzer mit einem JSON Web Token (JWT) generiert eine HTTP-Anfrage an Amazon. CloudFront

  2. CloudFront leitet die Anfrage an Amazon API Gateway weiter, das als CloudFront Ursprung konfiguriert ist.

  3. Ein benutzerdefinierter API Gateway Gateway-Authorizer wird aufgerufen, um das JWT zu verifizieren.

  4. Microservices antworten auf die Anfrage.

Ablauf der Autorisierung und API-Zugriffskontrolle (im Diagramm mit roten nummerierten Callouts dargestellt):

  1. Das PEP ruft den Autorisierungsdienst auf und leitet die Anforderungsdaten, einschließlich aller JWTs, weiter.

  2. Der Autorisierungsdienst (PDP), in diesem Fall Verified Permissions, verwendet die Anforderungsdaten als Abfrageeingabe und bewertet sie auf der Grundlage der in der Abfrage angegebenen relevanten Richtlinien.

  3. Die Autorisierungsentscheidung wird an das PEP zurückgesendet und ausgewertet.

Dieses Modell verwendet ein zentralisiertes PDP, um Autorisierungsentscheidungen zu treffen. PEPs werden an verschiedenen Stellen implementiert, um Autorisierungsanfragen an das PDP zu stellen. Das folgende Diagramm zeigt, wie Sie dieses Modell in einer hypothetischen SaaS-Anwendung mit mehreren Mandanten implementieren können.

In dieser Architektur fordern PEPs Autorisierungsentscheidungen an den Service-Endpunkten für Amazon CloudFront und Amazon API Gateway sowie für jeden Microservice an. Die Autorisierungsentscheidung wird vom Autorisierungsdienst Amazon Verified Permissions (PDP) getroffen. Da es sich bei Verified Permissions um einen vollständig verwalteten Service handelt, müssen Sie die zugrunde liegende Infrastruktur nicht verwalten. Sie können mit verifizierten Berechtigungen interagieren, indem Sie eine RESTful-API oder das AWS SDK verwenden.

Sie können diese Architektur auch mit benutzerdefinierten Policy-Engines verwenden. Alle Vorteile, die sich aus verifizierten Berechtigungen ergeben, müssen jedoch durch die Logik ersetzt werden, die von der benutzerdefinierten Policy-Engine bereitgestellt wird.

Ein zentralisiertes PDP mit PEPs auf APIs bietet eine einfache Möglichkeit, ein robustes Autorisierungssystem für APIs zu erstellen. Dies vereinfacht den Autorisierungsprozess und bietet außerdem eine easy-to-use wiederholbare Schnittstelle für Autorisierungsentscheidungen für APIs, Microservices, Backend for Frontend (BFF) -Schichten oder andere Anwendungskomponenten.

Verwenden des Cedar SDK

Amazon Verified Permissions verwendet die Sprache Cedar, um detaillierte Berechtigungen in Ihren benutzerdefinierten Anwendungen zu verwalten. Mit Verified Permissions können Sie Cedar-Richtlinien an einem zentralen Ort speichern, die Vorteile der niedrigen Latenz bei der Verarbeitung im Millisekundenbereich nutzen und Berechtigungen für verschiedene Anwendungen prüfen. Optional können Sie das Cedar SDK auch direkt in Ihre Anwendung integrieren, um Autorisierungsentscheidungen zu treffen, ohne verifizierte Berechtigungen zu verwenden. Diese Option erfordert zusätzliche kundenspezifische Anwendungsentwicklung, um Richtlinien für Ihren Anwendungsfall zu verwalten und zu speichern. Sie kann jedoch eine praktikable Alternative sein, insbesondere in Fällen, in denen der Zugriff auf verifizierte Berechtigungen nur sporadisch oder aufgrund einer inkonsistenten Internetverbindung nicht möglich ist.