SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
qaware.de
Eine Einführung in den
Open Policy Agent (OPA)
Andreas Zitzelsberger
andreas.zitzelsberger@qaware.de
Klassifizierung: Awesome
Eine Einführung in den Open Policy Agent (OPA)
Ihr braucht einen Laptop
2
https://t.ly/zWsh
QAware
Vorbrenner: Was ist eine Policy?
■ Eine Policy ist eine Funktion der Form f:Input -> Output
– Ohne Nebeneffekte
– Input / Output können strukturierte Daten sein.
■ Sinn: Eine Policy definiert Regelwissen formal.
■ Beispiele:
– Nur authentifizierte Benutzer dürfen den Dienst benutzen.
– Nutzer der Gruppe "Premium" können 8 requests/min stellen, andere nur 2.
– Zwischen 18:00 und 6:00 dürfen nur Mitglieder der "on-call"- Gruppe auf das System zugreifen
■ Policy ≠ Business Rule
■ Business Rule = Policy + Wirkung
3
QAware
Welche Probleme wollen wir lösen?
■ Einheitliche Policies,
– Die auf eine Art und Weise definiert
– und verwaltet werden.
■ Entkopplung: Policy-Entscheidung und Durchsetzung trennen. Policies raus aus den Anwendungen holen
■ Robuste und sichere Konfigurationen
– für Continuous Deployment
– und alles andere
■ Reviews automatisieren
■ Regeln für Regel-basierte Autorisierung (RuBAC) definieren
4
QAware
Was ist der Open Policy Agent?
5
■ Generische Policy-Engine
■ FOSS, Apache-2.0 Lizenz, CNCF Projekt
■ Wesentlicher Backer: Styra, baut Produkte auf OPA
auf (Styra DAS)
■ Ein Executable
■ Gebaut in Go
■ Betrieb zentral oder verteilt
■ Eigene Policy-Sprache "Rego"
■ Reichhaltige Standard Library
■ Eingebautes Testing, Benchmarking
■ Direkte Unterstützung von JWT, OAuth, OpenID
Connect
■ Schnittstellen zur Verwaltung
■ Breites Ökosystem
Quelle: OPA Dokumentation
QAware
Was bietet OPA zur Verwaltung?
■ OPA bietet eine Satz an Verwaltungs-Schnittstellen
■ Der OPA Agent ist immer der nutzende Part
■ Es gibt keine fertige Control Plane
■ Schnittstellen:
– Policy distribution (Bundles)
– Decision telemetry (Decision Logs)
– Agent telemetry (Status)
– Dynamic agent configuration (Discovery)
6
Quelle: OPA Dokumentation
QAware
Wie schaut das Ökosystem asus?
7
Beispiele
■ conftest - Standalone Validierung strukturierter
Daten
■ gatekeeper - Kubernetes Admission Control
■ Envoy, Istio - Proxy & Service Mesh Validierung
■ Spring Security - Autorisierung in der Anwendung
■ Pulumi CrossGuard - Cross-Plane
Infrastruktur-Policies
■ Kafka - Autorisierung, Message Filtering
https://www.openpolicyagent.org/docs/latest/ecosystem/
QAware
qaware.de
Hands-On:
Kubernetes Admission Control mit
OPA gatekeeper und der gator CLI
Alex Krause
alex.krause@qaware.de
Klassifizierung: Awesome
Gatekeeper
9
QAware
Gatekeeper
10
QAware
Aufgabe:
Alle Resourcen müssen Tags haben!
11
https://github.com/neiser/conftest-terraform-demo/tree/demo/01-tags
Tip für die erste Zeile:
resource = input.resource[type][name]
QAware
qaware.de
Hands-On:
Conftest mit Terraform
Alex Krause
alex.krause@qaware.de
Klassifizierung: Awesome
Hands-On Conftest mit Terraform
13
■ Terraform configuration kann mit
conftest geprüft werden
■ conftest überführt *.tf Datei als
strukturierte Daten in ein “input” Objekt
gegen das Rego Policies wirken
■ conftest bietet Tests für Policies an
(auch in Rego geschrieben)
https://www.conftest.dev/
QAware
Aufgabe:
Alle Resourcen müssen Tags haben!
14
https://github.com/neiser/conftest-terraform-demo/tree/demo/01-tags
Tip für die erste Zeile:
resource = input.resource[type][name]
QAware
qaware.de
Hands-On:
OPA in Spring Boot
Andreas Zitzelsberger
andreas.zitzelsberger@qaware.de
Klassifizierung: Awesome
Wir sichern einen Microservice mit OPA
16
QAware
Wir legen eine OAuth-Application auf GitHub an
17
1. Gehe zu
“Settings”
-> “Developer Settings”
-> “OAuth Apps”
2. “New OAuth App”, Ausfüllen, “Register application”
a. Homepage URL:
http://localhost:8080
b. Authorization callback URL:
http://localhost:8080/_renarde/security/github-success
3. “Generate a new client secret”
4. Secret und Client Id in .env-File kopieren
Siehe auch:
https://quarkus.io/guides/security-openid-connect-providers
QAware

Weitere ähnliche Inhalte

Ähnlich wie Policy Driven Microservices mit Open Policy Agent

Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...QAware GmbH
 
OSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol Ülükmen
OSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol ÜlükmenOSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol Ülükmen
OSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol ÜlükmenNETWAYS
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenFotiosKaramitsos
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsmatfsw
 
Domino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.HabermuellerDomino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.HabermuellerChristian Habermueller
 
IBM Lotus Notes Domino Security mit ITIL | C.Habermueller
IBM Lotus Notes Domino Security mit ITIL | C.HabermuellerIBM Lotus Notes Domino Security mit ITIL | C.Habermueller
IBM Lotus Notes Domino Security mit ITIL | C.HabermuellerChristian Habermueller
 
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...QAware GmbH
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsFabian Niesen
 
Industrie 4.0 Checkliste
Industrie 4.0 ChecklisteIndustrie 4.0 Checkliste
Industrie 4.0 ChecklisteSrenRose1
 
Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)CollabNet
 
ApplicationPro Flyer deutsch
ApplicationPro Flyer deutschApplicationPro Flyer deutsch
ApplicationPro Flyer deutschcynapspro GmbH
 
Wie bekommen Sie den Asset Lifecycle wirklich rund?
 Wie bekommen Sie den Asset Lifecycle wirklich rund? Wie bekommen Sie den Asset Lifecycle wirklich rund?
Wie bekommen Sie den Asset Lifecycle wirklich rund?MAXXYS AG
 
CCD 2013: JIRA goes i18n
CCD 2013: JIRA goes i18nCCD 2013: JIRA goes i18n
CCD 2013: JIRA goes i18nCommunardo GmbH
 
Kritische app performance erfolgreich optimieren mit Bison
Kritische app performance erfolgreich optimieren mit BisonKritische app performance erfolgreich optimieren mit Bison
Kritische app performance erfolgreich optimieren mit BisonDynatrace
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschcynapspro GmbH
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschcynapspro GmbH
 

Ähnlich wie Policy Driven Microservices mit Open Policy Agent (20)

Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
 
OSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol Ülükmen
OSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol ÜlükmenOSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol Ülükmen
OSMC 2012 | Monitoring der IT-Infrastruktur mit opsi by Erol Ülükmen
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 
Lizenzmanagement in der Praxis
Lizenzmanagement in der PraxisLizenzmanagement in der Praxis
Lizenzmanagement in der Praxis
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
Domino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.HabermuellerDomino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.Habermueller
 
IBM Lotus Notes Domino Security mit ITIL | C.Habermueller
IBM Lotus Notes Domino Security mit ITIL | C.HabermuellerIBM Lotus Notes Domino Security mit ITIL | C.Habermueller
IBM Lotus Notes Domino Security mit ITIL | C.Habermueller
 
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
Anwendungsübergreifende Authentifizierung: Integrations-Pattern für OpenID Co...
 
QUANTO Solutions Q-SEC
QUANTO Solutions Q-SECQUANTO Solutions Q-SEC
QUANTO Solutions Q-SEC
 
QUANTO Solutions Q-GO
QUANTO Solutions Q-GOQUANTO Solutions Q-GO
QUANTO Solutions Q-GO
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
 
Industrie 4.0 Checkliste
Industrie 4.0 ChecklisteIndustrie 4.0 Checkliste
Industrie 4.0 Checkliste
 
Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)
 
ApplicationPro Flyer deutsch
ApplicationPro Flyer deutschApplicationPro Flyer deutsch
ApplicationPro Flyer deutsch
 
Wie bekommen Sie den Asset Lifecycle wirklich rund?
 Wie bekommen Sie den Asset Lifecycle wirklich rund? Wie bekommen Sie den Asset Lifecycle wirklich rund?
Wie bekommen Sie den Asset Lifecycle wirklich rund?
 
Kirchner + Robrecht-White Paper "IT-Systeme erfolgreich auswählen"
Kirchner + Robrecht-White Paper "IT-Systeme erfolgreich auswählen"Kirchner + Robrecht-White Paper "IT-Systeme erfolgreich auswählen"
Kirchner + Robrecht-White Paper "IT-Systeme erfolgreich auswählen"
 
CCD 2013: JIRA goes i18n
CCD 2013: JIRA goes i18nCCD 2013: JIRA goes i18n
CCD 2013: JIRA goes i18n
 
Kritische app performance erfolgreich optimieren mit Bison
Kritische app performance erfolgreich optimieren mit BisonKritische app performance erfolgreich optimieren mit Bison
Kritische app performance erfolgreich optimieren mit Bison
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutsch
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutsch
 

Mehr von QAware GmbH

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdfQAware GmbH
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...QAware GmbH
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzQAware GmbH
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!QAware GmbH
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightQAware GmbH
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAsQAware GmbH
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo QAware GmbH
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...QAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.QAware GmbH
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPQAware GmbH
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.QAware GmbH
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s AutoscalingQAware GmbH
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.QAware GmbH
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysQAware GmbH
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster QAware GmbH
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration TestsQAware GmbH
 

Mehr von QAware GmbH (20)

50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf50 Shades of K8s Autoscaling #JavaLand24.pdf
50 Shades of K8s Autoscaling #JavaLand24.pdf
 
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
Make Agile Great - PM-Erfahrungen aus zwei virtuellen internationalen SAFe-Pr...
 
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN MainzFully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
Fully-managed Cloud-native Databases: The path to indefinite scale @ CNN Mainz
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!"Mixed" Scrum-Teams – Die richtige Mischung macht's!
"Mixed" Scrum-Teams – Die richtige Mischung macht's!
 
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit PlaywrightDer Tod der Testpyramide? – Frontend-Testing mit Playwright
Der Tod der Testpyramide? – Frontend-Testing mit Playwright
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 

Policy Driven Microservices mit Open Policy Agent

  • 1. qaware.de Eine Einführung in den Open Policy Agent (OPA) Andreas Zitzelsberger andreas.zitzelsberger@qaware.de Klassifizierung: Awesome
  • 2. Eine Einführung in den Open Policy Agent (OPA) Ihr braucht einen Laptop 2 https://t.ly/zWsh QAware
  • 3. Vorbrenner: Was ist eine Policy? ■ Eine Policy ist eine Funktion der Form f:Input -> Output – Ohne Nebeneffekte – Input / Output können strukturierte Daten sein. ■ Sinn: Eine Policy definiert Regelwissen formal. ■ Beispiele: – Nur authentifizierte Benutzer dürfen den Dienst benutzen. – Nutzer der Gruppe "Premium" können 8 requests/min stellen, andere nur 2. – Zwischen 18:00 und 6:00 dürfen nur Mitglieder der "on-call"- Gruppe auf das System zugreifen ■ Policy ≠ Business Rule ■ Business Rule = Policy + Wirkung 3 QAware
  • 4. Welche Probleme wollen wir lösen? ■ Einheitliche Policies, – Die auf eine Art und Weise definiert – und verwaltet werden. ■ Entkopplung: Policy-Entscheidung und Durchsetzung trennen. Policies raus aus den Anwendungen holen ■ Robuste und sichere Konfigurationen – für Continuous Deployment – und alles andere ■ Reviews automatisieren ■ Regeln für Regel-basierte Autorisierung (RuBAC) definieren 4 QAware
  • 5. Was ist der Open Policy Agent? 5 ■ Generische Policy-Engine ■ FOSS, Apache-2.0 Lizenz, CNCF Projekt ■ Wesentlicher Backer: Styra, baut Produkte auf OPA auf (Styra DAS) ■ Ein Executable ■ Gebaut in Go ■ Betrieb zentral oder verteilt ■ Eigene Policy-Sprache "Rego" ■ Reichhaltige Standard Library ■ Eingebautes Testing, Benchmarking ■ Direkte Unterstützung von JWT, OAuth, OpenID Connect ■ Schnittstellen zur Verwaltung ■ Breites Ökosystem Quelle: OPA Dokumentation QAware
  • 6. Was bietet OPA zur Verwaltung? ■ OPA bietet eine Satz an Verwaltungs-Schnittstellen ■ Der OPA Agent ist immer der nutzende Part ■ Es gibt keine fertige Control Plane ■ Schnittstellen: – Policy distribution (Bundles) – Decision telemetry (Decision Logs) – Agent telemetry (Status) – Dynamic agent configuration (Discovery) 6 Quelle: OPA Dokumentation QAware
  • 7. Wie schaut das Ökosystem asus? 7 Beispiele ■ conftest - Standalone Validierung strukturierter Daten ■ gatekeeper - Kubernetes Admission Control ■ Envoy, Istio - Proxy & Service Mesh Validierung ■ Spring Security - Autorisierung in der Anwendung ■ Pulumi CrossGuard - Cross-Plane Infrastruktur-Policies ■ Kafka - Autorisierung, Message Filtering https://www.openpolicyagent.org/docs/latest/ecosystem/ QAware
  • 8. qaware.de Hands-On: Kubernetes Admission Control mit OPA gatekeeper und der gator CLI Alex Krause alex.krause@qaware.de Klassifizierung: Awesome
  • 11. Aufgabe: Alle Resourcen müssen Tags haben! 11 https://github.com/neiser/conftest-terraform-demo/tree/demo/01-tags Tip für die erste Zeile: resource = input.resource[type][name] QAware
  • 12. qaware.de Hands-On: Conftest mit Terraform Alex Krause alex.krause@qaware.de Klassifizierung: Awesome
  • 13. Hands-On Conftest mit Terraform 13 ■ Terraform configuration kann mit conftest geprüft werden ■ conftest überführt *.tf Datei als strukturierte Daten in ein “input” Objekt gegen das Rego Policies wirken ■ conftest bietet Tests für Policies an (auch in Rego geschrieben) https://www.conftest.dev/ QAware
  • 14. Aufgabe: Alle Resourcen müssen Tags haben! 14 https://github.com/neiser/conftest-terraform-demo/tree/demo/01-tags Tip für die erste Zeile: resource = input.resource[type][name] QAware
  • 15. qaware.de Hands-On: OPA in Spring Boot Andreas Zitzelsberger andreas.zitzelsberger@qaware.de Klassifizierung: Awesome
  • 16. Wir sichern einen Microservice mit OPA 16 QAware
  • 17. Wir legen eine OAuth-Application auf GitHub an 17 1. Gehe zu “Settings” -> “Developer Settings” -> “OAuth Apps” 2. “New OAuth App”, Ausfüllen, “Register application” a. Homepage URL: http://localhost:8080 b. Authorization callback URL: http://localhost:8080/_renarde/security/github-success 3. “Generate a new client secret” 4. Secret und Client Id in .env-File kopieren Siehe auch: https://quarkus.io/guides/security-openid-connect-providers QAware