reanahub / reana-auth-vomsproxy

REANA VOMS proxy authenticator
http://www.reana.io
MIT License
0 stars 23 forks source link

user-side VOMS proxy file generation #16

Closed tiborsimko closed 1 year ago

tiborsimko commented 2 years ago

Currently, REANA offers an optional feature to access remote storage resources based on VOMS proxy authentication. This requires to upload a lot of information as user secrets:

$ reana-client secrets-add \
      --file userkey.pem \
      --file usercert.pem \
      --env VOMSPROXY_PASS=aaabbbccc111222333 \
      --env VONAME=escape

Whilst this is acceptable for controlled REANA cluster deployments, such as single-user deployments on researchers' laptops, it may be unacceptable for multi-user deployments, where uploading user keys as Kubernetes secrets could create a security vulnerability due to possible access by cluster administrators.

For the latter multi-user deployment conditions, we should rely more heavily on the VOMS proxy creation logic to be done on the client-side rather than doing everything on the cluster side. For example:

  1. Researchers generate VOMS proxy files locally by themselves using voms-proxy-init as for other non-REANA services.
  2. reana-client secrets-add uploads only the generated VOMS proxy file without further user certificates or pass phrases.
  3. reana-auth-vomsproxy sidecar would read and expose the uploaded proxy file secret without having to generate anything by itself.

In this way, the users wouldn't have to share more secrets with the cluster beyond the VO name and the VO proxy file, since the VO proxy initialisation business would be carried out on the client-side rather than on the cluster-side. This would address the security concerns at the price of having to manually regenerate the VO proxy files for each new workflow run after the validity window expires.