Managing Privilege and Access on Federated Edge Platforms
Chris Weaver (on behalf of the SLATE team)
University of Chicago
PEARC19—July 31, 2019
1
The Need for Federated Edge Platforms
2
Example Scenario
3
The SLATE Platform for Edge Services
4
Trust and Privilege
5
Approach to Multi-tenancy
6
Edge Cluster
Non-SLATE
SLATE System
SLATE Group 1
SLATE Group 2
Containers
Secrets
Containers
Secrets
Containers
Secrets
NRP-Controller
Internal Permissions Model
7
Application Packaging
8
Application Configuration Example
# Instance to label use case of Frontier Squid deployment
# Generates app name as "osg-frontier-squid-[Instance]"
# Enables unique instances of Frontier Squid in one namespace
Instance: global
SquidConf:
# The amount of memory (in MB) that Frontier Squid may use on the machine.
# Per Frontier Squid, do not consume more than 1/8 of system memory with Frontier Squid
CacheMem: 128
# The amount of disk space (in MB) that Frontier Squid may use on the machine.
# The default is 10000 MB (10 GB), but more is advisable if the system supports it.
# Current limit is 999999 MB, a limit inherent to helm's number conversion system.
CacheSize: 10000
# The range of incoming IP addresses that will be allowed to use the proxy.
# Multiple ranges can be provided, each separated by a space.
# Example: 192.168.1.1/32 192.168.2.1/32
# The default set of ranges are those defined in RFC 1918 and typically used
# within kubernetes clusters.
IPRange: 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
9
Application Install Process
10
Application Curation
11
Curation Considerations
12
Variation in Trust Levels
13
Special Challenges of Container Images
14
Risks of containers as defined by NIST
15
Risks and Mitigations
16
Conclusions
17
Thanks
extra slides follow
18
This work is supported by the National Science Foundation Office of Advanced Cyberinfrastructure (OAC), grant number 1724821
SLATE Web Interface
19
SLATE Command Line Interface
# Find the PerfSONAR testpoint application
$ slate app list | grep 'Name\|perfsonar'
Name App Version Chart Version Description
perfsonar-testpoint 4.2.0 1.0.3 Perfsonar Testpoint Deployment
# Get the default configuration
$ slate app get-conf perfsonar-testpoint > ps.yaml
# Customize the configuration
$ vi ps.yaml
# Do the install
$ ./slate app install perfsonar-testpoint --cluster uchicago-prod --group slate-dev --conf ps.yaml Successfully installed application perfsonar-testpoint as instance slate-dev-perfsonar-testpoint-cnw- test with ID instance_U-2KiIGqFKs
# Query instance information
$ ./slate instance info instance_U-2KiIGqFKs
Name Started Group Cluster ID
perfsonar-testpoint-cnw-test 2019-Jul-15 18:06:39 UTC slate-dev uchicago-prod instance_U-2KiIGqFKs
Pods:
slate-dev-perfsonar-testpoint-cnw-test-84596d7c85-ns8xk
Status: Running
Created: 2019-07-15T18:06:44Z
Host: sl-uc-xcache1.slateci.io
Host IP: 192.170.227.137
# Run a test against the new endpoint
$ pscheduler task rtt --dest 192.170.227.137
Waiting for result...
1 192.170.227.137 64 Bytes TTL 64 RTT 0.2690 ms
...
0% Packet Loss RTT Min/Mean/Max/StdDev = 0.117000/0.190000/0.269000/0.051000 ms
20
Approaches to Kubernetes Federation
21
22
23
24