Sponsored by the National Science Foundation Establishing Policy-based Resource Quotas at Software-defined Exchanges Marshall Brinn, GPO June 16, 2015.

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Advertisements

Sponsored by the National Science Foundation 1 Activities this trimester 0.5 revision of Operational Security Plan Independently (from GPO) developing.
Sponsored by the National Science Foundation Campus Policies for the GENI Clearinghouse and Portal Sarah Edwards, GPO March 20, 2013.
D u k e S y s t e m s Authorization Framework: Status Jeff Chase Duke University.
Sponsored by the National Science Foundation Strategies for Cyber-Infrastructure Integration Marshall Brinn, GPO Brecht Vermeulen, iMinds GEC22: March.
Sponsored by the National Science Foundation GENI Clearinghouse Panel GEC 12 Nov. 2, 2011 INSERT PROJECT REVIEW DATE.
OASIS Reference Model for Service Oriented Architecture 1.0
Dept. of Computer Science & Engineering, CUHK1 Trust- and Clustering-Based Authentication Services in Mobile Ad Hoc Networks Edith Ngai and Michael R.
Using the jFed tool to experiment from zero to hero Brecht Vermeulen FGRE, July 7 th, 2015.
D u k e S y s t e m s Accountability and Authorization GEC 12 Jeff Chase Duke University Thanks: NSF TC CNS
Sponsored by the National Science Foundation Operational Monitoring Kevin Bohan, GMOC
Sponsored by the National Science Foundation Omni: a command line GENI resource reservation tool Niky Riga, Sarah Edwards GENI Project Office 13 March,
Sponsored by the National Science Foundation GENI Stitching Services: Present and Future Marshall Brinn, GPO March 18, 2014.
National Science Foundation Arlington, Virginia January 7-8, 2013 Tom Lehman University of Maryland Mid-Atlantic Crossroads.
Sponsored by the National Science Foundation PlanetLab and PLFED Spiral 2 Year-end Project Review Princeton University PI: Larry Peterson Staff: Andy Bavier,
Digital Object Architecture
Sponsored by the National Science Foundation GEC16 Service Developers Roundtable: Strawman Unified I&M Tools and Services Marshall Brinn, GPO March 19,
Sponsored by the National Science Foundation GEC17: Developer Track Introduction Marshall Brinn, GPO July 21, 2013.
D u k e S y s t e m s A Tale of Two Federations Jeff Chase Duke University.
This project has received funding from the European Union’s Seventh Framework Programme for research, technological development and demonstration under.
Sponsored by the National Science Foundation Towards an Ontology-savvy Aggregate Manager API Marshall Brinn GENI Program Office Sept. 17, 2015.
GT Components. Globus Toolkit A “toolkit” of services and packages for creating the basic grid computing infrastructure Higher level tools added to this.
Sponsored by the National Science Foundation Programmable Networks and GENI Marshall Brinn, GPO GEC October 25, 2012.
Secure Credential Manager Claes Nilsson - Sony Ericsson
Sponsored by the National Science Foundation GENI Software Marshall Brinn, GPO Architect January 7, 2013.
GEC 15 Houston, Texas October 23, 2012 Tom Lehman Xi Yang University of Maryland Mid-Atlantic Crossroads (MAX)
Visual Experiment Management Matt Strum, University of Utah.
GEC5 Security Summary Stephen Schwab Cobham Analytical Services July 21, 2009.
Sponsored by the National Science Foundation GEC17 Developer Sessions: ABAC: Life after Speaks-For Marshall Brinn, GPO July 22, 2013.
D u k e S y s t e m s ABAC: An ORCA Perspective GEC 11 Jeff Chase Duke University Thanks: NSF TC CNS
Sponsored by the National Science Foundation GEC16 Plenary Session: GENI Solicitation 4 Tool Context Marshall Brinn, GPO March 20, 2013.
Sponsored by the National Science Foundation GEC14 Session: SDN * in GENI Marshall Brinn, GPO July 11, 2012 * Software-Defined Networking.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards, GENI Project Office.
Sponsored by the National Science Foundation Enabling Trusted Federation Marshall Brinn, GENI Program Office October 1, 2014.
Sponsored by the National Science Foundation GENI Exploring Networks of the Future
Sponsored by the National Science Foundation GENI Spiral 4 Architecture Plan Marshall Brinn, GPO
Sponsored by the National Science Foundation GENI Exploring Networks of the Future Sarah Edwards, GPO
Sponsored by the National Science Foundation Software Defined Exchanges (SDX) Panel discussion Chip Elliott GENI Project Office
Access Control for Federation of Emulab-based Network Testbeds Ted Faber, John Wroclawski 28 July 2008
Sponsored by the National Science Foundation Towards Uniform Clearinghouse APIs GEC17 Developer Working Sessions July 23,
Sponsored by the National Science Foundation GENI Security Architecture What’s Up Next? GENI Engineering Conference 7 Durham, NC Stephen Schwab SPARTA/Cobham.
Sponsored by the National Science Foundation 1 Last updated April 1, 2013 Are you ready for the tutorial? 1.Sign In 2.Grab a Worksheet 3.Did you do the.
D u k e S y s t e m s Building the GENI Federation With ABAC Jeff Chase Duke University Thanks: NSF TC CNS
Sponsored by the National Science Foundation Cluster D Working Meetings GENI Engineering Conference 5 Seattle, WA July ,
Sponsored by the National Science Foundation 1 ICDCS13: July 8, 2013 Are you ready for the tutorial? 1.Grab a Worksheet and instructions 2.Did you do the.
Sponsored by the National Science Foundation Understanding the AM API through a simple Hadoop experiment.
Sponsored by the National Science Foundation Introduction to GENI Architecture: Federated Trust Perspective Marshall Brinn, GPO GEC20: June 24, 2014.
D u k e S y s t e m s GENI Federation Basics Jeff Chase Duke University.
GridShib and PERMIS Integration: Adding Policy driven Role-Based Access Control to Attribute-Based Authorisation in Grids Globus Toolkit is an open source.
Sponsored by the National Science Foundation Meeting Introduction: Integrating GENI Networks with Control Frameworks Aaron Falk GENI Project Office June.
Sponsored by the National Science Foundation GENI Aggregate Manager API Tom Mitchell March 16, 2010.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards, GENI Project Office.
Sponsored by the National Science Foundation GENI SDN Offering Marshall Brinn, GPO GEC18: October 28, 2013.
Sponsored by the National Science Foundation Stitching Slices GEC7 Control Framework WG Aaron Falk GENI Project Office.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sponsored by the National Science Foundation.
Sponsored by the National Science Foundation GENI Cloud Security GENI Engineering Conference 12 Kansas City, MO Stephen Schwab University of Southern California.
Newcastle uopn Tyne, September 2002 V. Ghini, G. Lodi, N. Mezzetti, F. Panzieri Department of Computer Science University of Bologna.
Sponsored by the National Science Foundation Behind the Scenes of GENI Experimentation An Introduction to GENI Tools Sarah Edwards GENI Project Office.
Mid-Atlantic Crossroads (MAX) GENI Facility Status Update March 16, 2010 Tom Lehman Xi Yang Peter O'Neil Abdella Battou.
Sponsored by the National Science Foundation Understanding the AM API through a simple Hadoop experiment.
Clearing house for all GENI news and documents GENI Architecture Concepts Global Environment for Network Innovations The GENI Project Office.
1 SOA Seminar Seminar on Service Oriented Architecture SOA Reference Model OASIS 2006.
Chapter 4 Access Control. Access Control Principles RFC 4949 defines computer security as: “Measures that implement and assure security services in a.
Designing a Federated Testbed as a Distributed System Robert Ricci, Jonathon Duerig, Gary Wong, Leigh Stoller, Srikanth Chikkulapelly, Woojin Seok 1.
Sponsored by the National Science Foundation ABAC and GPO Clearinghouse Authorization Marshall Brinn, GPO GEC20: June 22, 2014.
Sponsored by the National Science Foundation 1 GEC16: March 19, 2013 Are you ready for the tutorial? 1.Sign In 2.Grab a Worksheet 3.Did you do the pre-work?
Sponsored by the National Science Foundation GEC17 Plenary Session: Architecture Marshall Brinn, GPO July 22, 2013.
GENI Enabled Software Defined Exchange (SDX) and ScienceDMZ (SD-SDMZ)
Software Testing.
Presentation transcript:

Sponsored by the National Science Foundation Establishing Policy-based Resource Quotas at Software-defined Exchanges Marshall Brinn, GPO June 16, 2015 GEC23

Sponsored by the National Science Foundation2 Outline Policies and SDX Policy-based Authorization in Aggregates Quota-based Policies

Sponsored by the National Science Foundation3 Policies and SDX One of the key enablers of federation is trust –At a human level, between the federates –At a network level, in the ability of software to enforce agreements between federates Quota-based policies are a critical element of establishing such trust for cross-domain resource exchanges –Enabling each federation member to set and enforce its own prioritization on resource allocation among different federation peers

Sponsored by the National Science Foundation4 Policies and SDX: Examples Consider an example federation between GENI and iMinds. They might want to agree to (and enforce) such statements as: –GENI: “I want GENI users to be able to allocate up to 500 mbps at WIX, but iMinds users to only allocate 200 mbps at WIX” –iMinds: “I want to limit the number of VMs that any GENI slice can allocate on my resources during the summer” –GENI: “I want to limit the total number of VLANs allocated at WIX at any one time over all iMinds users to 10” What are the kinds of things one would want to say in policy and enforce at exchange points?

Sponsored by the National Science Foundation5 Policy-based Authorization in Aggregates Aggregate Resource Manager Authorizer Allocation Policy Delegate The Delegate is the code the performs the actual AM API call. It is only called if authorization checks are passed. The Aggregate receives AM API calls using XMLRPC over SSL. It thus knows the identity (SSL public cert) of the caller, and the authority to whom the caller belongs. The Allocation Policy specifies requirements of what is required or forbidden for the user’s call to be authorized. The Authorizer determines if the current request is authorized by evaluating the required and forbidden policies in the context of the current call and current and requested allocation state. The Resource Manager computes a summary of current PLUS requested resource allocations from Aggregate internal state. The authorizer uses this to compute policy adherence.

Sponsored by the National Science Foundation6 ABAC-based Policy Format { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Constants: define a set of named constants for improving readability and maintainability Identities: Establish a set of named identities linked to specified certificates Binders: A set of Python classes to bind variables based on current allocation context (caller, time, authority, resources) Conditional Assertions: Rules to determine whether to make ABAC assertions/statements based on current context Policies: ABAC statements of which assertions imply which other assertions Queries: Set of statements that must be proven (if positive) or not proven (if negative) for authorization The policies are in a particular JSON format that combines Python logic and ABAC (Attribute-based Access Control) assertions and identities to express positive and negative requirements.

Sponsored by the National Science Foundation7 Quota-based Policies The aggregate resource manager reports allocation metrics of the proposed future state (current + requested) Allocation metrics can be anything coordinated by the aggregate and policy developers –A common example is ‘NODE’ : # of NODES (VM’s, PC’s) allocated These are then –Aggregated by AUTHORITY, PROJECT, SLICE, USER –Computed by HOURS, MAX, TOTAL Thus, e.g. we can write policies in terms of variables such as AUTHORITY_NODE_TOTAL or PROJECT_NODE_HOURS

Sponsored by the National Science Foundation8 Quota-based Policies [2] Most critical for SDX, we want to be able to manage quotas on cross-domain network allocations For this we define these allocation metrics, gleaned from the stitching request RSpec: –CAPACITY: Bandwidth requested for cross-domain traffic Note: This is not necessarily the same as what BW is provided in real-time Rather, it establishes an upper bound at allocation time. –VLAN: The number of VLANs allocated for cross- domain traffic

Sponsored by the National Science Foundation9 Prototype Capability Xi Yang and Tom Lehman (MAX), Brecht Vermeulen (iMinds) and I have developed a working prototype SDX that enforces quota-based policies in this manner. –Integrated in the current WIX aggregate manager (GRAM) which is the US side of GENI/iMinds exchange. –Integrated in the current iMinds aggregate manager (PG) which is the EU side of the GENI/iMinds exchange The policies are proof-of-concept (i.e. for demonstration purposes) but the architecture and implementation are real.

Sponsored by the National Science Foundation10 Current WIX SDX Functionality Establish resource quotas on a Clearinghouse, Slice, or User basis Resource types are total bandwidth, number of VLANs in use Example: WIX AM has the following quotas defined: –User from GENI CH: Total capacity <= 500M; Total # of VLAN <= 5. –User from iMinds CH: Total capacity <= 300M; Total # of VLAN <= 3. User from GENI CH has 1 existing sliver using 1 VLAN and 100 Mbps. Same user then requests new sliver with 1 VLAN and 400 Mbps. –query on "quota exceeds" policy rule returns “False” Provisioning action proceeds

Sponsored by the National Science Foundation11 Current WIX SDX Functionality User then asked for third sliver using 1 VLAN and 100 Mbps. This exceeds quota of 500M –query on "quota exceeds" policy rule returns “True” Provisioning action is denied

Sponsored by the National Science Foundation12 Quota Enforcement: Example output from omni Allocation of slivers in slice urn:publicid:IDN+ch.geni.net:MAX-GENI+slice+max-gram-test1 at maxgram3 failed: Error from Aggregate: code 2: Authorization Failure, Quota Exceeded. Allocate slivers in slice urn:publicid:IDN+ch.geni.net:MAX-GENI+slice+max-gram-test1 failed at

Sponsored by the National Science Foundation13 Summary Quota-based policies are a critical enabler of cross-domain resource exchanges A prototype for such policies is currently implemented and distributed with the current geni-tools (gcf) software package Anyone interested in using this framework to establish such policy-based authorization in their aggregates, please contact or

Sponsored by the National Science Foundation14 ABAC-BASED POLICY: ANNOTATED EXAMPLE

Sponsored by the National Science Foundation15 ABAC-based Policy Format: Annotated { "identities" : { "GENI_CH_CA" : "/etc/gram/trusted_roots/ch.geni.net-ca.pem” }, { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Identities: Establish a set of named identities linked to specified certificates

Sponsored by the National Science Foundation16 ABAC-based Policy Format: Annotated { "constants" : { "$GENI_VLAN_QUOTA" : "5”, "$GENI_CAPACITY_QUOTA" : "500000”, "$GENI_AUTHORITY" : "urn:publicid:IDN+ch.geni.net+authority+ca”, "$IMINDS_VLAN_QUOTA" : "3”, "$IMINDS_CAPACITY_QUOTA" : "300000”, "$IMINDS_AUTHORITY" : "urn:publicid:IDN+wall2.ilab2.iminds.be+authority+ca” }, { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Constants: define a set of named constants for improving readability and maintainability

Sponsored by the National Science Foundation17 ABAC-based Policy Format: Annotated "binders" : [ "gcf.geni.auth.binders.Standard_Binder”, "gcf.geni.auth.binders.SFA_Binder”, "gcf.geni.auth.binders.Stitching_Binder”, "gcf.geni.auth.resource_binder.MAX_Binder”, "gcf.geni.auth.resource_binder.TOTAL_Binder”, "gcf.geni.auth.resource_binder.HOURS_Binder”, "gcf.geni.auth.resource_binder.User_Slice_Binder” ], { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Binders: A set of Python classes to bind variables based on current allocation context (caller, time, authority, resources)

Sponsored by the National Science Foundation18 ABAC-based Policy Format: Annotated "conditional_assertions" : [ { "precondition" : "True”, "exclusive" : false, "clauses" : [ { "condition" : "'$CALLER_AUTHORITY' == '$GENI_AUTHORITY' and $AUTHORITY_CAPACITY_TOTAL >= $GENI_CAPACITY_QUOTA”, "assertion" : "AM.EXCEEDS_QUOTA<-$CALLER” }, { "condition" : "'$CALLER_AUTHORITY' == '$GENI_AUTHORITY' and $AUTHORITY_VLAN_TOTAL >= $GENI_VLAN_QUOTA”, "assertion" : "AM.EXCEEDS_QUOTA<-$CALLER” }, { "condition" : "'$CALLER_AUTHORITY' == '$IMINDS_AUTHORITY' and $AUTHORITY_CAPACITY_TOTAL >= $IMINDS_CAPACITY_QUOTA”, "assertion" : "AM.EXCEEDS_QUOTA<-$CALLER” }, { "condition" : "'$CALLER_AUTHORITY' == '$IMINDS_AUTHORITY' and $AUTHORITY_VLAN_TOTAL >= $IMINDS_VLAN_QUOTA”, "assertion" : "AM.EXCEEDS_QUOTA<-$CALLER” } ] } ], { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Conditional Assertions: Rules to determine whether to make ABAC assertions/statements based on current context

Sponsored by the National Science Foundation19 ABAC-based Policy Format: Annotated "policies" : [ "AM.MAY_SHUTDOWN<-GENI_CH_CA.MAY_SHUTDOWN” ], { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Policies: ABAC statements of which assertions imply which other assertions

Sponsored by the National Science Foundation20 ABAC-based Policy Format: Annotated "queries" : [ { "statement" : "AM.EXCEEDS_QUOTA<-$CALLER”, "is_positive" : false, "message" : "Quota Exceeded” }, { "statement" : "AM.MAY_SHUTDOWN<-$CALLER”, "is_positive" : true, "message" : "Privilege Failure”, "condition" : "'$METHOD' in ['Shutdown_V2', 'Shutdown_V3']” } ] { "identities" : { … }, "constants" : { … }, "binders" : [ … ], "conditional_assertions" : [ … ], "policies" : [ … ], "queries" : [ … ] } Queries: Set of statements that must be proven (if positive) or not proven (if negative) for authorization