Giter Club home page Giter Club logo

voucher's Introduction

Tests Go Report Card

voucher

Table of Contents

Introduction

Voucher is the missing piece in the binary authorization toolchain which enables you to secure your software supply pipeline. Binary authorization uses an admission controller such as Kritis, which pulls information about a container image from a metadata server such as Grafeas to ensure that the image is not deployed to production unless it has passed an appropriate suite of checks. As running checks on containers during deployment is time consuming and prevents rapid rollout of changes, the checks the admission controller utilizes to verify an image is ready for production should be run at build time. Voucher does exactly that.

Voucher was designed to be called from your CI/CD pipeline, after an image is built, but before that image is deployed to production. Voucher pulls the newly built image from your image registry; runs it through all of the checks that were requested, and generates attestations for every check that the image passes. Those attestations (OpenPGP signatures of container digests) are then pushed to the metadata server, where Kritis can verify them.

Voucher presently includes the following checks:

Test Name Description
diy Can the image be downloaded from our container registry?
nobody Was the image built to run as a user who is not root?
snakeoil Is the image free of known security issues?
provenance Was the image built by us or a trusted system?
approved Did the source code for the image pass all required checks in the code repository?

As well as the following dynamic check:

Test Name Description
is_<org name> Did the source for this image come from the passed organization (for example, is_shopify)

Note that provenance and the dynamic checks require the prescence of build metadata in your metadata store. While unsigned metadata is valid, to ensure that you are trusting metadata that hasn't been forged, it is recommended that you use signed metadata as well.

Voucher Server, Subscriber, and Client

This repository contains three tools:

  • Voucher Server: intended to run in your infrastructure to respond to CI/CD pipeline requests.
  • Voucher Subscriber: a program that accepts image creation pub/sub messages from GCR, and automatically vouches the images referenced in those messages. This program doesn't respond to any client requests.
  • Voucher Client: an example of a Voucher API client that you can use directly in your CI/CD pipeline or as a basis for your own code. The client connects to a Voucher Server.

Contributing

Please refer to the Contributing document if you are interested in contributing to voucher!

Community

Please join voucher-users for announcements and discussions.

voucher's People

Contributors

actgardner avatar anthonyho007 avatar aysylu avatar catherinejones avatar chrisshino avatar clintonshopify avatar dani-santos-code avatar epk avatar genevieveluyt avatar henrybell avatar itsmewiththeface avatar jacobmichels avatar klautcomputing avatar lynnsh avatar nilay-shah avatar ooq avatar owen-cummings avatar owencraston avatar rxbchen avatar sudojimmy avatar sujaisd avatar thepwagner 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.