This gem is meant to fetch string and encrypted string parameters from AWS SSM and store them either in a file or in the local environment.
Ensure you have AWS access variables configured for use with the Ruby SDK, as defined in the V2 Ruby SDK Docs - http://docs.aws.amazon.com/sdkforruby/api/
Add this line to your application's Gemfile:
gem 'ssm_env'
And then execute:
$ bundle
Or install it yourself as:
$ gem install ssm_env
Output Values
ssm_env show -i "BRANCH_KEY,VACUUM_RATE"
ssm_env show -i ssm_param_names.yml
Synch your environment
ssm_env sync -i "BRANCH_KEY,VACUUM_RATE"
ssm_env sync -i ssm_param_names.yml
Store your environment
ssm_env save -p .env -i "BRANCH_KEY,VACUUM_RATE"
ssm_env save -p .env -i ssm_param_names.yml
ssm_env = SsmEnv.new.run(params_list: [BRANCH_KEY, VACUUM_LIMIT])
# Update the environment
ssm_env.to_env
# Store in a file
ssm_env.to_file('/tmp/my_vars.env')
# Fetch parameters from AWS SSM
param_names = [
"STRIPE_API_KEY",
"OTHER_SECRET_KEY",
]
# NOTE: You don't need to provide AWS credentials. You only need to give your EC2 server an Instance Role that allows SSM read access.
ssm_params = SsmEnv.fetch(params_list: param_names)
# Make parameters ENV variables
SsmEnv.to_env(ssm_params: ssm_params)
# Use the parameters through ENV variables in your Rails app
ENV['STRIPE_API_KEY']
# Fetch parameters from AWS SSM
param_names = [
"STRIPE_API_KEY",
"OTHER_SECRET_KEY",
]
# NOTE: you can provide access_key_id and secret_access_key for local development (you can use a gem such as dotenv to have these credentials in a .env file that is not committed to source code)
# You could also omit access_key_id and secret_access_key, but make sure they are exported in your ~/.profile as ENV variables
ssm_params = SsmEnv.fetch(
params_list: param_names,
access_key_id: ENV['LOCAL_DEV_AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['LOCAL_DEV_AWS_SECRET_ACCESS_KEY'])
# Make parameters ENV variables
SsmEnv.to_env(ssm_params: ssm_params)
# Use the parameters through ENV variables in your Rails app
ENV['STRIPE_API_KEY']
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/Everlance/ssm_env.