Giter Club home page Giter Club logo

connaisseur's Introduction

License: Apache-2.0 Artifact Hub pipeline status nightly-build codecov OpenSSF Scorecard

A Kubernetes admission controller to integrate container image signature verification and trust pinning into a cluster.

๐Ÿ‘‰ The full documentation is available here ๐Ÿ“–

๐Ÿ‘‰ Feel free to reach out via GitHub Discussions ๐Ÿ’ฌ

What is Connaisseur?

Connaisseur ensures integrity and provenance of container images in a Kubernetes cluster. To do so, it intercepts resource creation or update requests sent to the Kubernetes cluster, identifies all container images and verifies their signatures against pre-configured public keys. Based on the result, it either accepts or denies those requests.

Connaisseur is developed under three core values: Security, Usability, Compatibility. It is built to be extendable and currently aims to support the following signing solutions:

It provides several additional features:

Quick start

Getting started to verify image signatures is only a matter of minutes:

โš ๏ธ Only try this out on a test cluster as deployments with unsigned images will be blocked. โš ๏ธ

Connaisseur comes pre-configured with public keys for its own repository and Docker's official images (official images can be found here). It can be fully configured via helm/values.yaml. For a quick start, clone the Connaisseur repository:

git clone https://github.com/sse-secure-systems/connaisseur.git

Next, install Connaisseur via Helm:

helm install connaisseur helm --atomic --create-namespace --namespace connaisseur

Once installation has finished, you are good to go. Successful verification can be tested via official Docker images like hello-world:

kubectl run hello-world --image=docker.io/hello-world

Or our signed testimage:

kubectl run demo --image=docker.io/securesystemsengineering/testimage:signed

Both will return pod/<name> created. However, when trying to deploy an unsigned image:

kubectl run demo --image=docker.io/securesystemsengineering/testimage:unsigned

Connaisseur denies the request and returns an error (...) Unable to find signed digest (...). Since the images above are signed using Docker Content Trust, you can inspect the trust data using docker trust inspect --pretty <image-name>.

To uninstall Connaisseur use:

helm uninstall connaisseur --namespace connaisseur

Congrats ๐ŸŽ‰ you just validated the first images in your cluster! To get started configuring and verifying your own images and signatures, please follow our setup guide.

Discussions, support & feedback

We hope to steer development of Connaisseur from demand of the community, are excited about your feedback and happy to help if you need support! So feel free to connect with us via GitHub Discussions.

Contributing

We are always excited about direct contributions to improve the tool! Please refer to our contributing guide to learn how to contribute to Connaisseur.

Security policy

We are grateful for any community support reporting vulnerabilities! How to submit a report is described in our Security Policy.

Wall of fame

Thanks to all the fine people directly contributing commits/PRs to Connaisseur:

Big shout-out also to all who support the project via issues, discussions and feature requests ๐Ÿ™

Contact

You can reach us via email under [email protected].

connaisseur's People

Contributors

dependabot[bot] avatar xopham avatar starkteetje avatar phbelitz avatar annekebr avatar hsuchan avatar sf-jmarcou avatar sunnoy avatar chgl avatar youssefazrak avatar tluimes avatar richgerrard avatar pcallewaert avatar peterthomassen avatar pflaeging avatar mkilchhofer avatar marckn0x avatar lpercetti avatar operatorequals avatar ial32 avatar funkypenguin avatar

Watchers

 avatar

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.