Encryption: Extend secrets service to support registering key providers (#40626)
* Draft adding kms providers * Rename defaultProvider to currentProvider * Add getting current provider from config * Remove comments * Make current provider service struct field * Add methods to secrets service * Test getting current provider * Implements missing methods for fake secrets service * Remove accidental changes * Fix linter issue * Update configuration examples * Rename CurrentProvider method * Split service interface * Update wire Co-authored-by: spinillos <selenepinillos@gmail.com>
This commit is contained in:
@@ -36,14 +36,15 @@ func ProvideSecretsService(store secrets.Store, bus bus.Bus, enc encryption.Serv
|
||||
providers := map[string]secrets.Provider{
|
||||
defaultProvider: grafana.New(settings, enc),
|
||||
}
|
||||
currentProvider := settings.KeyValue("security", "encryption_provider").MustString(defaultProvider)
|
||||
|
||||
s := &SecretsService{
|
||||
store: store,
|
||||
bus: bus,
|
||||
enc: enc,
|
||||
settings: settings,
|
||||
currentProvider: defaultProvider,
|
||||
providers: providers,
|
||||
currentProvider: currentProvider,
|
||||
dataKeyCache: make(map[string]dataKeyCacheItem),
|
||||
}
|
||||
|
||||
@@ -257,3 +258,15 @@ func (s *SecretsService) dataKey(ctx context.Context, name string) ([]byte, erro
|
||||
|
||||
return decrypted, nil
|
||||
}
|
||||
|
||||
func (s *SecretsService) RegisterProvider(providerID string, provider secrets.Provider) {
|
||||
s.providers[providerID] = provider
|
||||
}
|
||||
|
||||
func (s *SecretsService) CurrentProviderID() string {
|
||||
return s.currentProvider
|
||||
}
|
||||
|
||||
func (s *SecretsService) GetProviders() map[string]secrets.Provider {
|
||||
return s.providers
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user