SlideShare a Scribd company logo
1 of 28
Download to read offline
Setup Min.io and Open Policy Agent for
a multi-purpose scientific platform
D. Ciangottini, INFN
stackconf-2021 $ > whoami
● IT Researcher at Istituto Nazionale di Fisica
Nucleare (INFN)
○ Translated: National Institute of Nuclear Physics
● Involved on R&D activities to deploy cloud-native
solutions for the next-gen of data analysis
infrastructure for the INFN/LHC users
2
INFN community
3
The 5
research lines
and the National
Scientific
Committee
4
One of the main scientific challenges
understand the Universe in the first moments after the Big Ban
5
A community of
over 6,000
people
~ 25% of them have PhD grants,
post-doc scholarships and research
grants
6
INFN
facilities
Computing @INFN
Long tradition supporting experiments
For last 10 years, that was meant for supporting LHC
communities.
Quickly widening to many other use cases recently.
7
On-demand computing resources
for the INFN communities
● Easy access to on-demand solutions for scientific data analysis
● Composable services to extend and customize the environment
● Provide INFN users with a set of core tools centrally managed
○ E.g. JupyterHub-aaS, object storage, sync&share ....
● Federating the resources from several centers at national level
● Becoming the hub of reference for most of the activities and projects @ INFN
8
The INFN-Cloud initiative
The INFN-Cloud infrastructure
A backbone composed by the main
computing centers for central services
+ a federation of smaller sites
providing resources for user deployments
9
Computing challenges
Data storage for multiple communities
Providing a cloud storage hosted on the backbone infrastructure means:
● Geo-distributed storage federation
● Heterogeneous set of requirements
○ Object size (few MBs, to 10s GBs)
○ Workflow (imaging, columnar analysis...) and data access (posix, webdav, s3 etc..)
but it also means providing the tools:
● “F.A.I.R.” data
○ Findable, Accessible, Interoperable, Reusable
○ Make it intuitive or eventually transparent for the end user
● Focus on the “R.”! Allow sustainable reuse of data
10
Wrapping up...
Requirements
● Dynamic user registration/acls integrated with Indigo-IAM/OIDC
● Fine grain authz (ro, rw, per file/per user group )
● Easy and robust ops
○ gitOps eventually
● Accessible via posix
● WebUI access
● Vendor neutral
● Open source
11
Quick look to the solution
The components
● Minio has been chosen as the cloud
storage solution
○ S3 compliance
○ Powerful WebUI
○ Proven scalability
● Native integration with AWS STS
credentials
○ External OIDC IdP’s (e.g. Indigo IAM)
● Support for customizable authZ
policies with OpenPolicyAgent
12
User management
Indigo-IAM
● Authentication via SAML IdPs or identity
federations, OpenID Connect providers
and X.509 certificates
● Enrollment and registration
functionalities
○ so that users can join groups/collaborations
according to well-defined flows
○ provides services to manage group
membership
○ attributes assignment and account linking
functionality
● Integrable as IdP with any OIDC
compliant service
13
Cloud storage AuthN:
AWS STS credentials
● Endpoint service that enables clients to request temporary credentials for MinIO
resources
● AWS AssumeRoleWithWebIdentity flow is supported out of the box
○ Allowing the integration with any OpenID Connect-compatible identity provider ⇒ our IAM service
14
Cloud storage AuthZ:
OpenPolicyAgent integration
● A lightweight general-purpose policy
engine that can be co-located with
Minio server
● OPA HTTP API used to authorize Minio
STS credentials
○ Fine grain ACLs
■ Every token claim from authN can be
selected for policy checking
○ Dynamic config
○ Decoupled from the storage configuration
Example of an e2e AuthZ flow
16
OPA server checks custom
policies for the input
API
Policy example
# Allow users to manage their own data.
allow {
username := split(lower(input.claims.email),"@")[0]
input.bucket == username
input.claims.aud == "minio-auth"
permissions := rl_permissions["user"]
p := permissions[_]
p == {"action": input.action}
}
Authorized
JWT
List of operation permissions defined on OPA
"claims": {
"accessKey": "VP43M6DO1N53U2LUBTZ3",
"aud": "https://wlcg.cern.ch/jwt/v1/any",
"client_id":
"5c38c020-b753-4115-a5f4-3f48595e4c1b",
"exp": "1621714730",
"iat": 1621713801,
"iss": "https://login.cloud.infn.it",
"scope": "openid profile email",
"email": “ciangottini@infn.it”
}
Minio STS auth data
Managing policies with OPA bundles
the gitOps way
● OPA can periodically download bundles
of policy and data from remote HTTP
servers
○ Allowing for a gitOps based policy
management
● The policies and data are loaded on the
fly without requiring a restart of OPA
○ Policies and data are then applied immediately
17
So far so good…
Let’s put the hands on some user tools now!
18
Managing temporary credentials:
OIDC-agent
● A set of tools to manage OpenID Connect access tokens and make them
easily usable from the command line
○ ssh-agent design, so users can handle OIDC tokens in a similar way as they do with ssh keys
● Secure sensible information (long living credentials) while exposing short lived
ones (e.g. access token)
● Integrable via API libraries for: python, go and c++
19
POSIX access:
RClone + OIDC-Agent integration
To provide posix access we make use of RClone mount capability
A small patch has been applied to add a dedicated S3 provider integrated with
OIDC-Agent
Users, once oidc-agent is configured on its VM, can then mount its own bucket as a
folder with no further actions/authentication steps.
Backups via Restic are enabled through the use of this patched version of RClone
20
Make it easier:
STS-wire
21
For cases where the user does not/cannot run oidc-agent:
● a tool has been created to manage both the credential renewal and the rclone
mount in a guided/integrated/opinionated way
We found that to be the preferred solution to mount a bucket content on a laptop
for instance.
What about python?
boto3+STS+OIDC-Agent = boto3STS
Access Minio bucket through the
integration of boto library with
temporary credentials
- AWS STS token via IAM
- IAM access token get via
oidc-agent API
Instantiate an S3 session with a simple
line of code
22
Nice stuff! So, how did you do that?
23
Deployment models
● Generic centrally maintained service for each INFN user
○ HA K8s cluster on infrastructure backbone
○ FluxCD for gitOps operations
○ Central repo for OPA bundles
● On-demand cloud storage
○ Deploy the solution for a dedicated experiment/group of people
○ On prem or public cloud k8s instance as the ONLY requirement
○ Helm chart configurable via WebUI thanks to Kubeapps
24
Central service
FluxCD cluster
management
+
OPA bundles
___________
Full gitOps control
25
Self-managed k8s
- Ansible to bring up Kubeapps pointing to the supported INFN Helm charts
- Catalogue of pre configured apps already included
- Minio-Operator to deploy a Minio Tenant with STS credentials and OPA server
- Specifying custom OPA bundles endpoints and other similar configurations
26
● In production supporting physics and not only
○ (e.g. pandemic related research P.L.A.N.E.T.)
R&D continues toward:
● testing/scaling multi-cloud
● improving tools dedicated to data access and reuse
● try out Minio gateway cache instances to reduce latency
27
Wrapping up:
Summary and plans
Quick demo
28

More Related Content

What's hot

Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Edureka!
 
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareAltinity Ltd
 
Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Orkhan Gasimov
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesMydbops
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareAltinity Ltd
 
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...Altinity Ltd
 
PostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesPostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesSean Chittenden
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Ltd
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
 
Hacking google cloud run
Hacking google cloud runHacking google cloud run
Hacking google cloud runAviv Laufer
 
Company and Market Overview
Company and Market OverviewCompany and Market Overview
Company and Market OverviewOkta-Inc
 
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic TrainingGCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic TrainingSimon Su
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google CloudPgDay.Seoul
 
F5 - BigIP ASM introduction
F5 - BigIP ASM introductionF5 - BigIP ASM introduction
F5 - BigIP ASM introductionJimmy Saigon
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniZalando Technology
 

What's hot (20)

Aruba Networks - Overview ClearPass
Aruba Networks - Overview ClearPassAruba Networks - Overview ClearPass
Aruba Networks - Overview ClearPass
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
 
PostgreSQL
PostgreSQL PostgreSQL
PostgreSQL
 
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, CloudflareClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
ClickHouse Mark Cache, by Mik Kocikowski, Cloudflare
 
Service Mesh - Why? How? What?
Service Mesh - Why? How? What?Service Mesh - Why? How? What?
Service Mesh - Why? How? What?
 
How to Design Indexes, Really
How to Design Indexes, ReallyHow to Design Indexes, Really
How to Design Indexes, Really
 
Evolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best PracticesEvolution of MongoDB Replicaset and Its Best Practices
Evolution of MongoDB Replicaset and Its Best Practices
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
 
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
ClickHouse and the Magic of Materialized Views, By Robert Hodges and Altinity...
 
PostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesPostgreSQL + ZFS best practices
PostgreSQL + ZFS best practices
 
Altinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouseAltinity Quickstart for ClickHouse
Altinity Quickstart for ClickHouse
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
Hacking google cloud run
Hacking google cloud runHacking google cloud run
Hacking google cloud run
 
Company and Market Overview
Company and Market OverviewCompany and Market Overview
Company and Market Overview
 
PostgreSQL Replication with Bucardo
PostgreSQL Replication with BucardoPostgreSQL Replication with Bucardo
PostgreSQL Replication with Bucardo
 
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic TrainingGCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
GCP - GCE, Cloud SQL, Cloud Storage, BigQuery Basic Training
 
[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud[pgday.Seoul 2022] PostgreSQL with Google Cloud
[pgday.Seoul 2022] PostgreSQL with Google Cloud
 
F5 - BigIP ASM introduction
F5 - BigIP ASM introductionF5 - BigIP ASM introduction
F5 - BigIP ASM introduction
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 

Similar to stackconf 2021 | Setup Min.io and Open Policy Agent for a multi purpose scientific platform

DDDP 2019 - Brown to Green
DDDP 2019  - Brown to GreenDDDP 2019  - Brown to Green
DDDP 2019 - Brown to GreenJohn Archer
 
Cloud Services On UI and Ideas for Federated Cloud on idREN
Cloud Services On UI and Ideas for Federated Cloud on idRENCloud Services On UI and Ideas for Federated Cloud on idREN
Cloud Services On UI and Ideas for Federated Cloud on idRENTonny Adhi Sabastian
 
Catania Science Gateway Framework
Catania Science Gateway FrameworkCatania Science Gateway Framework
Catania Science Gateway Frameworkriround
 
All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight Mark Hinkle
 
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMeshThe Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMeshIanFurlong4
 
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...IO Visor Project
 
Building Open Source Identity Infrastructures
Building Open Source Identity InfrastructuresBuilding Open Source Identity Infrastructures
Building Open Source Identity InfrastructuresMisagh Moayyed
 
Google's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT ServicesGoogle's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT ServicesIntel® Software
 
Day 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers ProgramDay 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers ProgramFIWARE
 
Federated Cloud Computing
Federated Cloud ComputingFederated Cloud Computing
Federated Cloud ComputingDavid Wallom
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStackSteve Martinelli
 
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...Miguel Pérez Colino
 
Cloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIs
Cloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIsCloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIs
Cloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIsNishant Kumar
 
DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...
DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...
DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...Deltares
 

Similar to stackconf 2021 | Setup Min.io and Open Policy Agent for a multi purpose scientific platform (20)

DDDP 2019 - Brown to Green
DDDP 2019  - Brown to GreenDDDP 2019  - Brown to Green
DDDP 2019 - Brown to Green
 
Cloud Services On UI and Ideas for Federated Cloud on idREN
Cloud Services On UI and Ideas for Federated Cloud on idRENCloud Services On UI and Ideas for Federated Cloud on idREN
Cloud Services On UI and Ideas for Federated Cloud on idREN
 
CTE Phase III
CTE Phase IIICTE Phase III
CTE Phase III
 
Catania Science Gateway Framework
Catania Science Gateway FrameworkCatania Science Gateway Framework
Catania Science Gateway Framework
 
All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight All Things Open SDN, NFV and Open Daylight
All Things Open SDN, NFV and Open Daylight
 
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMeshThe Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
The Enterprise Guide to Building a Data Mesh - Introducing SpecMesh
 
Finalpresentation
FinalpresentationFinalpresentation
Finalpresentation
 
Framework for IoT Interoperability
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT Interoperability
 
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
Using IO Visor to Secure Microservices Running on CloudFoundry [OpenStack Sum...
 
Building Open Source Identity Infrastructures
Building Open Source Identity InfrastructuresBuilding Open Source Identity Infrastructures
Building Open Source Identity Infrastructures
 
Google's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT ServicesGoogle's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT Services
 
OpenDaylight nluug_november
OpenDaylight nluug_novemberOpenDaylight nluug_november
OpenDaylight nluug_november
 
Cisco project ideas
Cisco   project ideasCisco   project ideas
Cisco project ideas
 
Day 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers ProgramDay 13 - Creating Data Processing Services | Train the Trainers Program
Day 13 - Creating Data Processing Services | Train the Trainers Program
 
Federated Cloud Computing
Federated Cloud ComputingFederated Cloud Computing
Federated Cloud Computing
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
 
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
 
Cloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIs
Cloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIsCloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIs
Cloud as a GIFT: Exploiting Personal Cloud Free Accounts via Rest APIs
 
Opensource tools for OpenStack IAAS
Opensource tools for OpenStack IAASOpensource tools for OpenStack IAAS
Opensource tools for OpenStack IAAS
 
DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...
DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...
DSD-INT 2016 Calibration and scenario generation of hydrodynamics and water -...
 

Recently uploaded

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 

stackconf 2021 | Setup Min.io and Open Policy Agent for a multi purpose scientific platform

  • 1. Setup Min.io and Open Policy Agent for a multi-purpose scientific platform D. Ciangottini, INFN
  • 2. stackconf-2021 $ > whoami ● IT Researcher at Istituto Nazionale di Fisica Nucleare (INFN) ○ Translated: National Institute of Nuclear Physics ● Involved on R&D activities to deploy cloud-native solutions for the next-gen of data analysis infrastructure for the INFN/LHC users 2
  • 3. INFN community 3 The 5 research lines and the National Scientific Committee
  • 4. 4 One of the main scientific challenges understand the Universe in the first moments after the Big Ban
  • 5. 5 A community of over 6,000 people ~ 25% of them have PhD grants, post-doc scholarships and research grants
  • 7. Computing @INFN Long tradition supporting experiments For last 10 years, that was meant for supporting LHC communities. Quickly widening to many other use cases recently. 7
  • 8. On-demand computing resources for the INFN communities ● Easy access to on-demand solutions for scientific data analysis ● Composable services to extend and customize the environment ● Provide INFN users with a set of core tools centrally managed ○ E.g. JupyterHub-aaS, object storage, sync&share .... ● Federating the resources from several centers at national level ● Becoming the hub of reference for most of the activities and projects @ INFN 8 The INFN-Cloud initiative
  • 9. The INFN-Cloud infrastructure A backbone composed by the main computing centers for central services + a federation of smaller sites providing resources for user deployments 9
  • 10. Computing challenges Data storage for multiple communities Providing a cloud storage hosted on the backbone infrastructure means: ● Geo-distributed storage federation ● Heterogeneous set of requirements ○ Object size (few MBs, to 10s GBs) ○ Workflow (imaging, columnar analysis...) and data access (posix, webdav, s3 etc..) but it also means providing the tools: ● “F.A.I.R.” data ○ Findable, Accessible, Interoperable, Reusable ○ Make it intuitive or eventually transparent for the end user ● Focus on the “R.”! Allow sustainable reuse of data 10
  • 11. Wrapping up... Requirements ● Dynamic user registration/acls integrated with Indigo-IAM/OIDC ● Fine grain authz (ro, rw, per file/per user group ) ● Easy and robust ops ○ gitOps eventually ● Accessible via posix ● WebUI access ● Vendor neutral ● Open source 11
  • 12. Quick look to the solution The components ● Minio has been chosen as the cloud storage solution ○ S3 compliance ○ Powerful WebUI ○ Proven scalability ● Native integration with AWS STS credentials ○ External OIDC IdP’s (e.g. Indigo IAM) ● Support for customizable authZ policies with OpenPolicyAgent 12
  • 13. User management Indigo-IAM ● Authentication via SAML IdPs or identity federations, OpenID Connect providers and X.509 certificates ● Enrollment and registration functionalities ○ so that users can join groups/collaborations according to well-defined flows ○ provides services to manage group membership ○ attributes assignment and account linking functionality ● Integrable as IdP with any OIDC compliant service 13
  • 14. Cloud storage AuthN: AWS STS credentials ● Endpoint service that enables clients to request temporary credentials for MinIO resources ● AWS AssumeRoleWithWebIdentity flow is supported out of the box ○ Allowing the integration with any OpenID Connect-compatible identity provider ⇒ our IAM service 14
  • 15. Cloud storage AuthZ: OpenPolicyAgent integration ● A lightweight general-purpose policy engine that can be co-located with Minio server ● OPA HTTP API used to authorize Minio STS credentials ○ Fine grain ACLs ■ Every token claim from authN can be selected for policy checking ○ Dynamic config ○ Decoupled from the storage configuration
  • 16. Example of an e2e AuthZ flow 16 OPA server checks custom policies for the input API Policy example # Allow users to manage their own data. allow { username := split(lower(input.claims.email),"@")[0] input.bucket == username input.claims.aud == "minio-auth" permissions := rl_permissions["user"] p := permissions[_] p == {"action": input.action} } Authorized JWT List of operation permissions defined on OPA "claims": { "accessKey": "VP43M6DO1N53U2LUBTZ3", "aud": "https://wlcg.cern.ch/jwt/v1/any", "client_id": "5c38c020-b753-4115-a5f4-3f48595e4c1b", "exp": "1621714730", "iat": 1621713801, "iss": "https://login.cloud.infn.it", "scope": "openid profile email", "email": “ciangottini@infn.it” } Minio STS auth data
  • 17. Managing policies with OPA bundles the gitOps way ● OPA can periodically download bundles of policy and data from remote HTTP servers ○ Allowing for a gitOps based policy management ● The policies and data are loaded on the fly without requiring a restart of OPA ○ Policies and data are then applied immediately 17
  • 18. So far so good… Let’s put the hands on some user tools now! 18
  • 19. Managing temporary credentials: OIDC-agent ● A set of tools to manage OpenID Connect access tokens and make them easily usable from the command line ○ ssh-agent design, so users can handle OIDC tokens in a similar way as they do with ssh keys ● Secure sensible information (long living credentials) while exposing short lived ones (e.g. access token) ● Integrable via API libraries for: python, go and c++ 19
  • 20. POSIX access: RClone + OIDC-Agent integration To provide posix access we make use of RClone mount capability A small patch has been applied to add a dedicated S3 provider integrated with OIDC-Agent Users, once oidc-agent is configured on its VM, can then mount its own bucket as a folder with no further actions/authentication steps. Backups via Restic are enabled through the use of this patched version of RClone 20
  • 21. Make it easier: STS-wire 21 For cases where the user does not/cannot run oidc-agent: ● a tool has been created to manage both the credential renewal and the rclone mount in a guided/integrated/opinionated way We found that to be the preferred solution to mount a bucket content on a laptop for instance.
  • 22. What about python? boto3+STS+OIDC-Agent = boto3STS Access Minio bucket through the integration of boto library with temporary credentials - AWS STS token via IAM - IAM access token get via oidc-agent API Instantiate an S3 session with a simple line of code 22
  • 23. Nice stuff! So, how did you do that? 23
  • 24. Deployment models ● Generic centrally maintained service for each INFN user ○ HA K8s cluster on infrastructure backbone ○ FluxCD for gitOps operations ○ Central repo for OPA bundles ● On-demand cloud storage ○ Deploy the solution for a dedicated experiment/group of people ○ On prem or public cloud k8s instance as the ONLY requirement ○ Helm chart configurable via WebUI thanks to Kubeapps 24
  • 25. Central service FluxCD cluster management + OPA bundles ___________ Full gitOps control 25
  • 26. Self-managed k8s - Ansible to bring up Kubeapps pointing to the supported INFN Helm charts - Catalogue of pre configured apps already included - Minio-Operator to deploy a Minio Tenant with STS credentials and OPA server - Specifying custom OPA bundles endpoints and other similar configurations 26
  • 27. ● In production supporting physics and not only ○ (e.g. pandemic related research P.L.A.N.E.T.) R&D continues toward: ● testing/scaling multi-cloud ● improving tools dedicated to data access and reuse ● try out Minio gateway cache instances to reduce latency 27 Wrapping up: Summary and plans