简单获取您的辛苦获得的秘密
项目描述
SecretFinder 🕵️
您的应用程序是否在多个地方存储过秘密?有些是环境变量,其他则在第三方提供者(如AWS SSM、AWS Secrets Manager、Hashicorp Vault等)或任何其他数量位置。
如果在一个应用程序中因为各种原因有2个或3个,从这些位置提取可能会很令人沮丧。
Secret finder为您提供了一个从任何数量位置提取的秘密的单个统一API。
安装
pip install secretfinder
示例
环境变量
您可以从环境变量中轻松提取。这几乎是毫无用处的,因为您可以使用os.getenv
,但它有其用途。
from secretfinder import SecretsEnv, providers
env = SecretsEnv(providers=providers.EnvironmentVariable)
env.get('SOME_VAR', default='hello world')
AWS SSM
如果您正在使用AWS SSM来存储密钥或其他信息,有很多理由使用它。您可以看到它的工作方式与环境变量相同。
from secretfinder import SecretsEnv, providers
env = SecretsEnv(providers=providers.AWSSSM)
env.get('prod.moneymaker.db', default='hello world')
AWS Secrets Manager
如果您正在使用AWS Secrets Manager来存储秘密,可能是因为您想要自动轮换密码,那么您可以轻松使用它。
from secretfinder import SecretsEnv, providers
env = SecretsEnv(providers=providers.AWSSecretsManager)
env.get('prod.moneymaker.db', default='hello world')
这仍然支持有限,但它适用于其他文本秘密类型。这是一个待办事项,需要扩展。
AWS SSM和AWS Secrets Manager
您可能同时在SSM和Secret Manager中存储信息。您可能正在从其中一个迁移到另一个,或者您在每个中都有特定的信息以进行分离关注。
没有问题,您仍然可以使用类似的API。
from secretfinder import SecretsEnv, providers
env = SecretsEnv(providers=[providers.AWSSecretsManager, providers.AWSSSM])
env.get('prod.moneymaker.db', default='hello world')
这将遍历所有提供者,直到找到匹配项,或者返回默认值。
当它找不到提供者的值时,会记录日志并抛出警告。
HashiCorp Vault
即将推出
引发异常
在默认使用情况下,它只是返回默认值或None。然而,你可能希望它引发异常,以便在失败时停止执行。
在这种情况下,你可以使用raise_exception
关键字参数来引发异常。
from secretfinder import SecretsEnv, providers
env = SecretsEnv(providers=providers.AWSSecretsManager, raise_exception=True)
env.get('prod.moneymaker.db', default='hello world')
贡献
如果你想帮助扩展这项工作,请随时提交一个PR。添加更多提供者会很好,或者填写现有提供者的代码。
在本地测试aws
如果你正在使用aws并想在不同的配置文件下本地测试。以下是使它正常工作所需的方法。
$ AWS_PROFILE=somprofile AWS_DEFAULT_REGION=us-east-2 ipython
发布
pip install twine wheel setuptools
python setup.py sdist bdist_wheel
twine check dist/*
twine upload dist/*
变更日志
0.2.1
- 调整依赖关系以更具包容性。
0.2
- 由于拼写错误,已重命名类。🙄
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
secretfinder-0.2.1.tar.gz (3.7 kB 查看哈希)
构建分布
secretfinder-0.2.1-py3-none-any.whl (4.7 kB 查看哈希)
关闭
secretfinder-0.2.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c3a716e89726eb5dc48bdb878f26d47df417a42f90feaff65fe67557055987f5 |
|
MD5 | f625cbac4d12e54811bce65ce66a961a |
|
BLAKE2b-256 | 0036f25e88a09e0a4e687eac324f9f81bbb7a86c2abd34977e70076313a351c1 |
关闭
secretfinder-0.2.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ba1860b6d898ea660c804f8f545972ba79d996c58f9a2bb4485fb3f6ba8fe01d |
|
MD5 | f9422f7bb8b136e99f10baae5b19ff29 |
|
BLAKE2b-256 | 224896841a210ddd61904952b889a8dac093d2a5d04615ad14789532045b98fb |