Class: Hiera::Backend::Secrets_manager_backend
- Inherits:
-
Object
- Object
- Hiera::Backend::Secrets_manager_backend
- Defined in:
- lib/hiera/backend/secrets_manager_backend.rb
Instance Method Summary collapse
-
#initialize ⇒ Secrets_manager_backend
constructor
A new instance of Secrets_manager_backend.
- #lookup(key, scope, order_override, resolution_type) ⇒ Object
Constructor Details
#initialize ⇒ Secrets_manager_backend
Returns a new instance of Secrets_manager_backend.
4 5 6 7 8 |
# File 'lib/hiera/backend/secrets_manager_backend.rb', line 4 def initialize require 'aws-sdk-secretsmanager' @config = Config @client = create_client end |
Instance Method Details
#lookup(key, scope, order_override, resolution_type) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/hiera/backend/secrets_manager_backend.rb', line 10 def lookup(key, scope, order_override, resolution_type) answer = nil if @client.nil? Hiera.debug('Key lookup failed. AWS Secrets Manager backend is in a bad state.') return answer end if contains_illegal_characters?(key) Hiera.debug("#{key} contains illegal characters. Skipping lookup.") return answer end key_to_query = format_key(key, scope, Config[:secrets_manager]) begin answer = @client.get_secret_value(secret_id: key_to_query)['secret_string'] rescue Aws::SecretsManager::Errors::ResourceNotFoundException => error Hiera.debug("#{key} not found: #{error.}") rescue StandardError => error Hiera.debug("AWS Secrets Manager Error: #{error}") end answer end |