Settings management using Pydantic and Amazon Web Services / Secrets Manager.
Install using pip install -U pydantic-settings-aws
.
You can create and manage your own secrets manager client or leave it to pydantic-settings-aws.
If you want to leave to pydantic-settings-aws to deal with boto3, you can either pass your credential information or leave it to boto3 to figure it out.
To check how boto3 will look for your configurations, check Configuring credentials.
import boto3
from pydantic_settings_aws import SecretsManagerBaseSettings
client = boto3.client("secretsmanager")
class AWSSecretsSettings(SecretsManagerBaseSettings):
model_config = SettingsConfigDict(
secrets_name="my/secret",
secrets_client=client
)
username: str
password: str
name: str | None = None
my_settings = AWSSecretsSettings()
And your secrets manager should be:
{
"username": "admin",
"password": "admin",
"name": "John"
}
class AWSSecretsSettings(SecretsManagerBaseSettings):
model_config = SettingsConfigDict(
secrets_name="my/secret",
aws_region="us-east-1",
aws_profile="dev"
)
username: str
password: str
class AWSSecretsSettings(SecretsManagerBaseSettings):
model_config = SettingsConfigDict(
secrets_name="my/secret",
aws_region="us-east-1",
aws_access_key_id="aws_access_key_id",
aws_secret_access_key="aws_secret_access_key",
aws_session_token="aws_session_token"
)
username: str
password: str
aws sso login --profile my-profile
class AWSSecretsSettings(SecretsManagerBaseSettings):
model_config = SettingsConfigDict(
secrets_name="my/secret"
)
username: str
password: str
This project is licensed under the terms of the MIT license.