秘密分发工具,作为credstash上的包装器编写

razorpay.alohomora的Python项目详细描述


https://travis-ci.com/razorpay/alohomora.svg?token=qzqszeBhnN4z5pes5mg9&branch=master

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 }}

此回购协议直接在同一模板上运行,并生成 作为输出的等效文件。

它遵循的步骤如下:

  1. 找出要从中读取的表。所有的秘密都存储在 credstash-env-appdynamodb中的表结构。
  2. 使用credstash从该表获取所有机密
  3. 使用jinja呈现包含机密的模板

它是怎么工作的?

alohomora希望任何应用程序的机密都存储在 名为credstash-{env}-{app}的表。此表的IAM角色 必须由您配置。一旦你试图渲染一个模板,alohomora 将执行以下操作:

  1. 读取整个表并解密所有机密并在本地缓存它们。
  2. 使用这些文件和3个额外变量呈现模板:envapp,和ENV变量。

ENV与jinja模板中的os.environ相同。

配置?

alohomora被设计为零配置解决方案。

我们对传递的参数执行一些转换:

  • appenv更改为小写
  • env名称中的production替换为prod
  • 忽略环境中-之后的任何内容。所以beta-birdie变成beta

用法

请参阅有关alohomora二进制用法的wiki。

许可证

alohomora与credstash在同一许可下发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何用新列表替换ListView的列表   swing Java JFrame布局   java JNativehook未捕获密码   java JPA仅获取一级关联   java KeyListener是否停止使用动作或鼠标Listener?   shell如何在Ubuntu中安装java   java如何通过使用会话检索数据来跳过空值。冬眠   java如何在jsp中获取列表   java Android仅在位置(0,0)上缩放,而不是在整个图像上缩放   Java for循环格式化控制台   协议缓冲区Protobuf Java不区分大小写映射?   java模拟对象,并将它们分配给方法中的实例和静态变量   java是否可以在执行时看到对对象的所有引用?   wcf Java客户端和InstanceContextMode   java我在XMLGregorianCalendar中的“20170526T04:08:00.000+05:30”中有一个日期,我需要将其转换为20170526T04:08:00.000z   java如何让两个小程序共享字段   java保留CSS注释而不修改YUI压缩器中的内容   java Android(Kotlin)具有非字符串基元类型的双向数据绑定   Java swing:warning组合框是原始类型。对泛型类型JComboBox<E>的引用应参数化