Skip to main content

A utility for resolving ssm parameters and secretsmanager secrets

Project description

ENV Resolver (Python)

This is a small utility to resolve SSM Parameters and Secretsmanager Secrets and conditionally set them in the environment.

This is helpful for services like AWS Batch or AWS Lambda where there is not a way natively to pass secret values.

Install

pip install env-resolver

This package assumes that you already depend on boto3 and have it installed as a dependency of your project. If you are using this package in AWS Lambda, boto3 will already be available.

Quick Start

Parameter Store

from parameter_resolver import resolve

# assuming you've created two parameters:
# ssm/parameter/env-one = val-one
# ssm/parameter/env-two = val-two

parameters = {
    'ENV_ONE': 'ssm/parameter/env-one',
    'ENV_TWO': 'ssm/parameter/env-two'
}

print(resolve('ssm', parameters))

# Outputs:
# {
#     'ENV_ONE': 'val-one',
#     'ENV_TWO': 'val-two'
# }

Secrets Manager

from parameter_resolver import resolve

# assuming you've created the following secret:
# secret/secret-one =
# {
#     'ENV_ONE': 'val-one',
#     'ENV_TWO': 'val-two'
# }

secret = {
    'secret_id': 'secret/secret-one'
}

print(resolve('secretsmanager', secret))

# Outputs:
# {
#     'ENV_ONE': 'val-one',
#     'ENV_TWO': 'val-two'
# }

Usage

resolve(parameter_type, parameter_value, set_environment_variables=True)

These are the possible values for parameter_type:

  • ssm
  • secretsmanager

Options

The set_environment_variables options allows you to choose whether or not to set the new key-value pairs in the environment.

SSM

For a parameter store parameter, resolve expects the parameter_value to be a dictionary of KEY: PARAMETER_NAME.

Secretsmanager

For a secretsmanager secret, resolve expects the parameter_value to be a dictionary with the following possible values:

secret = {
    'secret_id': 'string',
    'version_id': 'string', # optional
    'json_value': 'boolean' # option, default=True
}

Contributing

PR's are welcome!

This project uses Poetry for dependency / environment management.

Install Dependencies

poetry install

Tests

poetry run pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

env_resolver-0.1.7.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

env_resolver-0.1.7-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

Details for the file env_resolver-0.1.7.tar.gz.

File metadata

  • Download URL: env_resolver-0.1.7.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.3.0-1022-azure

File hashes

Hashes for env_resolver-0.1.7.tar.gz
Algorithm Hash digest
SHA256 ce3a150f8ba405af530678e28f5a712e1bef41b1672f61a23982acbf6c612cfa
MD5 97c54808d2264559cd195e0047826b49
BLAKE2b-256 066d2ef8e25eb1aae48ec9e64c2d41efde5cd1f01d243fa62488440e0ac48920

See more details on using hashes here.

File details

Details for the file env_resolver-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: env_resolver-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 2.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.3 Linux/5.3.0-1022-azure

File hashes

Hashes for env_resolver-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 95a45b488897f5fe3f193c3720d1cd040fb51c09db2cc319c551460433fd9c47
MD5 96a01c358048e7817b769c922936c25d
BLAKE2b-256 d80f04990821e3c805dcad58e7e786a5b3d832aa07c402a016b9269f88a238b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page