GithubHelp home page GithubHelp logo

soelangen / portainercc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from enclaive/portainercc

0.0 0.0 0.0 20.85 MB

Making confidential compute docker, docker swarm and kubernetes management simple

License: zlib License

Shell 0.47% JavaScript 24.11% C 0.01% Go 37.56% PowerShell 0.01% TypeScript 16.41% CSS 1.41% Makefile 0.03% HTML 19.79% Handlebars 0.01% CMake 0.06% Dockerfile 0.11% EJS 0.03%

portainercc's Introduction

Portainer.cc - Building and Deploying Runtime Encrypted Workloads leveraging Confidential Compute

Table of Contents

About The Project

In view of the ever increasing shift of applications to the cloud, new mechanisms need to be developed to protect the workload. In contrast to on-prem, physical resources are no more isolated in the cloud. Rather virtual machines, kubernetes clusters and serverless functions, share physical resources. Moreover, the resources are maintained by a third party known as the cloud provider who has root access to the resources. For decades it is well known that the application isolation provided by hypervisors and operating systems is weak. A vast amount of exploits have been demonstrated how to escapte the present security and trust model.

Confidential Computing, for short CC, is a new, promising technology addressing the problem. CC makes it for the very first time practically possible to encrypt data during runtime in such a way that only the CPU has access to it. This makes it possible to protect application code and data in the light of vertical and horizontal exploits.

Portainer.cc is a project extending the promiment community tool Portainer.io with confidential computing capabilities. to make it easy to run application-containers confidentially in the cloud. PortainerCC builds upon Gramine OS and Marblerun to run and remotely attest containerized Gramine-applications.

Features (v.0.1.0-beta)

Portainer.cc offers these features:

  • Build and deploy any application in an Intel SGX enclave supporting Gramine libOS Gramine
  • Key managmement for container authentication and file/volume encryption
  • Authenticated container provisioning of secrets, environment variables, files and keys supporting Marblerun
  • Example template to build, deploy and securely provision MariaDB

Getting Started

Prerequisites

For Portainer.cc to work, you need to make sure that all environments you want to use are Intel SGX compatible and can use Intel SGX Datacenter Attestation Primitives for Remote Attestation and meet these requirements:

Install Portainer.cc

To install Portainer.cc, run the following command:

docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock:z \
-v /var/run/docker.sock:/var/run/alternative.sock:z \
-v /tmp:/tmp \
-v pccdata:/data \
--name portainerCC \
marcely0/pcc

The Portainer.cc Image comes with some predefined confidential templates. You can mount your own templates with the following parameter when you start your Container:

-v ./temps.json:/confidential-templates.json 

How-Tos

You can check out some of the How-Tos:

Step by Step guide to set up PortainerCC with an PortainerCC Agent

Create a confidential Application for Portainer.cc

Remote Attestation and Secret Provisioning

Deprecated - Step by Step guide to run MariaDB in PortainerCC

Licence

Distributed under the zlib licence. See LICENCE for reference.

portainercc's People

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.