6个版本
0.1.6 | 2020年8月1日 |
---|---|
0.1.4 | 2020年7月8日 |
0.1.3 | 2020年6月25日 |
#23 in #secrets-manager
24 每月下载次数
25KB
332 行
Barberousse - 远程机密编辑器
:toc: :toc-title
关于
一个旨在避免从远程提供者下载机密的项目(目前仅支持AWS Secret Manager)。打开一个编辑器,其中包含可轻松编辑的机密内容,在保存并退出后,机密将自动上传并创建一个远程新版本。这样,就无需使用常见的坏习惯,如将机密版本控制到VCS,或者更糟糕的是,将它们存储在您的机器上并通过Slack发送:
注意:此项目可能只是一个概念验证,可能不会发展成为完整的项目。
用法
选项
就像awscli一样,您可以自定义要使用的配置文件和区域:.... 选项:-P, --profile 使用特定的aws配置文件,覆盖配置和环境设置
-R, --region 机密所在的区域,覆盖配置和环境设置 ....
这些是全局选项,可以在命令中的任何位置设置。
打印
将您的机密以美观的格式打印到stdout
默认情况下,远程机密以json格式读取并打印为yaml,以便于阅读。但是,您可以通过传递打印格式来自定义此行为,该格式定义了您希望机密如何格式化,以及机密格式定义远程机密的格式。 .... 参数:要打印的机密id
标志:-n, --no-color 不要着色输出,此行为与通过管道传输到另一个程序时的行为相同
选项:-p, --print-format 打印机密的格式,如果机密的格式为text
,则此选项将被忽略并默认为text
[默认:yaml] [可能值:json,yaml,text]
-s, --secret-format 机密远程存储的格式 [默认:json] [可能值:json,yaml,text] ....
默认情况下,输出是格式化并着色的。要禁用此功能,请使用--print-format=text
- YAML输出(默认)
❯❯❯ barberousse cat /test/file --print-format yaml 1 │ --- 2 │ a: secret 3 │ another: secret value
- JSON 输出
❯❯❯ barberousse cat /test/file --print-format json 1 │ { 2 │ "a": "secret", 3 │ "another": "secret value" 4 │ }
- 将 JSON 输出通过管道传递给
jq
❯❯❯ barberousse cat /test/file --print-format json | jq -r '.a' secret
在您的终端上可能看起来像这样:
编辑
允许您在不将密钥保存到磁盘的情况下编辑远程密钥(尽管会创建一个临时文件...未来将提供更安全处理临时文件的方法,见 #3)。您可以使用不同的格式来编辑您的密钥(json, yaml, 纯文本)。
.... 参数:要编辑的密钥的 ID
选项:-e, --edit-format 用于编辑密钥的格式,如果密钥的格式是 text
,则此选项将被忽略,并默认为 text
[默认: yaml] [可能值:json, yaml, text]
-s, --secret-format 密钥远程存储的格式 [默认: json] [可能值:json, yaml, text]
--editor 覆盖用于编辑密钥的默认编辑器 $EDITOR ....
-
以 YAML 格式编辑 JSON 密钥(默认)
❯❯❯ barberousse edit /test/file --edit-format yaml --secret-format json
-
以 JSON 格式编辑 JSON 密钥
❯❯❯ barberousse edit /test/file --edit-format json --secret-format json
在您的终端上可能看起来像这样:
复制
通过复制密钥,您可以针对不同的用途进行定制。请谨慎使用此功能,因为它可能导致重复使用密钥,这不是一个好的做法。
.... 参数:要复制的密钥的 ID 要创建的密钥的 ID
选项:-e, --edit-format 用于编辑密钥的格式,如果密钥的格式是 text
,则此选项将被忽略,并默认为 text
[默认: yaml] [可能值:json, yaml, text]
-s, --secret-format 密钥远程存储的格式 [默认: json] [可能值:json, yaml, text]
--editor 覆盖用于编辑密钥的默认编辑器,$EDITOR
--target-region 为目标密钥使用不同的区域
....
-
复制 JSON 密钥并使用 YAML 编辑它(默认)
❯❯❯ barberousse copy /test/file /test/file2
-
将密钥从一个区域复制到另一个区域
❯❯❯ barberousse copy /test/file /test/file2 --region eu-west-1 --target-region eu-west-3
路线图
1.0
我们几乎完成了!
- 通用
- 支持选择配置文件和区域(支持环境变量)
- 编辑
- 编辑 JSON、YAML、文本
- 使用 YAML 编辑 JSON(默认行为)
- 使用
- 如果不存在,则创建密钥
- 自定义编辑器选择,传递
--editor
- 打印
- 以一个或多个其他格式查看密钥内容
- 复制
- 复制密钥(并在保存复制之前打开编辑器)
- 支持跨区域
1.1
一些额外的编辑非内容信息的功能。整体上,这应该是一个交互式过程,否则就没有意义,因为 aws cli 已经提供了一个很好的 api 来执行此操作。
- 编辑密钥的元数据(描述和 KMS 密钥):替换
update-secret --description "" --kms-key-id ""
- 打印密钥的元数据
未来
欢迎提出建议!
依赖关系
~30–43MB
~607K SLoC