Implementierung eines PDP mithilfe von OPA - 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.

Implementierung eines PDP mithilfe von OPA

Der Open Policy Agent (OPA) ist eine Open-Source-Engine für allgemeine Richtlinien. OPA hat viele Anwendungsfälle, aber der für die PDP-Implementierung relevante Anwendungsfall ist die Fähigkeit, die Autorisierungslogik von einer Anwendung zu entkoppeln. Dies wird als Richtlinienentkopplung bezeichnet. OPA ist bei der Implementierung eines PDP aus mehreren Gründen nützlich. Es verwendet eine deklarative Sprache auf hoher Ebene namens Rego, um Richtlinien und Regeln zu entwerfen. Diese Richtlinien und Regeln existieren unabhängig von einer Anwendung und können Autorisierungsentscheidungen ohne anwendungsspezifische Logik treffen. OPA stellt außerdem eine RESTful-API zur Verfügung, um das Abrufen von Autorisierungsentscheidungen einfach und unkompliziert zu gestalten. Um eine Autorisierungsentscheidung zu treffen, fragt eine Anwendung OPA mit JSON-Eingabe ab, und OPA bewertet die Eingabe anhand der angegebenen Richtlinien, um eine Zugriffsentscheidung in JSON zurückzugeben. OPA ist auch in der Lage, externe Daten zu importieren, die für eine Autorisierungsentscheidung relevant sein könnten.

Verwenden von OPA zur Implementierung eines PDP

OPA bietet mehrere Vorteile gegenüber benutzerdefinierten Policy-Engines:

  • OPA und seine Richtlinienbewertung mit Rego bieten eine flexible, vorgefertigte Richtlinien-Engine, die nur das Einfügen von Richtlinien und allen Daten erfordert, die für Autorisierungsentscheidungen erforderlich sind. Diese Logik zur Richtlinienbewertung müsste in einer benutzerdefinierten Policy-Engine-Lösung neu erstellt werden.

  • OPA vereinfacht die Autorisierungslogik, indem Richtlinien in einer deklarativen Sprache geschrieben werden. Sie können diese Richtlinien und Regeln unabhängig von jedem Anwendungscode ändern und verwalten, ohne Kenntnisse in der Anwendungsentwicklung zu haben.

  • OPA stellt eine RESTful-API zur Verfügung, die die Integration mit Points zur Durchsetzung von Richtlinien (PEPs) vereinfacht.

  • OPA bietet integrierte Unterstützung für die Validierung und Dekodierung von JSON-Web-Tokens (JWTs).

  • OPA ist ein anerkannter Autorisierungsstandard, was bedeutet, dass es zahlreiche Dokumentationen und Beispiele gibt, falls Sie Hilfe oder Nachforschungen zur Lösung eines bestimmten Problems benötigen.

  • Durch die Einführung eines Autorisierungsstandards wie OPA können in Rego geschriebene Richtlinien von allen Teams gemeinsam genutzt werden, unabhängig von der Programmiersprache, die von der jeweiligen Teamanwendung verwendet wird.

Es gibt zwei Dinge, die OPA nicht automatisch bereitstellt:

  • OPA verfügt nicht über eine robuste Kontrollebene für die Aktualisierung und Verwaltung von Richtlinien. OPA bietet einige grundlegende Muster für die Implementierung von Richtlinienaktualisierungen, Überwachung und Protokollaggregation, indem eine Verwaltungs-API verfügbar gemacht wird. Die Integration mit dieser API muss jedoch vom OPA-Benutzer vorgenommen werden. Als bewährte Methode sollten Sie eine CI/CD-Pipeline (Continuous Integration and Continuous Deployment) verwenden, um Richtlinienversionen zu verwalten, zu ändern und nachzuverfolgen und Richtlinien in OPA zu verwalten.

  • OPA kann standardmäßig keine Daten aus externen Quellen abrufen. Eine externe Datenquelle für eine Autorisierungsentscheidung könnte eine Datenbank sein, die Benutzerattribute enthält. Es gibt eine gewisse Flexibilität bei der Bereitstellung externer Daten für OPA — sie können vorab lokal zwischengespeichert oder dynamisch von einer API abgerufen werden, wenn eine Autorisierungsentscheidung angefordert wird —, aber OPA kann diese Informationen nicht in Ihrem Namen abrufen.