From 5496334112871ecdea6bbee1ceb75f2d97bd578b Mon Sep 17 00:00:00 2001 From: Tim Hinrichs Date: Wed, 27 Nov 2019 22:00:25 -0600 Subject: [PATCH] docs: Add integration content from Kubecon San Diego Signed-off-by: Tim Hinrichs --- docs/content/kubernetes-introduction.md | 2 +- docs/website/data/integrations.yaml | 180 +++++++++++++++++- .../jenkins-job-authorization.png | Bin 0 -> 43263 bytes 3 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 docs/website/static/img/logos/integrations/jenkins-job-authorization.png diff --git a/docs/content/kubernetes-introduction.md b/docs/content/kubernetes-introduction.md index bd6df6879a..294c49b32d 100644 --- a/docs/content/kubernetes-introduction.md +++ b/docs/content/kubernetes-introduction.md @@ -34,7 +34,7 @@ Kubernetes clusters for security, cost, and availability reasons. project that provides first-class integration between OPA and Kubernetes. For background information see this [blog post](https://kubernetes.io/blog/2019/08/06/opa-gatekeeper-policy-and-governance-for-kubernetes) -on kubernetes.io. +on kubernetes.io and check out this [Katakoda tutorial](https://katacoda.com/austinheiman/scenarios/open-policy-agent-gatekeeper). OPA Gatekeeper adds the following on top of plain OPA: diff --git a/docs/website/data/integrations.yaml b/docs/website/data/integrations.yaml index 438b30a472..463b0eecba 100644 --- a/docs/website/data/integrations.yaml +++ b/docs/website/data/integrations.yaml @@ -9,6 +9,7 @@ integrations: layer: orchestration tutorials: - https://www.openpolicyagent.org/docs/kubernetes-admission-control.html + - https://katacoda.com/austinheiman/scenarios/open-policy-agent-gatekeeper code: - https://github.com/open-policy-agent/kube-mgmt - https://github.com/open-policy-agent/gatekeeper @@ -45,11 +46,58 @@ integrations: organization: google venue: Kubecon Barcelona 2019 link: https://kccnceu19.sched.com/event/MPiM/intro-open-policy-agent-rita-zhang-microsoft-max-smythe-google + - title: Policy Enabled Kubernetes and CICD + speakers: + - name: Jimmy Ray + organization: capitalone + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=vkvWZuqSk5M + - title: "TripAdvisor: Building a Testing Framework for Integrating OPA into K8s" + speakers: + - name: Luke Massa + organization: tripadvisor + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=X09c1eXvCFM + - title: Enforcing automatic mTLS with Linkerd and OPA Gatekeeper + speakers: + - name: Ivan Sim + organization: buoyant + - name: Rita Zhang + organization: microsoft + venue: Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=gMaGVHnvNfs + - title: Enforcing Service Mesh Structure using OPA Gatekeeper + speakers: + - name: Sandeep Parikh + organization: google + venue: Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=90RHTBinAFU + blogs: - https://medium.com/@sbueringer/kubernetes-authorization-via-open-policy-agent-a9455d9d5ceb - https://medium.com/@jimmy.ray/policy-enabled-kubernetes-with-open-policy-agent-3b612b3f0203 - https://blog.openpolicyagent.org/securing-the-kubernetes-api-with-open-policy-agent-ce93af0552c3 + kubernetes-provisioning: + title: Kubernetes Provisioning + description: Kubernetes automates deployment, scaling, and management of containerized applications. OPA decides which resources need to be created on k8s in response to a namespace being created. + software: + - kubernetes + labels: + category: containers + layer: orchestration + inventors: + - goldmansachs + videos: + - title: Kubernetes Policy Enforcement Using OPA at Goldman Sachs + speakers: + - name: Miguel Uzcategui + organization: goldmansachs + - name: Tim Hinrichs + organization: styra + venue: Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=lYHr_UaHsYQ&list=PLj6h78yzYM2NDs-iu8WU5fMxINxHXlien&index=140&t=0s + envoy-authorization: title: Container Network Authorization with Envoy description: Envoy is a networking abstraction for cloud-native applications. OPA hooks into Envoy’s external authorization filter to provide fine-grained, context-aware authorization for network or HTTP requests. @@ -68,6 +116,50 @@ integrations: - styra blogs: - https://blog.openpolicyagent.org/envoy-external-authorization-with-opa-578213ed567c + videos: + - title: "OPA at Scale: How Pinterest Manages Policy Distribution" + speakers: + - name: Will Fu + organization: pinterest + - name: Jeremy Krach + organization: pinterest + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=LhgxFICWsA8 + - title: "Deploying Open Policy Agent at Atlassian" + speakers: + - name: Chris Stivers + organization: atlassian + - name: Nicholas Higgins + organization: atlassian + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=nvRTO8xjmrg + - title: How Yelp Moved Security From the App to the Mesh with Envoy and OPA + speakers: + - name: Daniel Popescu + organization: yelp + - name: Ben Plotnick + organization: yelp + venue: Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=Z6aN3Smt-9M + + custom-library-microservice-authorization: + title: Library-based Microservice Authorization + description: Microservice authorization can be enforced through a network proxy like Envoy/Istio/Linkerd/... + or can be enforced by modifying the microservice code to use a common library. In both cases + OPA makes the authorization decision that the network proxy or the library enforce. + labels: + category: servicemesh + layer: library + videos: + - title: How Netflix is Solving Authorization Across Their Cloud + speakers: + - name: Manish Mehta + organization: netflix + - name: Torin Sandall + organization: styra + venue: Kubecon Austin 2017 + link: https://www.youtube.com/watch?v=R6tUNpRpdnY + istio-authorization-edge: title: Container Network Authorization with Istio (at the Edge) @@ -165,6 +257,16 @@ integrations: - ticketmaster - styra - bisnode + videos: + - title: "OPA at Scale: How Pinterest Manages Policy Distribution" + speakers: + - name: Will Fu + organization: pinterest + - name: Jeremy Krach + organization: pinterest + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=LhgxFICWsA8 + ceph: title: Ceph Object Storage Authorization @@ -281,6 +383,26 @@ integrations: inventors: - armory + jenkins-job-authorization: + title: Jenkins Job Trigger Policy Enforcement + description: Jenkins automates software development processes. OPA lets you control which people and which machines can run which Jenkins jobs. + labels: + layer: cicd + software: + - jenkins + inventors: + - pinterest + videos: + - title: "OPA at Scale: How Pinterest Manages Policy Distribution" + speakers: + - name: Will Fu + organization: pinterest + - name: Jeremy Krach + organization: pinterest + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=LhgxFICWsA8 + + elasticsearch-datafiltering: title: Elasticsearch Data Filtering description: Elasticsearch is a distributed, open source search and analytics engine. This OPA integration lets an elasticsearch client construct queries so that the data returned by elasticsearch obeys OPA-defined policies. @@ -403,6 +525,13 @@ integrations: - TOML - Dockerfile - HCL2 + videos: + - title: "Applying Policy Throughout the Application Lifecycle with Open Policy Agent" + speakers: + - name: Gareth Rushgrove + organization: snyk + venue: Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=cXfsaE6RKfc boomerang-bosun: title: Boomerang Bosun Policy Gating @@ -467,6 +596,24 @@ integrations: inventors: - bisnode + custom-application: + title: Custom Application Authorization + description: | + Application require authorization decisions made at the API gateway, frontend, backend, and database. + OPA helps developers decouple authorization logic from application code, define a custom authorization model + that enables end-users to control tenant permissions, and enforce that policy across the different components of the + application (gateway, frontend, backend, database). + tutorials: + - https://github.com/chef/automate/tree/master/components/authz-service#authz-with-opa + videos: + - title: "OPA in Practice: From Angular to OPA in Chef Automate" + speakers: + - name: Michael Sorens + organization: chef + venue: OPA Summit at Kubecon San Diego 2019 + link: https://www.youtube.com/watch?v=jrrW855xL3s + + organizations: styra: name: Styra @@ -522,6 +669,33 @@ organizations: bisnode: name: Bisnode link: https://www.bisnode.com + goldmansachs: + name: Goldman Sachs + link: https://www.goldmansachs.com/ + pinterest: + name: Pinterest + link: https://www.pinterest.com/ + atlassian: + name: Atlassian + link: https://www.atlassian.com/ + tripadvisor: + name: TripAdvisor + link: https://www.tripadvisor.com/ + chef: + name: Chef + link: https://www.chef.io/ + buoyant: + name: Buoyant + link: https://buoyant.io/ + netflix: + name: Netflix + link: https://www.netflix.com/ + capitalone: + name: CapitalOne + link: https://www.capitalone.com/ + yelp: + name: Yelp + link: https://www.yelp.com/ software: kubernetes: @@ -601,4 +775,8 @@ software: link: https://www.php.net/ gradle: name: Gradle - link: https://gradle.org/ \ No newline at end of file + link: https://gradle.org/ + jenkins: + name: Jenkins + link: https://jenkins.io/ + diff --git a/docs/website/static/img/logos/integrations/jenkins-job-authorization.png b/docs/website/static/img/logos/integrations/jenkins-job-authorization.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf9cc8eb9fcb74b3e7eac9bff032dd742f63bc1 GIT binary patch literal 43263 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