Apache Airavata Custos Security

Clone this repo:
  1. b764f79 AMIE traffic simulation with mock server to have both success and failure scenarios by lahiruj · 4 weeks ago master
  2. b9cd7b8 updated the AMIE metrics grafana dashboards to reflect the time range selections by lahiruj · 5 weeks ago
  3. 9dbbc9e add Prometheus metrics, health indicator, instrument poller/worker, and structured JSON logging for prod and MDC packet correlation by lahiruj · 5 weeks ago
  4. 4bc34b0 add eventId to handler interface and audit logging to packet handlers by lahiruj · 5 weeks ago
  5. 006377e add audit log table and service for handler actions tracking by lahiruj · 5 weeks ago

Apache Airavata Custos

License GitHub closed pull requests Build Status

Custos is a multi-tenant security middleware for science gateways, developed under the Apache Airavata umbrella. It provides identity and access management, credential storage, federated authentication, and resource allocation services to science gateway frameworks through a language-independent API. Custos is designed as a set of composable product components that can be deployed independently or together, built on a scalable architecture to deliver highly available, fault-tolerant operations.

Project website

Components

Identity Server (identity/)

The Identity Server is the core IAM component of Custos. It handles user identity and access management, tenant profile management, resource secrets management, and groups and sharing management. Built with Java 17 and Spring Boot, it integrates with Keycloak for federated authentication, HashiCorp Vault for secrets management, and MariaDB for persistence.

ModuleDescription
identity/coreDomain entities, repositories, protobuf definitions, mappers
identity/servicesBusiness logic, Keycloak and Vault integrations
identity/apiREST API controllers
identity/applicationSpring Boot entry point

See identity/README.md for setup and development instructions.

Allocations (allocations/)

The Allocations component provides meta-allocation authority services for HPC and cloud resources. It acts as a bridge between Custos-managed tenants and external resource allocation providers.

ModuleDescription
allocations/access-ci-serviceACCESS CI AMIE packet adapter

Additional allocation adapters for other resource providers are planned. See allocations/README.md for details as they become available.

Repository Layout

airavata-custos/
├── identity/          # Identity Server
├── allocations/       # Allocation management and usage
├── compose/           # Docker Compose for local development
├── deployment/        # Terraform configurations (AWS)
├── legacy/            # Archived modules (not actively maintained)
└── pom.xml            # Root Maven reactor

Prerequisites

  • Java 17
  • Maven 3.6+
  • Docker and Docker Compose

Quick Start

Clone the repository:

git clone https://github.com/apache/airavata-custos.git
cd airavata-custos

Start the backing services (Keycloak, MariaDB, Vault, Adminer):

cd compose
docker compose up -d

Build all components:

mvn clean install

Refer to each component's README for detailed configuration and run instructions.

Questions or Need Help?

  • Open a GitHub issue
  • Subscribe to the Custos mailing list: custos-subscribe@airavata.apache.org

Publications

@inproceedings{10.1145/3311790.3396635,
author = {Ranawaka, Isuru and Marru, Suresh and Graham, Juleen and Bisht, Aarushi and Basney, Jim and Fleury, Terry and Gaynor, Jeff and Wannipurage, Dimuthu and Christie, Marcus and Mahmoud, Alexandru and Afgan, Enis and Pierce, Marlon},
title = {Custos: Security Middleware for Science Gateways},
year = {2020},
isbn = {9781450366892},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3311790.3396635},
doi = {10.1145/3311790.3396635},
booktitle = {Practice and Experience in Advanced Research Computing},
pages = {278–284},
numpages = {7},
location = {Portland, OR, USA},
series = {PEARC '20}
}
@inproceedings{10.1145/3491418.3535177,
author = {Ranawaka, Isuru and Goonasekara, Nuwan and Afgan, Enis and Basney, Jim and Marru, Suresh and Pierce, Marlon},
title = {Custos Secrets: A Service for Managing User-Provided Resource Credential Secrets for Science Gateways},
year = {2022},
isbn = {9781450391610},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3491418.3535177},
doi = {10.1145/3491418.3535177},
booktitle = {Practice and Experience in Advanced Research Computing},
articleno = {40},
numpages = {4},
location = {Boston, MA, USA},
series = {PEARC '22}
}

Acknowledgment

This project is funded by the National Science Foundation (NSF).

We are grateful to Trusted CI for conducting the First Principles Vulnerability Assessment (FPVA) for this software and providing security architecture guidance and improvements.