cloudnative-pg / cloudnative-pg/plugin-barman-cloud

[Request] - support encrypt files before pushing to object store

Open
#911 3 comments 5 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
191
Forks
72
Avg merge
1d 16h
Merged PRs (30d)
18

Description

As best as I can tell, the only [options for tuning encryption](https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#EncryptionType) are 'passed through' to the underlying `s3` (or compatible) API calls.

If it turns out that I'm wrong on that one, please let me know!

My question/request: allow use of symmetric encryption _before_ the files leave the host and are sent off to the object store.

I think this could be as straight forward as passing in a key/cypher to the [underlying archiver](https://github.com/cloudnative-pg/plugin-barman-cloud/blob/9be87b0d9c87c0df7f1f72caa33bf848fbc16582/internal/cnpgi/common/wal.go#L147)

The motivation: not all object stores support "BYO" key for bucket encryption and even if they do, you're still required to hand the sensitive key material off to the remote backend so that it can encrypt things for you. One of the simplest ways to address this is to encrypt objects before they're ever off the host.
Symmetric encryption is sufficient for "at rest, I need to know that I truly am the only person that can read it" needs.

Contributor guide

Open the contributing guide

Research direction

Start with the EncryptionType API and internal/cnpgi/common/wal.go at the linked archiver call. Trace how WAL files are handed to the archiver and how encryption options reach the object-store API; done requires a defined symmetric-encryption configuration and verified protection before upload.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cloud, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.