【问题标题】:best way to provide / deploy config ini file with sensitive data and pip提供/部署带有敏感数据和 pip 的配置 ini 文件的最佳方法
【发布时间】:2018-06-23 16:32:48
【问题描述】:

我想为我的 python 包提供一个配置 ini 文件,该文件将保存敏感的数据库凭据。我如何提供将安装的默认配置文件,比如说在 /etc/config 文件夹下?使用 pip 安装的软件包部署此类配置文件的最佳做法是什么?我不喜欢将此配置文件与其他软件包文件一起保留。

谢谢!

【问题讨论】:

  • 凭据敏感这一事实有什么相关性?
  • 我见过项目默认使用SQLite,将配置文件复制到主目录,然后让用户配置更高的数据库。否则可能使用带有用户输入的 CLI?
  • 我猜如果配置文件中的数据不敏感,可以将其留在用户主目录中。最好的做法是将其保存在 /etc/ 等安全的地方,这样具有正常权限的用户就无法看到/更改它

标签: python pip config configuration-files


【解决方案1】:

我刚刚检查了流行的 python 项目是如何完成的。

django 创建一个配置文件,该文件允许指向另一个带有数据库连接详细信息的配置文件,存储在不同的位置: https://docs.djangoproject.com/en/2.0/ref/databases/#connecting-to-the-database

flask 和气流在用户主文件夹下创建默认配置,但随后允许使用环境变量覆盖配置文件的位置。配置文件存储敏感数据,例如数据库连接或密钥: http://flask.pocoo.org/docs/0.12/config/#configuring-from-files https://airflow.apache.org/configuration.html

这两种方法都允许: 1)分发默认配置文件并使用包安装轻松部署 2) 允许将敏感配置值存储在安全文件夹中

airflow 还允许使用密钥加密数据库连接字符串。

另请参阅下面的这篇文章以及有关如何部署/存储配置文件的一些想法: https://stackoverflow.com/a/22554594/473725

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2022-01-14
    • 2011-05-17
    • 2011-12-12
    相关资源
    最近更新 更多