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

[Feature request] Support for S3 SSE-C - Server-Side Encryption with Customer-provided keys

オープン
#646 コメント 8 件 リアクション 34 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Go
スター
191
フォーク
72
平均マージ
1日 16時間
マージ済み PR(30日)
18

説明

I'm using k3s on Hetzner Cloud (https://docs.hetzner.com/storage/object-storage/faq/general#what-configuration-and-security-features-are-currently-supported) and running a PostgreSQL cluster with cnpg. I tried to configure barman-cloud for automatic backups to Hetzner S3 storage, but it seems that this is only possible without encryption.

Currently, Hetzner S3 only supports SSE-C (which means you have to provide an encryption key). I don't really understand what the option `encryption: AES256` means in context of S3 encryption, but I assume for SSE-C there are more options required - at least for providing a secret containing the SSE-C key.

Any chance to get SSE-C support in barman-cloud? I've spend much time in securing my k8s setup (node encryption, pv encryption etc.) and storing plaintext backups in external storage makes this whole effort pointless 😞

BTW: if I just enable `encryption: ASE265`, barman-cloud fails with this log line:

````
{"level":"info","ts":"2025-11-06T19:57:05.717632266Z","logger":"barman-cloud-wal-archive","msg":"2025-11-06 19:57:05,717 [947] ERROR: Barman cloud WAL archiver exception: An error occurred (InvalidArgument) when calling the PutObject operation: None","pipe":"stderr","logging_pod":"my-pg-cluster-1"}
````

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

barman-cloud WAL archiver のエントリポイントから開始し、既存の `encryption: AES256` の処理を、レポートに示されている S3 `PutObject` 呼び出しまで追跡します。設定シークレットがどのように提供されているかを確認し、その後、関連するアップロードテストを特定するか、要求された SSE-C 入力のカバレッジを追加します。報告された S3 互換ストレージへの SSE-C アップロードが `InvalidArgument` エラーなしで動作すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
go, postgresql
領域
cloud, databases
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。