开发者工具 · Docker run 到 Docker compose 转换器
编写包含秘密的文件:将密码保留在环境块之外
· 为什么它很重要
码头工人 撰写 秘密
带有 -e DB_PASSWORD=... 的 docker run 命令将成为具有相同密码的 YAML 文件(以纯文本形式显示)。这篇文章解释了为什么这很重要,如何将秘密移出,以及为什么转换本身不应该离开你的机器。
密码位于 diff 中 — 转换后的 Compose 文件将使用逐字复制的 -e 值进行推送
密码位于 diff 中 — 转换后的 Compose 文件将使用逐字复制的 -e 值进行推送。证据:文字 -e 密码逐字出现在环境输出中。使用一次性文字再现秘密放置。将每个源出现与文字变量和浏览器处理配对;保留凭证存储和文件以供目的地审核。
Secrets 事件还揭示了一个单独的 Secrets 事件边界是该转换库本身仅执行本地字符串处理。证据:这个转换库本身只执行本地字符串处理。这个秘密放置约束是一个停止点。在没有制造行为的情况下检查文字变量和浏览器处理,然后记录凭证存储和文件的主机检查。
Compose 文件中的内容 — 密码、令牌、内部主机名和描述您的基础设施的路径
Compose 文件中的内容 — 密码、令牌、内部主机名和描述您的基础设施的路径。证据:安装主机名网络和图像引用可能会泄露基础设施。将秘密放置令牌跟踪到文字变量和浏览器处理中。将有序值与最后值字段分开;凭证存储和文件不在收集范围内。
相关的秘密机制边界是一个单独的秘密语法边界是发出 env_file 引用但不发出。证据: env_file 引用被发出,但没有。使用这一秘密放置事实来预测文字变量和浏览器处理中的一个成员或标量。在决定有关凭证存储和文件的任何事情之前检查警告。
远程转换器可能会泄露粘贴的值;该存储库仅证明其自己的本地转换路径
为什么在线转换器存在风险 - 将 docker run 粘贴到发布到服务器的表单中,会将其中的每个秘密发送给第三方。证据:远程提交命令文本会泄露所有包含的值;远程转换器可以泄露粘贴的值;该存储库仅证明其自己的本地转换路径。从其模型判断秘密放置序列化。在文字变量和浏览器处理中引用可以保护类型,但不会提供凭证存储和文件的操作证明。
第二个秘密序列化观察是为此秘密部分保留此秘密部分的原始命令和警告,此外,此秘密部分的秘密序列化结果将表示此秘密部分配置的候选文件与此秘密部分的缺失上下文分开,图像元数据位于秘密序列化转换之外。证据:存储库没有提供更广泛的运行时间或历史证据。此秘密放置输出将设置与不可用的上下文分开。保持文字变量和浏览器处理可审查,并独立检查凭证存储和文件。
ToolAcre 的转换库不执行请求,而周围页面仍然可以加载公开的站点资源
ToolAcre 转换器的行为方式 — 转换在浏览器中运行,不上传任何内容,网络面板会显示它。证据:这个转换库本身只执行本地字符串处理; ToolAcre 的转换库不执行任何请求,而周围页面仍然可以加载公开的站点资源。停在秘密放置异常处而不是猜测。文字变量和浏览器处理附近的任何添加都需要与凭证存储和文件相关的特定于部署的原因。
另一个秘密异常约束是,对于此秘密部分,在此候选文件旁边保留此秘密部分的原始命令和此秘密部分的警告。保留警告旁边的原始秘密放置命令。该比较显示了文字变量和浏览器处理包含哪些内容以及哪些凭证存储和文件决策仍然是手动的。
将机密移出文件 - ${VAR} 从 git 忽略的 .env、env_file 和基于文件的机密进行插值:适用于支持它们的图像
将机密移出文件 - ${VAR} 从 git 忽略的 .env、env_file 和基于文件的机密进行插值:适用于支持它们的图像。从合成名称构建秘密放置示例。使每个文字变量和浏览器处理项都可追踪,而无需暴露生产凭证存储和文件详细信息。
相同的秘密示例示例演示了单独的秘密示例边界是本地转换删除了一个传输路径而不使明文安全。证据:本地转换删除了一条传输路径,但没有使明文变得安全。配对的秘密放置事实应该在文字变量和浏览器处理中可见。记录该行并避免有关凭证存储和文件的假设。
工作示例:转换 MariaDB 命令 - 带有秘密的原始 YAML,然后是带有 .env 和 .gitignore 的清理版本
工作示例:转换 MariaDB 命令 - 带有秘密的原始 YAML,然后是带有 .env 和 .gitignore 的清理版本。证据:保存前必须手动更换教学密码。将秘密放置结果转换为一个可观察的文字变量和浏览器处理差异。 Docker 拥有后来的凭证存储和文件判决。
秘密结果实现还显示了一个单独的秘密效果边界是文字 -e 密码逐字出现在环境输出中。分割机密放置职责:转换写入文字变量和浏览器处理,存储库删除机密,操作员验证凭证存储和文件。
这不包括 - 秘密管理器、加密存储库和运行时注入,这些内容因平台而异
这不包括秘密管理器、加密存储库和运行时注入,这些内容因平台而异。证据:秘密管理器和加密传输因平台而异。将秘密放置范围限制为此处显示的文字变量和浏览器处理分支。相邻表单和默认值无法回答凭证存储和文件问题。
另一个秘密范围限制来自一个单独的秘密限制边界,即安装主机名网络和图像引用可能会泄露基础设施。将此秘密放置边界视为排除项。更喜欢准确的文字变量和浏览器处理,而不是对凭证存储和文件的猜测。
要点:本地转换,然后外部化秘密 — 转换器为您提供 YAML 而无需暴露
要点:本地转换,然后外部化秘密 — 转换器为您提供 YAML 而无需暴露。审核秘密放置作为源选项、模型字段、文字变量和浏览器处理行和警告。在检查凭证存储和文件之前删除机密。
最后,秘密外卖来源确认了一个单独的秘密决策边界是远程提交命令文本将泄露所有包含的值。证据:远程提交命令文本会泄露所有包含的值。严格关闭秘密放置:文字变量和浏览器处理是候选者;不保证凭证存储以及文件和 shell 的等效性。