EMI INFSO-RI Argus Policies in Action Valery Tschopp (SWITCH) on behalf of the Argus PT
EMI INFSO-RI What is authorization ? 220/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Can user X perform action Y on resource Z ? 320/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Can user X… – execute on this worker node (WN) ? – submit a job to this CREAM CE ? – access this storage area ? – submit a job to this WMS instance ? User X is banned ! – Is not allowed to do anything on any resource! Authorization Examples 420/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Each Grid service has its own authorization mechanism – Administrators need to know them all – Authorization rules at a site become difficult to understand and manage No global banning mechanism – Urgent ban of malicious users cannot be easily and timely enforced on distributed sites Authorization policies are static – Hard to change policies without reconfiguring services Monitoring authorization decisions is hard Motivations for Argus 520/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI A generic authorization system – Built on top of a XACML policy engine – Renders consistent authorization decisions based on XACML policies Argus 620/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Argus PAP: Policy Administration Point – Provides administrators with the tools to author policies (pap-admin) – Stores and manages authored XACML policies – Provides managed authorization policies to other authorization service components (other PAPs or PDP) Argus Components 720/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Argus PDP: Policy Decision Point – Policy evaluation engine – Receives authorization requests from the PEP – Evaluates the authorization requests against the XACML policies retrieved from the PAP – Renders the authorization decision Argus Components (cont.) 820/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Argus PEP: Policy Execution Point – Client/Server architecture – Lightweight PEP client libraries (C and Java) – PEP Server receives the authorization requests from the PEP clients Transforms lightweight internal request into XACML Applies a configurable set of filters (PIPs) to the incoming requests Asks the PDP to render an authorization decision If requested by the policy, applies the obligation handler (OH) to determine the user mapping Argus Components (cont.) 920/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Argus Service Deployment 1020/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Argus is designed to answer the question: Can user X perform action Y on resource Z ? Argus policies contain rules that state which actions can be performed on which resources by which users. Argus uses XACML v.2 as the policy language. – However, XACML is hard to read and write, so we developed a Simplified Policy Language (SPL) Argus Authorization Policies 1120/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI User X should not be allowed to do anything on any resource ! Use Case: User Banning 1220/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI XACML policies anyone … ? Use Case: User Banning (XACML).* public_2d8346b8-5cd2-44ad-9ad1-0eff5d8a6ef1 <xacml:Policy xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os” PolicyId="public_2d8346b8-5cd2-44ad-9ad1-0eff5d8a6ef1” RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1">.* /09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI The Simplified Policy Language resource ".*" { action ".*" { rule deny { subject="CN=Valery Tschopp, O=SWITCH,C=CH" } Use Case: User Banning (SPL) 1420/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Actions and Resources are identified by unique ID or “names”, that are assigned to them – Typically URIs, but any string will work Resource ID example: Action ID example: SPL: Identifying Actions and Resources 1520/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Subject in a policy can be identified via the following attributes: subject X509 certificate DN subject="CN=Valery Tschopp,O=SWITCH,C=CH” ca the CA certificate DN ca="CN=INFN CA,O=INFN,C=IT” vo the name of the Virtual Organization vo=”cms” fqan a VOMS fully qualified attribute name fqan=”/atlas/analysis” pfqan the VOMS primary FQAN pfqan=”/atlas/Role=pilot” SPL: Identifying Subjects 1620/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI AND logic for attributes inside a block Policy order matters! – First match algorithm SPL Syntax 1720/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon resource { action { rule (permit|deny) { =... }... }... resource { action { rule (permit|deny) { =... }... }...
EMI INFSO-RI We have two CEs at our site, ce_1 and ce_2. We want to authorize Valery to contact one, but not the other. SPL Examples 1820/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon resource “ce_1” { action “.*” { rule permit { subject = “CN=Valery Tschopp, O=SWITCH, C=CH” } resource “ce_2” { action “.*” { rule deny { subject = “CN=Valery Tschopp, O=SWITCH, C=CH” } resource “ce_1” { action “.*” { rule permit { subject = “CN=Valery Tschopp, O=SWITCH, C=CH” } resource “ce_2” { action “.*” { rule deny { subject = “CN=Valery Tschopp, O=SWITCH, C=CH” }
EMI INFSO-RI We have to ban all users member of VO ‘dteam’ from ce_1, but not those who have certificate signed by the INFA CA. SPL Examples (cont.) 1920/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon resource “ce_1” { action “.*” { rule permit { vo = “dteam” ca = “CN=INFN CA,O=INFN,C=IT” } rule deny { vo = “dteam” } resource “ce_1” { action “.*” { rule permit { vo = “dteam” ca = “CN=INFN CA,O=INFN,C=IT” } rule deny { vo = “dteam” }
EMI INFSO-RI List currently active policies: pap-admin list-policies Import policies from a SPL file: pap-admin add-policy-from-file cms_policies.spl.txt Ban/unban users: pap-admin ban subject "CN=John Doe,O=ACME,C=org” pap-admin unban vo ”atlas“ Add a generic permit policy pap-admin add-policy --resource “ --action “.*” permit fqan=”/atlas/production” The pap-admin Tool 20/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon 20
EMI INFSO-RI Hierarchical Policy Distribution 20/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon 21
EMI INFSO-RI The pilot is authorized on the CE The payload is downloaded on the WN gLExec runs it under the end-user identity Pilot Jobs Authorization 2220/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI A single authorization point for many Grid services A simple, flexible and powerful language to express authorization policies A simple tool to manage complex policies A policy distribution mechanism that allow to import from remote sites while keeping full authorization control on local resources (global banning) So Why Argus Simplifies my Life? 2320/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Argus – Compatible with gLite 3.2 Argus PEP client libraries (C and Java) – Support for LFC/DPM banning engine – Bug fixes Already released in EMI-1 and in UMD Argus 1.4 coming soon (3 rd week of Sept.) – Only optimizations (log files, memory, …) Argus Releases 2420/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI General documentation Service Reference Card PAP admin Tool Simplified Policy Language Documentation 2520/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI GGUS Tickets (ARGUS Support Unit) Support mailing list (e-group): Support 2620/09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon
EMI INFSO-RI Thank you EMI is partially funded by the European Commission under Grant Agreement INFSO-RI /09/2011 Argus Policies in Action, EGI Technical Forum 2011, Lyon