Django集中式环境变量服务
django-cenvars的Python项目详细描述
django cenvars
这是什么?
django cenvars是cenvars的参考实现,集中化 环境变量服务。cenvars描述一种机器 获取和设置存储在中央服务器上的环境变量。
它解决了什么问题?
在开发服务器端应用程序时,通常必须存储用户名和 与其他服务交互的密码。存储这些安全性 存储库中的敏感信息是一个巨大的风险,开发人员常常不得不 使用非版本化的机密文件或将其存储在 环境变量。这两种解决方案都提供了管理这些 数据点。Django Cenvars通过 只要求将cenvars连接详细信息存储在环境中。 所有其他变量都可以通过此服务解析。
协议
概述
对于加密,我们同时使用rsa和aes,对于aes,使用256位密钥,即 用2048位rsa密钥加密。 RSA是一个非对称密钥,解密密钥(私钥)由 客户端,而服务器使用加密密钥(公钥)。
在将“数据”发送到客户端之前,服务器将创建一个新的256位aes 钥匙。此密钥用于加密文本块,而不是使用 RSA加密密钥。生成的blob在
>;json dict>;zip>;aes encrypt>;
>;https://example.com/cenvars/?identifier=hexdigest <;blob
(这是 RSA密钥)。
警告
在架构中引入单点故障不应该是 轻率地进行,除非有一个集中的变量服务是有意义的 在您的设置中,我建议不要使用此服务。
库中使用的加密技术(rsa和aes)可以提供 原始文件数据意外泄漏的屏障,但是访问密钥是 最后存储在机器本身上,因此可以登录到 客户机将显示该计算机的所有环境变量。 对服务器进行登录访问将显示所有环境变量。
小心行事,事先警告并保持警惕,你正在把所有的鸡蛋 不过,这里只有一个篮子,除非你有另一种加密方法。 存储和注入环境变量,这将是一个很大的改进, 无论是安全还是管理。
如何安装?
$ pip install django-cenvars
我怎么用?
这是一个符合django integrator的项目,因此在设置文件中添加:
django_integrator.add_application('django_cenvars')
您还需要设置以下环境变量:
- CENVARS_URL
- CENVARS_KEY
cenvars_url是外部客户机可以连接到服务器的url 得到它的环境变量。
cenvars_密钥是用于加密 持久数据库。它可以通过以下命令生成:
python manage.py cenvars_newkey
这是什么执照?
双条款bsd
我怎样才能得到支持?
请使用repo的bug追踪器留下任何问题、反馈, 建议和意见。我会根据我的时间和外表来处理 很有趣。如果您需要担保支持,请通过 发电子邮件以便我们讨论适当的补偿。
签字
我的工作对你有帮助还是有价值?您可以通过以下方式来回报我:
https://paypal.me/MartinHellwig
-或-
https://www.patreon.com/hellwig
谢谢你!