Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AWS SSM Parameter Store support #399

Open
alukach opened this issue Sep 11, 2024 · 0 comments
Open

Add AWS SSM Parameter Store support #399

alukach opened this issue Sep 11, 2024 · 0 comments
Assignees

Comments

@alukach
Copy link

alukach commented Sep 11, 2024

In #385, I added a code change to natively support retrieving configuration from the AWS Systems Manager Parameter Store. However, that was somewhat premature as support for such a feature had not yet been agreed upon.

This issue is to track support for that feature.

Background

From the product page:

AWS Systems Manager provides a centralized store to manage your configuration data, whether plain-text data such as database strings or secrets such as passwords. This allows you to separate your secrets and configuration data from your code. Parameters can be tagged and organized into hierarchies, helping you manage parameters more easily. For example, you can use the same parameter name, "db-string", with a different hierarchical path, "dev/db-string” or “prod/db-string", to store different values. Systems Manager is integrated with AWS Key Management Service (KMS), allowing you to automatically encrypt the data you store. You can also control user and resource access to parameters using AWS Identity and Access Management (IAM). Parameters can be referenced through other AWS services, such as Amazon ECS, AWS Lambda, and AWS CloudFormation.

It is similar to AWS Secrets Manager, with a few differences:

  • support for non-secret data (i.e. can make public parameters)
  • free storage & retrieval of parameters (for standard parameters)
  • makes greater use of a hierarchy of parameters which fits in well with nested parameters within Pydantic Settings (e.g. /app/prod/db/username and /app/prod/db/password could mape well to db: DbSettings)

Fit within Pydantic Settings

Given that we currently support Azure Key Vault settings source (#272) and have green-lighted support for AWS Secrets Manager (#175 (comment)), I think rounding out support with AWS SSM Parameter Store seems like a reasonable addition.

Will people use it?

I maintain a project to support for AWS SSM Parameter Store for Pydantic v1 (github, pypi). At time of writing, it has 19 stars on Github and PyPi stats reports the usage as such:

Downloads last day: 56
Downloads last week: 178
Downloads last month: 653

Not tremendously popular, but it is used by projects in the wild.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants