跳转到主要内容

一个轻量级的工具,可以轻松地对仓库中的机密进行加密/解密

项目描述

Secrets Tool

这是一个小工具,可以帮助加密必须提交到Git仓库的机密。

它具有原生支持YAML文件部分加密的优势。这非常有用,因为它允许在文件内容加密的情况下查看YAML文件结构(你的PR审查员和diff工具会感谢你)

先决条件

  • Python >= 3.7
  • 安装以下包: pip install ruamel.yaml cryptography

用法

该工具从.gitignore文件中读取要加密/解密的文件列表。在那里,它只考虑被注释块包围的文件,如下例所示

# BEGIN ENCRYPTED
kaas-rubik-stage/values.yaml
# END ENCRYPTED

通过提供.gitignore文件作为参数,并使用encryptdecrypt命令来运行该工具

cd <REPOSITORY_ROOT>
python -m utils.secrets_tool k8s_helm/.gitignore encrypt

语法

该工具为所有类型的文件提供不同的加密处理程序。

  • yaml 用于工具使用的YAML文件,这些工具可以接受字符串前面的 !decrypted 标签
  • yamlcompat 用于不喜欢额外“加密标记”标签的工具。
  • generic 用于所有其他文件类型。它加密整个文件。

所需的加密处理程序是从文件类型推断出来的 - 或者可以在gitignore文件中使用 # type: 提示明确指定

# BEGIN ENCRYPTED
kaas-rubik-stage/values.yaml

# type: yaml
kaas-rubik-stage/values2.txt
# END ENCRYPTED

yamlcompat

此加密处理程序可以加密单个YAML键,而无需依赖于YAML文件结构中的“可见解析器”更改。不是直接在文件中标记所需键,而是在.gitignore文件中使用 # data: 注释列出它们

# BEGIN ENCRYPTED
kaas-rubik-stage/values.yaml

# type: yamlcompat
# data: splunk.apiToken
# data: splunk.host
kaas-rubik-stage/values2.yaml
# END ENCRYPTED

警告 建议尽可能使用常规的YAML处理器。当使用yamlcompat模块时,您会将加密逻辑分散到多个文件中,这可能会导致错误(尤其是在包含未命名结构(如列表)的脆弱YAML文件中)。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

secrets_tool-0.1.0.tar.gz (6.3 kB 查看哈希值)

上传时间 源代码

构建分发

secrets_tool-0.1.0-py3-none-any.whl (7.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持