{ "info": { "author": "Chris Tippett", "author_email": "chris@spoon.nz", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "SSM Parameter Store\n=============================================================\n\n[![PyPI version](https://img.shields.io/pypi/v/ssm-parameter-store.svg)](https://pypi.python.org/pypi/ssm-parameter-store)\n[![Build status](https://img.shields.io/travis/christippett/ssm-parameter-store.svg)](https://travis-ci.org/christippett/ssm-parameter-store)\n[![Coverage](https://img.shields.io/coveralls/github/christippett/ssm-parameter-store.svg)](https://coveralls.io/github/christippett/ssm-parameter-store?branch=master)\n[![Python versions](https://img.shields.io/pypi/pyversions/ssm-parameter-store.svg)](https://pypi.python.org/pypi/ssm-parameter-store)\n[![Github license](https://img.shields.io/github/license/christippett/ssm-parameter-store.svg)](https://github.com/christippett/ssm-parameter-store)\n\nDescription\n===========\n\nThis is a simple Python wrapper for getting values from AWS Systems Manager\nParameter Store.\n\nThe module supports getting a single parameter, multiple parameters or all parameters matching a particular path.\n\nAll parameters are returned as a Python `dict`.\n\nInstallation\n============\n\nInstall with `pip`:\n\n``` bash\npip install ssm-parameter-store\n```\n\nUsage\n=====\n\nImport the module and create a new instance of `EC2ParameterStore`.\n\n```python\nfrom ssm_parameter_store import EC2ParameterStore\n\nstore = EC2ParameterStore()\n```\n\nAWS Credentials\n---------------\n\n`ssm-parameter-store` uses `boto3` under the hood and therefore inherits\nthe same mechanism for looking up AWS credentials. See [configuring\ncredentials](https://boto3.readthedocs.io/en/latest/guide/configuration.html#configuring-credentials)\nin the Boto 3 documentation for more information.\n\n`EC2ParameterStore` accepts all `boto3` client parameters as keyword arguments.\n\nFor example:\n\n``` python\nfrom ssm_parameter_store import EC2ParameterStore\n\nstore = EC2ParameterStore(\n aws_access_key_id=ACCESS_KEY,\n aws_secret_access_key=SECRET_KEY,\n aws_session_token=SESSION_TOKEN, # optional\n region_name='us-west-2'\n)\n```\n\nExamples\n========\n\nGiven the following parameters:\n\n``` bash\n# set default AWS region\nAWS_DEFAULT_REGION=us-west-2\n\n# add parameters\naws ssm put-parameter --name \"param1\" --value \"value1\" --type SecureString\naws ssm put-parameter --name \"param2\" --value \"value2\" --type SecureString\n\n# add parameters organised by hierarchy\naws ssm put-parameter --name \"/dev/app/secret\" --value \"dev_secret\" --type SecureString\naws ssm put-parameter --name \"/dev/db/postgres_username\" --value \"dev_username\" --type SecureString\naws ssm put-parameter --name \"/dev/db/postgres_password\" --value \"dev_password\" --type SecureString\naws ssm put-parameter --name \"/prod/app/secret\" --value \"prod_secret\" --type SecureString\naws ssm put-parameter --name \"/prod/db/postgres_username\" --value \"prod_username\" --type SecureString\naws ssm put-parameter --name \"/prod/db/postgres_password\" --value \"prod_password\" --type SecureString\n```\n\n\nGet a single parameter\n----------------------\n\n``` python\nparameter = store.get_parameter('param1', decrypt=True)\n\nassert parameter == {\n 'param1': 'value1'\n}\n```\n\nGet multiple parameters\n-----------------------\n\n``` python\nparameters = store.get_parameters(['param1', 'param2'])\n\nassert parameters == {\n 'param1': 'value1',\n 'param2': 'value2',\n}\n```\n\nGet parameters by path\n----------------------\n\n``` python\nparameters = store.get_parameters_by_path('/dev/', recursive=True)\n\nassert parameters == {\n 'secret': 'dev_secret',\n 'postgres_username': 'dev_username',\n 'postgres_password': 'dev_password',\n}\n```\n\nBy default `get_parameters_by_path` strips the path from each parameter name. To return a parameter's full name, set `strip_path` to `False`.\n\n``` python\nparameters = store.get_parameters_by_path('/dev/', strip_path=False, recursive=True)\n\nassert parameters == {\n '/dev/app/secret': 'dev_secret',\n '/dev/db/postgres_username': 'dev_username',\n '/dev/db/postgres_password': 'dev_password'\n}\n```\n\nGet parameters with original hierarchy\n--------------------------------------\nYou can also get parameters by path, but in a nested structure that models the path hierarchy.\n\n``` python\nparameters = store.get_parameters_with_hierarchy('/dev/')\n\nassert parameters == {\n 'app': {\n 'secret': 'dev_secret',\n },\n 'db': {\n 'postgres_username': 'dev_username',\n 'postgres_password': 'dev_password',\n },\n}\n```\n\nBy default `get_parameters_with_hierarchy` strips the leading path component. To return the selected parameters\nwith the full hierarchy, set `strip_path` to `False`.\n\n``` python\nparameters = store.get_parameters_with_hierarchy('/dev/', strip_path=False)\n\nassert parameters == {\n 'dev': {\n 'app': {\n 'secret': 'dev_secret',\n },\n 'db': {\n 'postgres_username': 'dev_username',\n 'postgres_password': 'dev_password',\n },\n },\n}\n```\n\n\nPopulating Environment Variables\n================================\n\nThe module includes a static method on `EC2ParameterStore` to help populate environment variables. This can be helpful when integrating with a library like [`django-environ`](https://github.com/joke2k/django-environ).\n\nExample\n-------\nGiven the following parameters:\n\n```bash\naws ssm put-parameter --name \"/prod/django/SECRET_KEY\" --value \"-$y_^@69bm69+z!fawbdf=h_10+zjzfwr8_c=$$&j@-%p$%ct^\" --type SecureString\naws ssm put-parameter --name \"/prod/django/DATABASE_URL\" --value \"psql://user:pass@db-prod.xyz123.us-west-2.rds.amazonaws.com:5432/db\" --type SecureString\naws ssm put-parameter --name \"/prod/django/REDIS_URL\" --value \"redis://redis-prod.edc1ba.0001.usw2.cache.amazonaws.com:6379\" --type SecureString\n```\n\n```python\nimport environ\nfrom ssm_parameter_store import EC2ParameterStore\n\nenv = environ.Env(\n DEBUG=(bool, False)\n)\n\n# Get parameters and populate os.environ (region not required if AWS_DEFAULT_REGION environment variable set)\nparameter_store = EC2ParameterStore(region_name='us-west-2')\ndjango_parameters = parameter_store.get_parameters_by_path('/prod/django/', strip_path=True)\nEC2ParameterStore.set_env(django_parameters)\n\n# False if not in os.environ\nDEBUG = env('DEBUG')\n\n# Raises django's ImproperlyConfigured exception if SECRET_KEY not in os.environ\nSECRET_KEY = env('SECRET_KEY')\n\nDATABASES = {\n # read os.environ['DATABASE_URL'] and raises ImproperlyConfigured exception if not found\n 'default': env.db(),\n}\n\nCACHES = {\n 'default': env.cache('REDIS_URL'),\n}\n```\n\nRelated Projects\n================\n\n- **[param-store](https://github.com/LabD/python-param-store)** \u2013 \nPython module to store secrets in secret stores\n- **[ssm-cache](https://github.com/alexcasalboni/ssm-cache-python)** \u2013\nAWS System Manager Parameter Store caching client for Python\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/christippett/ssm-parameter-store", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ssm-parameter-store", "package_url": "https://pypi.org/project/ssm-parameter-store/", "platform": "", "project_url": "https://pypi.org/project/ssm-parameter-store/", "project_urls": { "Homepage": "http://github.com/christippett/ssm-parameter-store" }, "release_url": "https://pypi.org/project/ssm-parameter-store/19.5.0/", "requires_dist": [ "boto3" ], "requires_python": "", "summary": "Simple Python wrapper for getting values from AWS Systems Manager Parameter Store", "version": "19.5.0" }, "last_serial": 5260715, "releases": { "18.7.3": [ { "comment_text": "", "digests": { "md5": "e68fe5bcae820615abd837d119ff792a", "sha256": "10710309ba8b3f4afee3b952e9fda3ae59073a131cccc72c315b79c60aaec495" }, "downloads": -1, "filename": "ssm_parameter_store-18.7.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e68fe5bcae820615abd837d119ff792a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3489, "upload_time": "2018-07-08T08:10:29", "url": "https://files.pythonhosted.org/packages/45/42/fa2b41370378e6d9386608c474f83ea6d956c6b9955cce4a13d35bb25211/ssm_parameter_store-18.7.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c962e2938948f53c9fe6b05f9e8c9dc", "sha256": "eb5118aa8b5cd067d0fa72f44776dc2be61f7050357c7ff986f1be89705a7d45" }, "downloads": -1, "filename": "ssm-parameter-store-18.7.3.tar.gz", "has_sig": false, "md5_digest": "1c962e2938948f53c9fe6b05f9e8c9dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6008, "upload_time": "2018-07-08T08:10:30", "url": "https://files.pythonhosted.org/packages/50/c8/106d34063be69de5cb162d4b9d102e188e4b678ebe845d745a9d6c31bc32/ssm-parameter-store-18.7.3.tar.gz" } ], "18.7.4": [ { "comment_text": "", "digests": { "md5": "7c28f28a09849dbd80c8ca13f987b4b3", "sha256": "a7d96571b332ff08bf1e8e73c2613fdbf2689e1a8024b9a8710e43faf0248ac9" }, "downloads": -1, "filename": "ssm_parameter_store-18.7.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7c28f28a09849dbd80c8ca13f987b4b3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4441, "upload_time": "2018-07-08T09:38:25", "url": "https://files.pythonhosted.org/packages/3c/4f/79b8c4ec41108c1f8b1d8528b73d79571c168ed3689375caa6c345d772e1/ssm_parameter_store-18.7.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af099f8f0ff098361fca6d497dbc2abe", "sha256": "6d893bb68d5ca340f01321a8e95ca58e059d058ec203101f158ad8fc20a5be9e" }, "downloads": -1, "filename": "ssm-parameter-store-18.7.4.tar.gz", "has_sig": false, "md5_digest": "af099f8f0ff098361fca6d497dbc2abe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7880, "upload_time": "2018-07-08T09:38:26", "url": "https://files.pythonhosted.org/packages/9d/49/7f00e905d62a64d98488f0b7517d4518c644ed17c051bc0f5a70b10a01f0/ssm-parameter-store-18.7.4.tar.gz" } ], "18.7.5": [ { "comment_text": "", "digests": { "md5": "10dd59da81cbc2fe3f3ba4e7508c9757", "sha256": "2c18150775fa1a1db672b0cf8e64a8b84baeff85bfc41b093e69b6f7f9bb4b3f" }, "downloads": -1, "filename": "ssm_parameter_store-18.7.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "10dd59da81cbc2fe3f3ba4e7508c9757", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4547, "upload_time": "2018-07-08T09:56:05", "url": "https://files.pythonhosted.org/packages/14/8e/33769656364f9216d1a7a8319d039c8fafc83036b88c7ba8b472945e862f/ssm_parameter_store-18.7.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d95907417a7bde6a91e0416649eb64a0", "sha256": "f5a4058fd7a8f450ca4220ce3d0cc5228210c399b41de76a98c913ed5cad8a63" }, "downloads": -1, "filename": "ssm-parameter-store-18.7.5.tar.gz", "has_sig": false, "md5_digest": "d95907417a7bde6a91e0416649eb64a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8029, "upload_time": "2018-07-08T09:56:06", "url": "https://files.pythonhosted.org/packages/41/0d/876ab88c9316081884b0fc52ec0e7aa18cc73cbbd65dfe82db1d8f2137a0/ssm-parameter-store-18.7.5.tar.gz" } ], "18.7.6": [ { "comment_text": "", "digests": { "md5": "0e50f8b213c12e5c1e94184d04b39bbc", "sha256": "ddc650caabaeb5487447cdc19621a48d776ddc7e00d5c0d3ffc5cc3c6505f046" }, "downloads": -1, "filename": "ssm_parameter_store-18.7.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e50f8b213c12e5c1e94184d04b39bbc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4551, "upload_time": "2018-07-08T11:56:18", "url": "https://files.pythonhosted.org/packages/ca/87/62c84305c77ba566969ccaca47f824f6a585c02fcc66194069e0130c56d5/ssm_parameter_store-18.7.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3ecb064d722f8404e1e10d7da71bc41", "sha256": "12f46a729d0fda823bc26c0ffa271d71ac8df0d449c153a8635d0747e9e02826" }, "downloads": -1, "filename": "ssm-parameter-store-18.7.6.tar.gz", "has_sig": false, "md5_digest": "a3ecb064d722f8404e1e10d7da71bc41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8032, "upload_time": "2018-07-08T11:56:19", "url": "https://files.pythonhosted.org/packages/ab/da/30956433f96c4ed7de196730db95871494d01affc5d9c00749f62af6c588/ssm-parameter-store-18.7.6.tar.gz" } ], "18.7.7": [ { "comment_text": "", "digests": { "md5": "b998ee579e35abb7d7f4c85a01fe87af", "sha256": "19826994b77330abc7933cb201981bf73a5615e7ee0276f5e9fd6bf27c1e8c9f" }, "downloads": -1, "filename": "ssm_parameter_store-18.7.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b998ee579e35abb7d7f4c85a01fe87af", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4573, "upload_time": "2018-07-08T13:23:15", "url": "https://files.pythonhosted.org/packages/40/44/d6fedb42641a06e242ea42de48d25ba850ddd07c237dd78b90c5faac11aa/ssm_parameter_store-18.7.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e0402ecc35ecf3503ac7bedb081661e", "sha256": "60a226ae260aff7e39cef04c1888d94d5bef4aa1030dbaa0ec871f8c0aad5a34" }, "downloads": -1, "filename": "ssm-parameter-store-18.7.7.tar.gz", "has_sig": false, "md5_digest": "0e0402ecc35ecf3503ac7bedb081661e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8095, "upload_time": "2018-07-08T13:23:16", "url": "https://files.pythonhosted.org/packages/9c/ed/a86925bc5f98e9d658321c6fbcf7621e3f53c1c2ccee1c68ca9f897155dd/ssm-parameter-store-18.7.7.tar.gz" } ], "19.5.0": [ { "comment_text": "", "digests": { "md5": "56f266f845a00f6cc5597854a640eaba", "sha256": "57957964d043215e3e2b2105aee6623e320aea2fe365baff198ae8e7e2749cbd" }, "downloads": -1, "filename": "ssm_parameter_store-19.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56f266f845a00f6cc5597854a640eaba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5849, "upload_time": "2019-05-13T05:39:09", "url": "https://files.pythonhosted.org/packages/4d/ff/e118825fb263182ab087bc589b903700bfead57584d4511baf5bc5a8c7ab/ssm_parameter_store-19.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7364dc7b8e84843993ecf41312b3aeff", "sha256": "e8407eaa3913dd16651252aa8ac36df7b6048c7202fc758b196a3202211d3cba" }, "downloads": -1, "filename": "ssm-parameter-store-19.5.0.tar.gz", "has_sig": false, "md5_digest": "7364dc7b8e84843993ecf41312b3aeff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8465, "upload_time": "2019-05-13T05:39:11", "url": "https://files.pythonhosted.org/packages/dd/b4/78e74d268d9751d57fc35fd611f417410bdadfede4cc4d25b5a3492e1844/ssm-parameter-store-19.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "56f266f845a00f6cc5597854a640eaba", "sha256": "57957964d043215e3e2b2105aee6623e320aea2fe365baff198ae8e7e2749cbd" }, "downloads": -1, "filename": "ssm_parameter_store-19.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56f266f845a00f6cc5597854a640eaba", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5849, "upload_time": "2019-05-13T05:39:09", "url": "https://files.pythonhosted.org/packages/4d/ff/e118825fb263182ab087bc589b903700bfead57584d4511baf5bc5a8c7ab/ssm_parameter_store-19.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7364dc7b8e84843993ecf41312b3aeff", "sha256": "e8407eaa3913dd16651252aa8ac36df7b6048c7202fc758b196a3202211d3cba" }, "downloads": -1, "filename": "ssm-parameter-store-19.5.0.tar.gz", "has_sig": false, "md5_digest": "7364dc7b8e84843993ecf41312b3aeff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8465, "upload_time": "2019-05-13T05:39:11", "url": "https://files.pythonhosted.org/packages/dd/b4/78e74d268d9751d57fc35fd611f417410bdadfede4cc4d25b5a3492e1844/ssm-parameter-store-19.5.0.tar.gz" } ] }