sops icon indicating copy to clipboard operation
sops copied to clipboard

Is sops open to adding support to more kms services?

Open shashn8 opened this issue 1 year ago • 3 comments

For my usecase, I developed an integration with Fortanix DSM for sops, tested it, it is a fully functional integration. Can I expect to get it merged to the main branch if I raise a PR and it gets reviewed, all before the end of this month?

shashn8 avatar Nov 16 '23 11:11 shashn8

We may accept it eventually if sufficient interest is shown, but we are reserved on this as it's another dependency and integration to maintain and uphold. Which means there has to be sufficient community interest, which takes time to gather (you are the first!)

Given this, the timeline you are expecting is not going to work in any case.

hiddeco avatar Nov 16 '23 23:11 hiddeco

I think at one point it would be good if we could have some kind of 'plugin architecture' which allows to support new KMS services without modifying sops itself. We're quite far from that point yet, though...

felixfontein avatar Nov 17 '23 17:11 felixfontein

Expect the plug-in mechanism to be introduced ASAP, I wrote a PoC to support a new KMS, I need to change so many files.

I noticed that this function has so many arguments:

func internalGroupFrom(kmsKeys []kmskey, pgpKeys []pgpkey, gcpKmsKeys []gcpkmskey, azkvKeys []azkvkey, vaultKeys []vaultkey, ageKeys []agekey) (sops.KeyGroup, error) {

Consider involve a independent process plugin mechanism, which like age-plugin: https://github.com/C2SP/C2SP/blob/main/age-plugin.md

When I add s new KMS support, I changed the following files:

	modified:   cmd/sops/main.go
	modified:   config/config.go
	modified:   decrypt/decrypt.go
	modified:   go.mod
	modified:   go.sum
	modified:   keyservice/keyservice.go
	modified:   keyservice/keyservice.pb.go
	modified:   keyservice/keyservice.proto
	modified:   keyservice/server.go
	modified:   sops.go
	modified:   stores/stores.go

jht5945 avatar Dec 01 '23 03:12 jht5945