EMI is partially funded by the European Commission under Grant Agreement RI Argus Policies Tutorial Valery Tschopp (SWITCH) – Argus Product Team EGI CF Manchester
EMI INFSO-RI Goal of the tutorial – Present the Argus service – Explain the authorization policies Authorizing VOs, pilot jobs… Banning users Demo – Job submission through CREAM/gLExec using Argus authorization – Banning a user payload in a pilot job Argus Tutorial 11/04/2013EGI CF 2013, Manchester2
EMI INFSO-RI What is authorization? Authorization EGI CF 2013, Manchester11/04/20133
EMI INFSO-RI Can user X perform action Y on resource Z ? Authorization EGI CF 2013, Manchester11/04/20134
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 EGI CF 2013, Manchester11/04/20135
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 EGI CF 2013, Manchester11/04/20136
EMI INFSO-RI A generic authorization system – Built on top of a XACML policy engine – Renders consistent authorization decisions based on XACML policies Argus Authorization Service EGI CF 2013, Manchester11/04/20137
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 EGI CF 2013, Manchester11/04/20138
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 EGI CF 2013, Manchester11/04/20139
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 EGI CF 2013, Manchester11/04/201310
EMI INFSO-RI Argus is designed to answer the questions: – Can user X performs action Y on resource Z? – Is user X banned? PERMIT decision – Allow to authorize users to perform an action on a resource DENY decision – Allow to ban users Both can be expressed with XACML policies Authorization Policies EGI CF 2013, Manchester11/04/201311
EMI INFSO-RI * 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">.*... Authorization Policies (XACML) EGI CF 2013, Manchester11/04/201312
EMI INFSO-RI Problem? – XACML not easy to read and/or understand – XACML not easy to write, prone to error Solution – Hide the XACML language complexity – Introduce a Simplified Policy Language (SPL) – Provide administrators with simple tool to manage the policies pap-admin to create, edit, delete permit/deny policy rules Authorization Policies EGI CF 2013, Manchester11/04/201313
EMI INFSO-RI Deny (ban) a particular user by DN resource ".*" { action ".*" { rule deny { subject=”CN=Valery Tschopp, O=SWITCH, C=CH" } } Permit ATLAS users (VO) to execute a job on a worker node (WN) resource " { action " { rule permit { vo=“atlas" } } Simplified Policy Language (SPL) EGI CF 2013, Manchester11/04/201314
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 examples: Identifying Resources and Actions EGI CF 2013, Manchester11/04/201315
EMI INFSO-RI Subject in a policy can be identified via the following attributes: subject X509 certificate DN (RFC2253 format): subject="CN=Valery Tschopp,O=SWITCH,C=CH” ca the CA certificate DN (RFC2253 format): 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” Identifying Subjects EGI CF 2013, Manchester11/04/201316
EMI INFSO-RI AND logic for attributes inside a block Policy order matters: First match algorithm SPL Syntax resource { action { rule (permit|deny) { =... }... }... resource { action { rule (permit|deny) { =... }... }... EGI CF 2013, Manchester11/04/201317
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 Example 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” } EGI CF 2013, Manchester11/04/201318
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 Example (cont.) 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” } EGI CF 2013, Manchester11/04/201319
EMI INFSO-RI Administrator tool to manage the PAP – Policies management – PAP server management – PAP authorization management Simple way to ban user Simple way to create, edit and delete authorization policies Tool pap-admin EGI CF 2013, Manchester11/04/201320
EMI INFSO-RI List currently active policies: pap-admin list-policies Ban/unban users: pap-admin ban subject "CN=John Doe,O=ACME,C=org” pap-admin un-ban vo ”atlas“ Add a generic permit policy: pap-admin add-policy \ --resource “ \ --action “.*” \ permit fqan=”/atlas/production” And a lot more functionalites… Tool pap-admin (cont.) EGI CF 2013, Manchester11/04/201321
EMI INFSO-RI Site Deployment EGI CF 2013, Manchester11/04/201322
EMI INFSO-RI Hierarchical Policy Distribution EGI CF 2013, Manchester11/04/201323
EMI INFSO-RI Top PAP – Manages global banning list – Have to be trusted by site Site PAP – Retrieves global banning list from top PAP – Merges it on top of local policies – FIRST MATCH rules applies in local PDP Hierarchical Policy Distribution EGI CF 2013, Manchester11/04/201324
EMI INFSO-RI Add the WLCG PAP pap-admin apap WLCG argus.cern.ch \ "/DC=ch/DC=cern/OU=computers/CN=argus.cern.ch” Set PAP order (top banning) pap-admin spo WLCG default Enable the banning WLCG PAP pap-admin epap WLCG List all policies (WLCG and local ones) pap-admin lp -all Enable WLCG Global Banning EGI CF 2013, Manchester11/04/201325
EMI INFSO-RI General documentation ationFramework ationFramework PAP admin CLIhttps://twiki.cern.ch/twiki/bin/view/EGEE/AuthZ PAPCLIhttps://twiki.cern.ch/twiki/bin/view/EGEE/AuthZ PAPCLI Simplified Policy Language dPolicyLanguage dPolicyLanguage Service Reference Card Documentation EGI CF 2013, Manchester11/04/201326
EMI INFSO-RI GGUS Tickets (ARGUS support unit) Support mailing list (e-group): Support and Help EGI CF 2013, Manchester11/04/201327
EMI INFSO-RI DEMO EGI CF 2013, Manchester11/04/201328
EMI INFSO-RI EMI UI CREAM CE Argus Service gLExec WN Demo Setup: emitestbed EGI CF 2013, Manchester11/04/201329
EMI INFSO-RI Policies authorized jobs on CREAM CE and for gLExec on the WN for a VO Demo Setup: Policies EGI CF 2013, Manchester11/04/ resource " { obligation " {} action ".*" { rule permit { vo="testers.eu-emi.eu" } } resource " { obligation " {} action ".*" { rule permit { vo="testers.eu-emi.eu" } } resource " { obligation " {} action ".*" { rule permit { vo="testers.eu-emi.eu" } } resource " { obligation " {} action ".*" { rule permit { vo="testers.eu-emi.eu" } }
EMI INFSO-RI Argus node site-info.def Demo Setup: Argus YAIM Config EGI CF 2013, Manchester11/04/ # The Argus hostname ARGUS_HOST=emitestbed45.cnaf.infn.it # The DN of a trusted PAP administrator PAP_ADMIN_DN="/C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Danilo Nicola Dongiovanni" # Local mapping configuration USERS_CONF=/root/siteinfo/users.conf GROUPS_CONF=/root/siteinfo/groups.conf # Space separated list of VOs supported by your site VOS="testers.eu-emi.eu" # The Argus hostname ARGUS_HOST=emitestbed45.cnaf.infn.it # The DN of a trusted PAP administrator PAP_ADMIN_DN="/C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Danilo Nicola Dongiovanni" # Local mapping configuration USERS_CONF=/root/siteinfo/users.conf GROUPS_CONF=/root/siteinfo/groups.conf # Space separated list of VOs supported by your site VOS="testers.eu-emi.eu"
EMI INFSO-RI CREAM CE site-info.def Enables Argus authorizations Demo Setup: CREAM YAIM Config EGI CF 2013, Manchester11/04/ CEMON_HOST=emitestbed59.cnaf.infn.it CREAM_DB_USER=tester CREAM_DB_PASSWORD=**** BLPARSER_HOST=emitestbed59.cnaf.infn.it... USE_ARGUS=yes ARGUS_PEPD_ENDPOINTS= CREAM_PEPC_RESOURCEID= CEMON_HOST=emitestbed59.cnaf.infn.it CREAM_DB_USER=tester CREAM_DB_PASSWORD=**** BLPARSER_HOST=emitestbed59.cnaf.infn.it... USE_ARGUS=yes ARGUS_PEPD_ENDPOINTS= CREAM_PEPC_RESOURCEID=
EMI INFSO-RI gLExec on the WN site-info.def Enables Argus authorizations Demo Setup: gLExec/WN YAIM EGI CF 2013, Manchester11/04/ GLEXEC_WN_OPMODE=setuid GLEXEC_WN_SCAS_ENABLED=no GLEXEC_WN_ARGUS_ENABLED=yes ARGUS_PEPD_ENDPOINTS= GLEXEC_WN_PEPC_RESOURCEID= GLEXEC_WN_OPMODE=setuid GLEXEC_WN_SCAS_ENABLED=no GLEXEC_WN_ARGUS_ENABLED=yes ARGUS_PEPD_ENDPOINTS= GLEXEC_WN_PEPC_RESOURCEID=
EMI INFSO-RI Demo: Pilot Job Authorization The pilot job is authorized on the CE The payload is downloaded on the WN gLExec executes it under the end-user identity EGI CF 2013, Manchester11/04/201334