秘密分发工具,作为credstash上的包装器编写
razorpay.alohomora的Python项目详细描述
Razorpay的秘密证书管理系统。
安装
alohomora通过pypi进行分发:
pip install razorpay.alohomora
什么?
alohomora是一个固执己见的项目,依赖于我们的惯例 在运行时智能地获取秘密。
我们不自己加密。我们依赖这些库:
这是模板文件在我们的应用程序中的外观 存储库:
# {{ alohomora_managed }} DB_PASSWORD = {{ lookup('db_password') }} APP_ENV = {{ env }} ENV_DEBUG = {{ ENV['DEBUG'] }} APP_NAME = {{ app }}
此回购协议直接在同一模板上运行,并生成 作为输出的等效文件。
它遵循的步骤如下:
- 找出要从中读取的表。所有的秘密都存储在 credstash-env-appdynamodb中的表结构。
- 使用credstash从该表获取所有机密
- 使用jinja呈现包含机密的模板
它是怎么工作的?
alohomora希望任何应用程序的机密都存储在 名为credstash-{env}-{app}的表。此表的IAM角色 必须由您配置。一旦你试图渲染一个模板,alohomora 将执行以下操作:
- 读取整个表并解密所有机密并在本地缓存它们。
- 使用这些文件和3个额外变量呈现模板:env, app,和ENV变量。
ENV与jinja模板中的os.environ相同。
配置?
alohomora被设计为零配置解决方案。
我们对传递的参数执行一些转换:
- 将app和env更改为小写
- 将env名称中的production替换为prod。
- 忽略环境中-之后的任何内容。所以beta-birdie变成beta
用法
请参阅有关alohomora二进制用法的wiki。
许可证
alohomora与credstash在同一许可下发布。