SlideShare una empresa de Scribd logo
1 de 63
Netflix Open Source
Netflix Open Source - @NetflixOSS
Season 5, Episode 1
Agenda
6:00-7:00 Registration, Food/Drink, Networking
7:00-8:00 Talks:
• RepoKid - Travis McPeak and Patrick Kelley, Netflix
• BetterTLS - Ian Haken, Netflix
• Authorization at Netflix - Manish Mehta, Netflix
• Open Policy Agent - Torin Sandall, OPA project
• PADME - Kamil Pawlowski, PADME project
8:00-9:00 Demos, Networking
Headline
Rightsizing Permissions @Scale
Patrick Kelley
9-27-2017
The Antagonist
Set Builder: (Me)
● Name: Patrick Kelley @monkeysecurity
● ~ 5 years @ Netflix
● Decent trampoline jumper
● OSS Fan
○ SecurityMonkey
○ CloudAux
○ PolicyUniverse
○ Aardvark
○ Repokid
○ SWAG
You are Entitled to Nothing
Permissions granted to new apps:
● Permissions are automatically granted to applications on deploy.
● Apps start with a small base-set of permissions.
● Manual interaction with the security team is limited.
Eventually:
● Default permission set is empty. We peek inside your AMI to build policies.
● Library owners define required permissions.*
Remove Unused
PermissionsRepokid gathers data from multiple plugins and
determines which permissions may be removed.
After sending notifications, repokid will “repo”
unused permissions. If something goes wrong,
repokid allows for easy rollback.
https://github.com/Netflix/repokid
https://github.com/Netflix-Skunkworks/aardvark
AWS Policy Anatomy
{
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::test-bucket-*",
"Effect": "Allow"
}
Service Access Advisor
Event CloudTrail
Resource S3 Access Logs
Thank You !
Netflix Open Source - @NetflixOSS
BetterTLS
Netflix Open Source - @NetflixOSS
A test suite for HTTPS clients implementing verification of
the Name Constraints certificate extension
How Does Web PKI Work?
google.co
mVerisign
172.317.5.110
Symantec
Digicert
Verisign
google.com
On Trusting Your Truststore
nsa.govWoSign
China
23.210.7.329
Verisign
Digicert
WoSign
China
nsa.gov
Another Use Case
password
reset
.acme
.internal
ACME
Root CA
74.304.23.58
passwordreset.acme.internal
ACME
Root CA
Responsibility, Risk, and Transparency
bankof
america
.com
ACME
Root CA
17.59.228.350
ACME
Root CA
bankofamerica.com
We want to apply authorization
rules to CAs.
Is ACME Root CA authorized to
create a certificate for
bankofamerica.com?
The Name Constraints X509 Extension
● RFC 5280 (May 2008)
● Applies only to CA certificates. Specifies:
○ Type of name to which it applies (DNS, IP, etc)
○ Subtree (DNS prefix or IP range)
○ Whitelisted or blacklisted
● Constraints on CA hierarchy can be nested!
Implementations should “intersect” the constraints.
○ The ACME Root CA can be whitelisted for *.internal
○ The ACME Test Environment CA can be blacklisted
for *.prod.internal
How Name Constraints Works
ACME Root
CA
ACME
Internal CA
NC: *.internal
passwordreset
.acme.internal
✓
ACME Root
CA
ACME
Internal CA
NC: *.internal
bankofamerica
.com
×
The Name Constraints extension is
only useful if clients implement it.
...correctly.
The Name Constraints extension is
only useful if clients implement it...
Let’s Test! Thoroughly!
● Put the server name in both CN and SAN
● Use both DNS names and IP names
○ Use both valid and invalid names
● Use both NC whitelisting and blacklisting
○ Use both passing and non-passing
whitelists/blacklists
● Mix and match all of these
○ Computers are really good at brute forcing all
combinations of things
● Let’s contact vendors about any issues we find
● And let’s make it public!
Introducing BetterTLS.com
Making TLS Better
● Chrome now has 100% pass on Windows and Linux
○ Chrome on OSX still has some blacklist failures
because of unfixed bugs in Apple’s proprietary TLS
implementation. :(
● Go found a bug in their NC verification
○ They’ve fixed it and included a bettertls certificate in
their own test suite!
● Java has fixed bugs in their NC verification
○ Release including the fix is pending
What Should I Do?
● If you use TLS in your project, consider utilizing the
bettertls.com test suite.
● Contribute!
○ Help us extend BetterTLS with other (e.g. more
specific) Name Constraints tests
○ Submit additional client test results
○ Invent another TLS extension suite (HPKP, HSTS, …)
● If you manage any sort of CA, use name constraints to
reduce risk to your users, to reduce your own liability, and
to increase transparency!
Thank You !
Netflix Open Source - @NetflixOSS
Authorization at Netflix
Netflix Open Source - @NetflixOSS
Netflix’s architecture for implementing
Authorization at scale
Background - Definitions
Transfer $1000 from Account X to Account Y
Me My Bank
1. Verify the Identity of the Requester (Authentication or AuthN)
2. Verify that the Requestor is authorized to perform
the requested operation (Authorization or AuthZ)
These 2 steps do not need to be tied together !!
Background – Netflix Architecture
AuthZ Problem
A way to define and enforce rules that read
Identity I
can/cannot perform
Operation O
on
Resource R
For ALL combinations of I, O, and R in the ecosystem.
Design Considerations
● Resource types
● Identity types
● Underlying Protocols
● Implementation Languages
● Latency
● Flexibility of Rules
● Company Culture
● Capture Intent
Result
DistributorDistributorDistributor
AuthZ Agent
App
Code
S
S
H
Policy
Portal
App CodeAuthZ Agent
DistributorDistributorAggregator
Policy DB
Other Data
Sources
Service A
Service B
Zooming In
AuthZ Agent
API Stager
Open Policy Agent Engine
Updater
Periodic updates on policies
and associated data
Did it work?
Resource types REST, SSH, Keys, Kafka Topics
Identity types VM/Container Services, Batch Jobs, FTEs, Contractors
Underlying Protocols HTTP, gRPC, Kafka Protocol
Implementation Languages Java, Node JS, Ruby, Python
Latency < 0.5 ms for basic policies
Flexibility of Rules OPA Policy Engine
Company Culture Policy Portal
Capture Intent Policy Portal UI hides Policy text for most use cases
Take Away
● AuthZ is a fundamental security problem
● Seek comprehensive solution for better Control and Visibility
● Get there faster with Open Source Tools (e.g. OPA)
● Get involved in communities (e.g. PADME)
Thank You !
Netflix Open Source - @NetflixOSS
Open Policy Agent
Netflix Open Source - @NetflixOSS
An open source, general-purpose policy engine
www.openpolicyagent.org
Policy
Why it’s important
The Policy Problem
ratings
details
commentslanding_page
master
nodes nodes
instance-976
elb-east
bucket-acme
lambda-xyz
keypair-foo
Application Platform Infrastructure
The Policy Problem
ratings
details
commentslanding_page
master
nodes nodes
instance-976
elb-east
bucket-acme
lambda-xyz
keypair-foo
Can user X do operation Y
on resource Z?
Application Platform Infrastructure
The Policy Problem
ratings
details
commentslanding_page
master
nodes nodes
instance-976
elb-east
bucket-acme
lambda-xyz
keypair-foo
Which cluster should this
workload be deployed on?
Can user X do operation Y
on resource Z?
Application Platform Infrastructure
The Policy Problem
ratings
details
commentslanding_page
master
nodes nodes
instance-976
elb-east
bucket-acme
lambda-xyz
keypair-foo
Which cluster should this
workload be deployed on?
Which resources are not
tagged correctly?
Can user X do operation Y
on resource Z?
Application Platform Infrastructure
Writing Policy Is Hard!
http.body: null
http.method: GET
http.path:
- salary
- bob
http.query_params: {}
protocol.scheme: https
service.source:
ipv4: 10.0.0.128
namespace: production
port: 32757
service: landing_page
service.target:
ip: 10.0.1.95
namespace: production
port: 8080
service: details
ingress.user: alice
kind: Pod
metadata:
labels:
app: nginx
name: nginx-1493591563-bvl8q
namespace: production
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
securityContext:
privileged: true
nodeName: minikube
status:
containerStatuses:
- name: nginx
ready: true
restartCount: 0
hostIP: 192.168.99.100
phase: Running
podIP: 172.17.0.4
startTime: 2017-08-01T06:34:13Z
aws_autoscaling_group.lamb:
availability_zones#: '1'
availability_zones.3205: us-west-1a
desired_capacity: '4'
destroy: false
health_check_grace_period: '300'
launch_configuration: kitten
wait_for_capacity_timeout: 10m
aws_instance.puppy:
ami: ami-09b4b74c
instance_type: t2.micro
source_dest_check: 'true'
aws_launch_configuration.kitten:
associate_public_ip_addr: 'false'
destroy: false
image_id: ami-09b4b74c
instance_type: t2.micro
name: kitten
Application Platform Infrastructure
Infrastructure
Writing Policy Is Hard!
http.body: null
http.method: GET
http.path:
- salary
- bob
http.query_params: {}
protocol.scheme: https
service.source:
ipv4: 10.0.0.128
namespace: production
port: 32757
service: landing_page
service.target:
ip: 10.0.1.95
namespace: production
port: 8080
service: details
ingress.user: alice
kind: Pod
metadata:
labels:
app: nginx
name: nginx-1493591563-bvl8q
namespace: production
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
securityContext:
privileged: true
nodeName: minikube
status:
containerStatuses:
- name: nginx
ready: true
restartCount: 0
hostIP: 192.168.99.100
phase: Running
podIP: 172.17.0.4
startTime: 2017-08-01T06:34:13Z
aws_autoscaling_group.lamb:
availability_zones#: '1'
availability_zones.3205: us-west-1a
desired_capacity: '4'
destroy: false
health_check_grace_period: '300'
launch_configuration: kitten
wait_for_capacity_timeout: 10m
aws_instance.puppy:
ami: ami-09b4b74c
instance_type: t2.micro
source_dest_check: 'true'
aws_launch_configuration.kitten:
associate_public_ip_addr: 'false'
destroy: false
image_id: ami-09b4b74c
instance_type: t2.micro
name: kitten
Context Dependent
Application Platform
Infrastructure
Writing Policy Is Hard!
http.body: null
http.method: GET
http.path:
- salary
- bob
http.query_params: {}
protocol.scheme: https
service.source:
ipv4: 10.0.0.128
namespace: production
port: 32757
service: landing_page
service.target:
ip: 10.0.1.95
namespace: production
port: 8080
service: details
ingress.user: alice
kind: Pod
metadata:
labels:
app: nginx
name: nginx-1493591563-bvl8q
namespace: production
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
securityContext:
privileged: true
nodeName: minikube
status:
containerStatuses:
- name: nginx
ready: true
restartCount: 0
hostIP: 192.168.99.100
phase: Running
podIP: 172.17.0.4
startTime: 2017-08-01T06:34:13Z
aws_autoscaling_group.lamb:
availability_zones#: '1'
availability_zones.3205: us-west-1a
desired_capacity: '4'
destroy: false
health_check_grace_period: '300'
launch_configuration: kitten
wait_for_capacity_timeout: 10m
aws_instance.puppy:
ami: ami-09b4b74c
instance_type: t2.micro
source_dest_check: 'true'
aws_launch_configuration.kitten:
associate_public_ip_addr: 'false'
destroy: false
image_id: ami-09b4b74c
instance_type: t2.micro
name: kitten
Context Dependent
Complex Data
Application Platform
Writing Policy Is Hard!
http.body: null
http.method: GET
http.path:
- salary
- bob
http.query_params: {}
protocol.scheme: https
service.source:
ipv4: 10.0.0.128
namespace: production
port: 32757
service: landing_page
service.target:
ip: 10.0.1.95
namespace: production
port: 8080
service: details
ingress.user: alice
kind: Pod
metadata:
labels:
app: nginx
name: nginx-1493591563-bvl8q
namespace: production
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
securityContext:
privileged: true
nodeName: minikube
status:
containerStatuses:
- name: nginx
ready: true
restartCount: 0
hostIP: 192.168.99.100
phase: Running
podIP: 172.17.0.4
startTime: 2017-08-01T06:34:13Z
aws_autoscaling_group.lamb:
availability_zones#: '1'
availability_zones.3205: us-west-1a
desired_capacity: '4'
destroy: false
health_check_grace_period: '300'
launch_configuration: kitten
wait_for_capacity_timeout: 10m
aws_instance.puppy:
ami: ami-09b4b74c
instance_type: t2.micro
source_dest_check: 'true'
aws_launch_configuration.kitten:
associate_public_ip_addr: 'false'
destroy: false
image_id: ami-09b4b74c
instance_type: t2.micro
name: kitten
Context Dependent
Complex Data
Search and
Aggregation
Application Platform Infrastructure
OPA: Unified, Declarative, Context-aware
Application: “Employees can access
their own salary data. Managers can
access their subordinates salary
data.”
Platform: “Workloads that require
EU jurisdiction must be deployed on
clusters in European zones.”
Infrastructure: “Allow plans without
deletes unless the number of new
resources exceeds 100.” Data
(JSON)
Policy
(Rego)
Service
Policy
Query
Policy
Decision
OPA: Unified, Declarative, Context-aware
“Employees can access their own salary data. Managers
can access their subordinates salary data.”
allow {
input.path = [“salary”, employee_id]
input.user = employee_id
}
allow {
input.path = [“salary”, employee_id]
input.user = data.manager_of[employee_id]
}
OPA: Unified, Declarative, Context-aware
“Employees can access their own salary data. Managers
can access their subordinates salary data.”
allow {
input.path = [“salary”, employee_id]
input.user = employee_id
}
allow {
input.path = [“salary”, employee_id]
input.user = data.manager_of[employee_id]
}
Context
Pattern Matching
OPA: Unified, Declarative, Context-aware
“Workloads that require EU jurisdiction must be deployed on
clusters in European zones.”
placement[cluster.name] {
input.metadata.labels[“requires-eu-jurisdiction”]
cluster = data.clusters[_]
startswith(cluster.status.region, “eu-”)
}
OPA: Unified, Declarative, Context-aware
“Workloads that require EU jurisdiction must be deployed on
clusters in European zones.”
placement[cluster.name] {
input.metadata.labels[“requires-eu-jurisdiction”]
cluster = data.clusters[_]
startswith(cluster.status.region, “eu-”)
}
References Search
OPA: Unified, Declarative, Context-aware
“Allow plans without deletes unless the number of new
resources exceeds 100.”
deny { score > 100 }
weights = {“create”: 1, “modify”: 0, “delete”: 1000}
score = s {
sum([weights[op] | input.plan[_] = [op, _]], s)
}
AggregationComposition
The Open Policy Agent Project
● Declarative Language
● Document-oriented
● Daemon, Library
● Policy, Query, Data APIs
● Tooling (REPL, Tracing, Testing)
● Apache License 2.0
Data
(JSON)
Policy
(Rego)
Thank You !
Netflix Open Source - @NetflixOSS
PADME
Netflix Open Source - @NetflixOSS
Access Control In a Distributed World
www.padme.io
Goals
• Provable, Composable, Security
• Simplicity (ease of use)
• Well Defined Behavior in a Distributed Environment
The Problem
Configuring Access Policies is Hard
• Every component is different (heterogeneity)
• Web servers, networking gear, etc
• Services evolve, and policies need to change with them (temporality)
• Policies don’t understand the CAP Theorem (temporality)
Current State
• Recruited Core Team
• Use cases
• Skeletal Reference Architecture
How You Can Help!
• Looking for design partners to validate use cases
• info@padme.io
Thank You !
Netflix Open Source - @NetflixOSS
Demo Stations
Open Policy Agent
Stethoscope
HubCommander
Titus

Más contenido relacionado

La actualidad más candente

Herding Kats - Netflix’s Journey to Kubernetes Public
Herding Kats - Netflix’s Journey to Kubernetes PublicHerding Kats - Netflix’s Journey to Kubernetes Public
Herding Kats - Netflix’s Journey to Kubernetes Publicaspyker
 
Netflix and Containers: Not A Stranger Thing
Netflix and Containers:  Not A Stranger ThingNetflix and Containers:  Not A Stranger Thing
Netflix and Containers: Not A Stranger Thingaspyker
 
Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2aspyker
 
Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3aspyker
 
Container World 2018
Container World 2018Container World 2018
Container World 2018aspyker
 
Re:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS IntegrationRe:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS Integrationaspyker
 
Whats new in brigade 2
Whats new in brigade 2Whats new in brigade 2
Whats new in brigade 2LibbySchulze
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015aspyker
 
Stranger Things: The Forces that Disrupt Netflix
Stranger Things: The Forces that Disrupt NetflixStranger Things: The Forces that Disrupt Netflix
Stranger Things: The Forces that Disrupt NetflixC4Media
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 
Netflix Cloud Platform and Open Source
Netflix Cloud Platform and Open SourceNetflix Cloud Platform and Open Source
Netflix Cloud Platform and Open Sourceaspyker
 
Dev309 from asgard to zuul - netflix oss-final
Dev309  from asgard to zuul - netflix oss-finalDev309  from asgard to zuul - netflix oss-final
Dev309 from asgard to zuul - netflix oss-finalRuslan Meshenberg
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 
DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA Docker, Inc.
 
Netflix Container Runtime - Titus - for Container Camp 2016
Netflix Container Runtime - Titus - for Container Camp 2016Netflix Container Runtime - Titus - for Container Camp 2016
Netflix Container Runtime - Titus - for Container Camp 2016aspyker
 
Cloud native policy enforcement with Open Policy Agent
Cloud native policy enforcement with Open Policy AgentCloud native policy enforcement with Open Policy Agent
Cloud native policy enforcement with Open Policy AgentLibbySchulze
 
Application Monitoring using Datadog
Application Monitoring using DatadogApplication Monitoring using Datadog
Application Monitoring using DatadogMukta Aphale
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixThe Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixCodemotion Tel Aviv
 

La actualidad más candente (20)

Herding Kats - Netflix’s Journey to Kubernetes Public
Herding Kats - Netflix’s Journey to Kubernetes PublicHerding Kats - Netflix’s Journey to Kubernetes Public
Herding Kats - Netflix’s Journey to Kubernetes Public
 
Netflix and Containers: Not A Stranger Thing
Netflix and Containers:  Not A Stranger ThingNetflix and Containers:  Not A Stranger Thing
Netflix and Containers: Not A Stranger Thing
 
Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2Netflix Open Source Meetup Season 3 Episode 2
Netflix Open Source Meetup Season 3 Episode 2
 
Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3Netflix Open Source Meetup Season 4 Episode 3
Netflix Open Source Meetup Season 4 Episode 3
 
Container World 2018
Container World 2018Container World 2018
Container World 2018
 
Re:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS IntegrationRe:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS Integration
 
Whats new in brigade 2
Whats new in brigade 2Whats new in brigade 2
Whats new in brigade 2
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Stranger Things: The Forces that Disrupt Netflix
Stranger Things: The Forces that Disrupt NetflixStranger Things: The Forces that Disrupt Netflix
Stranger Things: The Forces that Disrupt Netflix
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 
Netflix Cloud Platform and Open Source
Netflix Cloud Platform and Open SourceNetflix Cloud Platform and Open Source
Netflix Cloud Platform and Open Source
 
Dev309 from asgard to zuul - netflix oss-final
Dev309  from asgard to zuul - netflix oss-finalDev309  from asgard to zuul - netflix oss-final
Dev309 from asgard to zuul - netflix oss-final
 
The elements of kubernetes
The elements of kubernetesThe elements of kubernetes
The elements of kubernetes
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA
 
Netflix Container Runtime - Titus - for Container Camp 2016
Netflix Container Runtime - Titus - for Container Camp 2016Netflix Container Runtime - Titus - for Container Camp 2016
Netflix Container Runtime - Titus - for Container Camp 2016
 
Cloud native policy enforcement with Open Policy Agent
Cloud native policy enforcement with Open Policy AgentCloud native policy enforcement with Open Policy Agent
Cloud native policy enforcement with Open Policy Agent
 
Application Monitoring using Datadog
Application Monitoring using DatadogApplication Monitoring using Datadog
Application Monitoring using Datadog
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, WixThe Art of Decomposing Monoliths - Kfir Bloch, Wix
The Art of Decomposing Monoliths - Kfir Bloch, Wix
 

Similar a Netflix OSS Meetup Season 5 Episode 1

Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open SourceAll Things Open
 
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022HostedbyConfluent
 
Fine-grained Authorization in a Containerized World
Fine-grained Authorization in a Containerized WorldFine-grained Authorization in a Containerized World
Fine-grained Authorization in a Containerized WorldAshutosh Narkar
 
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...Serge Huber
 
Apache Unomi presentation and update. By Serge Huber, CTO Jahia
Apache Unomi presentation and update. By Serge Huber, CTO JahiaApache Unomi presentation and update. By Serge Huber, CTO Jahia
Apache Unomi presentation and update. By Serge Huber, CTO JahiaJahia Solutions Group
 
SRV318_Research at PNNL Powered by AWS
SRV318_Research at PNNL Powered by AWSSRV318_Research at PNNL Powered by AWS
SRV318_Research at PNNL Powered by AWSAmazon Web Services
 
Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017
Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017
Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017Amazon Web Services
 
Kubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentKubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentCloudOps2005
 
OPA open policy agent
OPA open policy agentOPA open policy agent
OPA open policy agentKnoldus Inc.
 
Gluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial IntroductionGluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial IntroductionAdrian Cockcroft
 
DevOps, CLI, APIs, Oh My! Security Gone Agile
DevOps, CLI, APIs, Oh My!  Security Gone AgileDevOps, CLI, APIs, Oh My!  Security Gone Agile
DevOps, CLI, APIs, Oh My! Security Gone AgileMatt Tesauro
 
AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityMatt Tesauro
 
Internet Week 2018: 1.1.1.0/24 A report from the (anycast) trenches
Internet Week 2018: 1.1.1.0/24 A report from the (anycast) trenchesInternet Week 2018: 1.1.1.0/24 A report from the (anycast) trenches
Internet Week 2018: 1.1.1.0/24 A report from the (anycast) trenchesAPNIC
 
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)Amazon Web Services
 
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...Amazon Web Services
 
DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)
DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)
DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)Michael Man
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...DataStax
 
Welcome to the Jungle: Pentesting AWS
Welcome to the Jungle: Pentesting AWSWelcome to the Jungle: Pentesting AWS
Welcome to the Jungle: Pentesting AWSMike Felch
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.Vlad Fedosov
 

Similar a Netflix OSS Meetup Season 5 Episode 1 (20)

Open Policy Agent
Open Policy AgentOpen Policy Agent
Open Policy Agent
 
Netflix Architecture and Open Source
Netflix Architecture and Open SourceNetflix Architecture and Open Source
Netflix Architecture and Open Source
 
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
Knock Knock, Who’s There? With Justin Chen and Dhruv Jauhar | Current 2022
 
Fine-grained Authorization in a Containerized World
Fine-grained Authorization in a Containerized WorldFine-grained Authorization in a Containerized World
Fine-grained Authorization in a Containerized World
 
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
 
Apache Unomi presentation and update. By Serge Huber, CTO Jahia
Apache Unomi presentation and update. By Serge Huber, CTO JahiaApache Unomi presentation and update. By Serge Huber, CTO Jahia
Apache Unomi presentation and update. By Serge Huber, CTO Jahia
 
SRV318_Research at PNNL Powered by AWS
SRV318_Research at PNNL Powered by AWSSRV318_Research at PNNL Powered by AWS
SRV318_Research at PNNL Powered by AWS
 
Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017
Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017
Research at PNNL: Powered by AWS - SRV318 - re:Invent 2017
 
Kubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentKubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy Agent
 
OPA open policy agent
OPA open policy agentOPA open policy agent
OPA open policy agent
 
Gluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial IntroductionGluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
Gluecon 2013 - NetflixOSS Cloud Native Tutorial Introduction
 
DevOps, CLI, APIs, Oh My! Security Gone Agile
DevOps, CLI, APIs, Oh My!  Security Gone AgileDevOps, CLI, APIs, Oh My!  Security Gone Agile
DevOps, CLI, APIs, Oh My! Security Gone Agile
 
AppSec Pipelines and Event based Security
AppSec Pipelines and Event based SecurityAppSec Pipelines and Event based Security
AppSec Pipelines and Event based Security
 
Internet Week 2018: 1.1.1.0/24 A report from the (anycast) trenches
Internet Week 2018: 1.1.1.0/24 A report from the (anycast) trenchesInternet Week 2018: 1.1.1.0/24 A report from the (anycast) trenches
Internet Week 2018: 1.1.1.0/24 A report from the (anycast) trenches
 
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
透過最新的 AWS 服務在 2019 年為您的業務轉型 (Level 200)
 
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
From Monolith to Microservices (And All the Bumps along the Way) (CON360-R1) ...
 
DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)
DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)
DSO-LG 2021 Reboot: Policy As Code (Anders Eknert)
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
Welcome to the Jungle: Pentesting AWS
Welcome to the Jungle: Pentesting AWSWelcome to the Jungle: Pentesting AWS
Welcome to the Jungle: Pentesting AWS
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 

Más de aspyker

Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientistsaspyker
 
SRECon Lightning Talk
SRECon Lightning TalkSRECon Lightning Talk
SRECon Lightning Talkaspyker
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4aspyker
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflixaspyker
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016aspyker
 
Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1aspyker
 
CS80A Foothill College Open Source Talk
CS80A Foothill College Open Source TalkCS80A Foothill College Open Source Talk
CS80A Foothill College Open Source Talkaspyker
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Sourceaspyker
 
NetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker TalkNetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker Talkaspyker
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalaspyker
 
Docker Demo IBM Impact 2014
Docker Demo IBM Impact 2014Docker Demo IBM Impact 2014
Docker Demo IBM Impact 2014aspyker
 
Netflix s2e1lightningtalk
Netflix s2e1lightningtalkNetflix s2e1lightningtalk
Netflix s2e1lightningtalkaspyker
 
Going Cloud Native with IBM Cloud and NetflixOSS for Dev@Pulse
Going Cloud Native with IBM Cloud and NetflixOSS for Dev@PulseGoing Cloud Native with IBM Cloud and NetflixOSS for Dev@Pulse
Going Cloud Native with IBM Cloud and NetflixOSS for Dev@Pulseaspyker
 

Más de aspyker (13)

Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientists
 
SRECon Lightning Talk
SRECon Lightning TalkSRECon Lightning Talk
SRECon Lightning Talk
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1Netflix Open Source Meetup Season 4 Episode 1
Netflix Open Source Meetup Season 4 Episode 1
 
CS80A Foothill College Open Source Talk
CS80A Foothill College Open Source TalkCS80A Foothill College Open Source Talk
CS80A Foothill College Open Source Talk
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
NetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker TalkNetflixOSS and ZeroToDocker Talk
NetflixOSS and ZeroToDocker Talk
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinal
 
Docker Demo IBM Impact 2014
Docker Demo IBM Impact 2014Docker Demo IBM Impact 2014
Docker Demo IBM Impact 2014
 
Netflix s2e1lightningtalk
Netflix s2e1lightningtalkNetflix s2e1lightningtalk
Netflix s2e1lightningtalk
 
Going Cloud Native with IBM Cloud and NetflixOSS for Dev@Pulse
Going Cloud Native with IBM Cloud and NetflixOSS for Dev@PulseGoing Cloud Native with IBM Cloud and NetflixOSS for Dev@Pulse
Going Cloud Native with IBM Cloud and NetflixOSS for Dev@Pulse
 

Último

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Netflix OSS Meetup Season 5 Episode 1

  • 1. Netflix Open Source Netflix Open Source - @NetflixOSS Season 5, Episode 1
  • 2. Agenda 6:00-7:00 Registration, Food/Drink, Networking 7:00-8:00 Talks: • RepoKid - Travis McPeak and Patrick Kelley, Netflix • BetterTLS - Ian Haken, Netflix • Authorization at Netflix - Manish Mehta, Netflix • Open Policy Agent - Torin Sandall, OPA project • PADME - Kamil Pawlowski, PADME project 8:00-9:00 Demos, Networking
  • 5. Set Builder: (Me) ● Name: Patrick Kelley @monkeysecurity ● ~ 5 years @ Netflix ● Decent trampoline jumper ● OSS Fan ○ SecurityMonkey ○ CloudAux ○ PolicyUniverse ○ Aardvark ○ Repokid ○ SWAG
  • 6. You are Entitled to Nothing Permissions granted to new apps: ● Permissions are automatically granted to applications on deploy. ● Apps start with a small base-set of permissions. ● Manual interaction with the security team is limited. Eventually: ● Default permission set is empty. We peek inside your AMI to build policies. ● Library owners define required permissions.*
  • 7. Remove Unused PermissionsRepokid gathers data from multiple plugins and determines which permissions may be removed. After sending notifications, repokid will “repo” unused permissions. If something goes wrong, repokid allows for easy rollback. https://github.com/Netflix/repokid https://github.com/Netflix-Skunkworks/aardvark
  • 8. AWS Policy Anatomy { "Action": "s3:GetObject", "Resource": "arn:aws:s3:::test-bucket-*", "Effect": "Allow" } Service Access Advisor Event CloudTrail Resource S3 Access Logs
  • 9. Thank You ! Netflix Open Source - @NetflixOSS
  • 10. BetterTLS Netflix Open Source - @NetflixOSS A test suite for HTTPS clients implementing verification of the Name Constraints certificate extension
  • 11. How Does Web PKI Work? google.co mVerisign 172.317.5.110 Symantec Digicert Verisign google.com
  • 12. On Trusting Your Truststore nsa.govWoSign China 23.210.7.329 Verisign Digicert WoSign China nsa.gov
  • 13. Another Use Case password reset .acme .internal ACME Root CA 74.304.23.58 passwordreset.acme.internal ACME Root CA
  • 14. Responsibility, Risk, and Transparency bankof america .com ACME Root CA 17.59.228.350 ACME Root CA bankofamerica.com
  • 15. We want to apply authorization rules to CAs. Is ACME Root CA authorized to create a certificate for bankofamerica.com?
  • 16. The Name Constraints X509 Extension ● RFC 5280 (May 2008) ● Applies only to CA certificates. Specifies: ○ Type of name to which it applies (DNS, IP, etc) ○ Subtree (DNS prefix or IP range) ○ Whitelisted or blacklisted ● Constraints on CA hierarchy can be nested! Implementations should “intersect” the constraints. ○ The ACME Root CA can be whitelisted for *.internal ○ The ACME Test Environment CA can be blacklisted for *.prod.internal
  • 17. How Name Constraints Works ACME Root CA ACME Internal CA NC: *.internal passwordreset .acme.internal ✓ ACME Root CA ACME Internal CA NC: *.internal bankofamerica .com ×
  • 18. The Name Constraints extension is only useful if clients implement it.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. ...correctly. The Name Constraints extension is only useful if clients implement it...
  • 24. Let’s Test! Thoroughly! ● Put the server name in both CN and SAN ● Use both DNS names and IP names ○ Use both valid and invalid names ● Use both NC whitelisting and blacklisting ○ Use both passing and non-passing whitelists/blacklists ● Mix and match all of these ○ Computers are really good at brute forcing all combinations of things ● Let’s contact vendors about any issues we find ● And let’s make it public!
  • 26. Making TLS Better ● Chrome now has 100% pass on Windows and Linux ○ Chrome on OSX still has some blacklist failures because of unfixed bugs in Apple’s proprietary TLS implementation. :( ● Go found a bug in their NC verification ○ They’ve fixed it and included a bettertls certificate in their own test suite! ● Java has fixed bugs in their NC verification ○ Release including the fix is pending
  • 27. What Should I Do? ● If you use TLS in your project, consider utilizing the bettertls.com test suite. ● Contribute! ○ Help us extend BetterTLS with other (e.g. more specific) Name Constraints tests ○ Submit additional client test results ○ Invent another TLS extension suite (HPKP, HSTS, …) ● If you manage any sort of CA, use name constraints to reduce risk to your users, to reduce your own liability, and to increase transparency!
  • 28. Thank You ! Netflix Open Source - @NetflixOSS
  • 29. Authorization at Netflix Netflix Open Source - @NetflixOSS Netflix’s architecture for implementing Authorization at scale
  • 30. Background - Definitions Transfer $1000 from Account X to Account Y Me My Bank 1. Verify the Identity of the Requester (Authentication or AuthN) 2. Verify that the Requestor is authorized to perform the requested operation (Authorization or AuthZ) These 2 steps do not need to be tied together !!
  • 31. Background – Netflix Architecture
  • 32. AuthZ Problem A way to define and enforce rules that read Identity I can/cannot perform Operation O on Resource R For ALL combinations of I, O, and R in the ecosystem.
  • 33. Design Considerations ● Resource types ● Identity types ● Underlying Protocols ● Implementation Languages ● Latency ● Flexibility of Rules ● Company Culture ● Capture Intent
  • 34. Result DistributorDistributorDistributor AuthZ Agent App Code S S H Policy Portal App CodeAuthZ Agent DistributorDistributorAggregator Policy DB Other Data Sources Service A Service B
  • 35. Zooming In AuthZ Agent API Stager Open Policy Agent Engine Updater Periodic updates on policies and associated data
  • 36. Did it work? Resource types REST, SSH, Keys, Kafka Topics Identity types VM/Container Services, Batch Jobs, FTEs, Contractors Underlying Protocols HTTP, gRPC, Kafka Protocol Implementation Languages Java, Node JS, Ruby, Python Latency < 0.5 ms for basic policies Flexibility of Rules OPA Policy Engine Company Culture Policy Portal Capture Intent Policy Portal UI hides Policy text for most use cases
  • 37. Take Away ● AuthZ is a fundamental security problem ● Seek comprehensive solution for better Control and Visibility ● Get there faster with Open Source Tools (e.g. OPA) ● Get involved in communities (e.g. PADME)
  • 38. Thank You ! Netflix Open Source - @NetflixOSS
  • 39. Open Policy Agent Netflix Open Source - @NetflixOSS An open source, general-purpose policy engine www.openpolicyagent.org
  • 41. The Policy Problem ratings details commentslanding_page master nodes nodes instance-976 elb-east bucket-acme lambda-xyz keypair-foo Application Platform Infrastructure
  • 42. The Policy Problem ratings details commentslanding_page master nodes nodes instance-976 elb-east bucket-acme lambda-xyz keypair-foo Can user X do operation Y on resource Z? Application Platform Infrastructure
  • 43. The Policy Problem ratings details commentslanding_page master nodes nodes instance-976 elb-east bucket-acme lambda-xyz keypair-foo Which cluster should this workload be deployed on? Can user X do operation Y on resource Z? Application Platform Infrastructure
  • 44. The Policy Problem ratings details commentslanding_page master nodes nodes instance-976 elb-east bucket-acme lambda-xyz keypair-foo Which cluster should this workload be deployed on? Which resources are not tagged correctly? Can user X do operation Y on resource Z? Application Platform Infrastructure
  • 45. Writing Policy Is Hard! http.body: null http.method: GET http.path: - salary - bob http.query_params: {} protocol.scheme: https service.source: ipv4: 10.0.0.128 namespace: production port: 32757 service: landing_page service.target: ip: 10.0.1.95 namespace: production port: 8080 service: details ingress.user: alice kind: Pod metadata: labels: app: nginx name: nginx-1493591563-bvl8q namespace: production spec: containers: - image: nginx imagePullPolicy: Always name: nginx securityContext: privileged: true nodeName: minikube status: containerStatuses: - name: nginx ready: true restartCount: 0 hostIP: 192.168.99.100 phase: Running podIP: 172.17.0.4 startTime: 2017-08-01T06:34:13Z aws_autoscaling_group.lamb: availability_zones#: '1' availability_zones.3205: us-west-1a desired_capacity: '4' destroy: false health_check_grace_period: '300' launch_configuration: kitten wait_for_capacity_timeout: 10m aws_instance.puppy: ami: ami-09b4b74c instance_type: t2.micro source_dest_check: 'true' aws_launch_configuration.kitten: associate_public_ip_addr: 'false' destroy: false image_id: ami-09b4b74c instance_type: t2.micro name: kitten Application Platform Infrastructure
  • 46. Infrastructure Writing Policy Is Hard! http.body: null http.method: GET http.path: - salary - bob http.query_params: {} protocol.scheme: https service.source: ipv4: 10.0.0.128 namespace: production port: 32757 service: landing_page service.target: ip: 10.0.1.95 namespace: production port: 8080 service: details ingress.user: alice kind: Pod metadata: labels: app: nginx name: nginx-1493591563-bvl8q namespace: production spec: containers: - image: nginx imagePullPolicy: Always name: nginx securityContext: privileged: true nodeName: minikube status: containerStatuses: - name: nginx ready: true restartCount: 0 hostIP: 192.168.99.100 phase: Running podIP: 172.17.0.4 startTime: 2017-08-01T06:34:13Z aws_autoscaling_group.lamb: availability_zones#: '1' availability_zones.3205: us-west-1a desired_capacity: '4' destroy: false health_check_grace_period: '300' launch_configuration: kitten wait_for_capacity_timeout: 10m aws_instance.puppy: ami: ami-09b4b74c instance_type: t2.micro source_dest_check: 'true' aws_launch_configuration.kitten: associate_public_ip_addr: 'false' destroy: false image_id: ami-09b4b74c instance_type: t2.micro name: kitten Context Dependent Application Platform
  • 47. Infrastructure Writing Policy Is Hard! http.body: null http.method: GET http.path: - salary - bob http.query_params: {} protocol.scheme: https service.source: ipv4: 10.0.0.128 namespace: production port: 32757 service: landing_page service.target: ip: 10.0.1.95 namespace: production port: 8080 service: details ingress.user: alice kind: Pod metadata: labels: app: nginx name: nginx-1493591563-bvl8q namespace: production spec: containers: - image: nginx imagePullPolicy: Always name: nginx securityContext: privileged: true nodeName: minikube status: containerStatuses: - name: nginx ready: true restartCount: 0 hostIP: 192.168.99.100 phase: Running podIP: 172.17.0.4 startTime: 2017-08-01T06:34:13Z aws_autoscaling_group.lamb: availability_zones#: '1' availability_zones.3205: us-west-1a desired_capacity: '4' destroy: false health_check_grace_period: '300' launch_configuration: kitten wait_for_capacity_timeout: 10m aws_instance.puppy: ami: ami-09b4b74c instance_type: t2.micro source_dest_check: 'true' aws_launch_configuration.kitten: associate_public_ip_addr: 'false' destroy: false image_id: ami-09b4b74c instance_type: t2.micro name: kitten Context Dependent Complex Data Application Platform
  • 48. Writing Policy Is Hard! http.body: null http.method: GET http.path: - salary - bob http.query_params: {} protocol.scheme: https service.source: ipv4: 10.0.0.128 namespace: production port: 32757 service: landing_page service.target: ip: 10.0.1.95 namespace: production port: 8080 service: details ingress.user: alice kind: Pod metadata: labels: app: nginx name: nginx-1493591563-bvl8q namespace: production spec: containers: - image: nginx imagePullPolicy: Always name: nginx securityContext: privileged: true nodeName: minikube status: containerStatuses: - name: nginx ready: true restartCount: 0 hostIP: 192.168.99.100 phase: Running podIP: 172.17.0.4 startTime: 2017-08-01T06:34:13Z aws_autoscaling_group.lamb: availability_zones#: '1' availability_zones.3205: us-west-1a desired_capacity: '4' destroy: false health_check_grace_period: '300' launch_configuration: kitten wait_for_capacity_timeout: 10m aws_instance.puppy: ami: ami-09b4b74c instance_type: t2.micro source_dest_check: 'true' aws_launch_configuration.kitten: associate_public_ip_addr: 'false' destroy: false image_id: ami-09b4b74c instance_type: t2.micro name: kitten Context Dependent Complex Data Search and Aggregation Application Platform Infrastructure
  • 49. OPA: Unified, Declarative, Context-aware Application: “Employees can access their own salary data. Managers can access their subordinates salary data.” Platform: “Workloads that require EU jurisdiction must be deployed on clusters in European zones.” Infrastructure: “Allow plans without deletes unless the number of new resources exceeds 100.” Data (JSON) Policy (Rego) Service Policy Query Policy Decision
  • 50. OPA: Unified, Declarative, Context-aware “Employees can access their own salary data. Managers can access their subordinates salary data.” allow { input.path = [“salary”, employee_id] input.user = employee_id } allow { input.path = [“salary”, employee_id] input.user = data.manager_of[employee_id] }
  • 51. OPA: Unified, Declarative, Context-aware “Employees can access their own salary data. Managers can access their subordinates salary data.” allow { input.path = [“salary”, employee_id] input.user = employee_id } allow { input.path = [“salary”, employee_id] input.user = data.manager_of[employee_id] } Context Pattern Matching
  • 52. OPA: Unified, Declarative, Context-aware “Workloads that require EU jurisdiction must be deployed on clusters in European zones.” placement[cluster.name] { input.metadata.labels[“requires-eu-jurisdiction”] cluster = data.clusters[_] startswith(cluster.status.region, “eu-”) }
  • 53. OPA: Unified, Declarative, Context-aware “Workloads that require EU jurisdiction must be deployed on clusters in European zones.” placement[cluster.name] { input.metadata.labels[“requires-eu-jurisdiction”] cluster = data.clusters[_] startswith(cluster.status.region, “eu-”) } References Search
  • 54. OPA: Unified, Declarative, Context-aware “Allow plans without deletes unless the number of new resources exceeds 100.” deny { score > 100 } weights = {“create”: 1, “modify”: 0, “delete”: 1000} score = s { sum([weights[op] | input.plan[_] = [op, _]], s) } AggregationComposition
  • 55. The Open Policy Agent Project ● Declarative Language ● Document-oriented ● Daemon, Library ● Policy, Query, Data APIs ● Tooling (REPL, Tracing, Testing) ● Apache License 2.0 Data (JSON) Policy (Rego)
  • 56. Thank You ! Netflix Open Source - @NetflixOSS
  • 57. PADME Netflix Open Source - @NetflixOSS Access Control In a Distributed World www.padme.io
  • 58. Goals • Provable, Composable, Security • Simplicity (ease of use) • Well Defined Behavior in a Distributed Environment
  • 59. The Problem Configuring Access Policies is Hard • Every component is different (heterogeneity) • Web servers, networking gear, etc • Services evolve, and policies need to change with them (temporality) • Policies don’t understand the CAP Theorem (temporality)
  • 60. Current State • Recruited Core Team • Use cases • Skeletal Reference Architecture
  • 61. How You Can Help! • Looking for design partners to validate use cases • info@padme.io
  • 62. Thank You ! Netflix Open Source - @NetflixOSS
  • 63. Demo Stations Open Policy Agent Stethoscope HubCommander Titus