Skip to content

ctrlplane/pilot

Repository files navigation

pilot

pilot is a key provider middleware (KPM) that can be used alongside your existing container tooling to add OCI-compliant container image layer encryption and decryption capabilties. pilot can also be deployed to production environments to provide on-pull image decryption by sending requests to copilot to retrieve key encryption keys (KEKs) from your key management system (KMS).

pilot is compatible with any tools or runtimes that leverage the ocicrypt keyprovider protocol. Currently, these include:

Status

pilot CI CodeQL

Quick Start

To run with podman:

podman run -d --network=host quay.io/ctrlplane/pilot:latest

(Using host mode is the easiest way to connect to copilot on localhost; otherwise change the baseUrl in the configuration)

NOTE: pilot cannot currently be run standalone. You must have an instance of copilot running to service key requests. See this page for instructions.

Building from source

From the top level of the repository:

$ mvn clean package

A successful build should output something like:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.979 s
[INFO] Finished at: 2022-05-02T20:33:57-04:00
[INFO] ------------------------------------------------------------------------

This will create an executable .jar file in the target directory.

Key Encryption

For more detailed information about container image encryption, see the ocicrypt reposiroty. pilot provides key wrapping, or key encryption, which protects the the symetric keys created during the encryption of each image layer.

Currently, pilot supports the following key encryption strategies:

  • AES256-GCM Symmetric Encryption

License

Copyright © 2022, Control Plane Software, LLC. Released under the GPL-3.0 License.

Releases

No releases published

Contributors 5