跳转到主要内容

简单获取您的辛苦获得的秘密

项目描述

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 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面