变量和秘密
Komodo 中的变量/秘密只是一个键值对。
KEY_1 = "value_1"
您可以使用双括号将值插入到任何资源环境中
(以及大多数其他用户可配置的输入,例如仓库的 On Clone 和 On Pull,或堆栈的 Extra Args)
来触发插值:
# 插值前
SOME_ENV_VAR = [[KEY_1]] # <- 用双括号 '[[]]' 将键括起来
# 插值后:
SOME_ENV_VAR = value_1
定义变量和秘密
-
在 UI 中,您可以转到“设置”页面,“变量”选项卡。在这里,您可以创建一些变量以存储在 Komodo 数据库中。
- 有一个“秘密”选项可以选中,这将 防止该值在任何更新/日志中暴露,并阻止任何 非管理员 Komodo 用户访问该值。
- 变量也可以在 ResourceSyncs 中管理(参见示例),但这只应针对非秘密变量,以避免提交敏感数据。您应该使用以下选项之一来管理秘密。
-
将配置文件挂载到核心:https://komo.do/docs/setup/advanced#mount-a-config-file
- 在 Komodo Core 配置文件中,您可以使用如下块来配置
secrets:# 在 core.config.toml 中
[secrets]
KEY_1 = "value_1"
KEY_2 = "value_2" KEY_1和KEY_2将可用于所有资源的插值,就像它们是在 UI 中设置的变量一样。- 这些键是可查询的,并显示在变量页面上(以便您知道它们可用), 但 这些值不会通过 API 向任何用户公开。
- 在 Komodo Core 配置文件中,您可以使用如下块来配置
-
将配置文件挂载到外围代理:
- 在 Komodo Periphery 配置文件中,您还可以使用与 Core 配置文件相同的语法来配置
secrets。 - 该变量 不会全局提供给所有 Komodo 资源,它只会提供给运行该单个 Periphery 代理的关联服务器资源上的资源。
- 这有效地分散了您的秘密位置,这可能好也可能坏,具体取决于您的安全要求。它确实避免了通过网络将秘密从核心发送到外围的需要,基于外围的秘密永远不会暴露在网络中。
- 在 Komodo Periphery 配置文件中,您还可以使用与 Core 配置文件相同的语法来配置
-
使用专用的秘密管理工具,例如 Hashicorp Vault,与 Komodo 一起使用
- 最终,Komodo 变量/秘密功能 可能无法满足企业级秘密管理要求,此级别的组织仍应使用专用的秘密管理解决方案。目前,Komodo 不打算作为企业级秘密管理解决方案。
- 这些解决方案确实需要应用程序级集成,您的应用程序应仅接收用于访问秘密管理 API 的凭据。 您的应用程序将从专用的秘密管理工具中提取实际的秘密值,它们完全不受 Komodo 的管理。