GithubHelp home page GithubHelp logo

hexa-org / policy-orchestrator Goto Github PK

View Code? Open in Web Editor NEW
92.0 7.0 16.0 4.31 MB

Hexa Policy Orchestrator enables you to manage all of your access policies consistently across software providers.

Home Page: https://hexaorchestration.org/

License: Apache License 2.0

Shell 100.00%
security cloud-native policy-as-code

policy-orchestrator's Introduction

Table of Contents

hexa-logo

Hexa Policy Orchestrator

Build results Go Report Card codecov CodeQL

Hexa Policy Orchestrator enables you to manage all of your policies consistently across software providers so that you can unify access policy management. The below diagram describes the current provider architecture.

Hexa Provider Architecture

Getting Started

The Hexa project contains two applications, and demonstrates use of applications from Policy-Opa

  • Policy Orchestrator with policy translations
  • Demo Policy Administrator
  • Demo web application (Policy-OPA)
  • Hexa OPA Server and Bundle Server (Policy-OPA)

To get started with running these, clone or download the codebase from GitHub to your local machine:

cd $HOME/workspace # or similar
git clone [email protected]:hexa-org/policy-orchestrator.git

Prerequisites

Install the following dependencies.

Task: Build the Hexa Orchestrator image

Build a Hexa Orchestrator image

cd demo
sh ./build.sh

Task: Run the Policy Orchestrator

Run all the applications with Docker Compose from within the demo directory

On Apple Silicon M1 (and M2) ARM

DOCKER_DEFAULT_PLATFORM=linux/amd64 docker-compose up

Others

docker-compose up

NOTE:

Assuming previous execution of the "setup" script above, this task may be run from anywhere in the repository as pkg build.

Application Descriptions

Docker runs the following applications:

  • hexa-orchestrator

    Runs on localhost:8885. The main application service that manages IDQL policy across various platforms and communicates with the various platform interfaces, converting IDQL policy to and from the respective platform types.

  • hexa-admin-ui

    Runs on localhost:8884. An example web application user-interface demonstrating the latest interactions with the policy orchestrator.

  • hexa-industry-demo-app

    Runs on localhost:8886. A demo web application used to highlight enforcing of both coarse and fine-grained policy. The application integrates with platform authentication/authorization proxies, Google IAP for example, for coarse-grained access and the Open Policy Agent (OPA) for fine-grained policy access.

  • Hexa-OPA-Agent

    Runs on localhost:8887. A Hexa extended Open Policy Agent (OPA) server used to demonstrate fine-grained policy management. IDQL policy is represented as data and interpreted by the Rego expression language.

  • hexa-opaBundle-server

    Runs on localhost:8889. An OPA HTTP Bundle server from which the OPA server can download policy bundles configured by Hexa-Orchestrator. See OPA bundles for more info.

Example Workflow

Fine-grained policy management with OPA.

Using the hexa-admin-ui application available via docker-compose, upload an OPA integration configuration file. The file describes the location of the IDQL policy. An example integration configuration file may be found in deployments/opa-server/example.

Once configured, IDQL policy for the hexa-demo application can be modified on the Applications page. The hexa-admin communicates the changes to the hexa-orchestrator, or "Policy Management Point (PMP)", which then updates the hexa-demo-config bundle server, making the updated policy available to the OPA server.

OPA, the "Policy Decision Point (PDP)", periodically reads config from the hexa-demo-config bundle server and allows or denies access requests based on the IDQL policy. Decision enforcement is handled within the hexa-demo application or "Policy Enforcement Point (PEP)".

The Hexa Demo architecture may be visualized as follows:

Hexa Demo Architecture

Getting involved

Take a look at our product backlog where we maintain a fresh supply of good first issues. In addition to enhancement requests, feel free to post any bugs you may find.

Here are a few additional resources for those interested in contributing to the Hexa project:

This repository also includes documentation for the current demo deployment infrastructure.

The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.