SuperAPI AI 工具集

secrets

部署与运维

查看项目

更新于 10-16 05:06

技能介绍

用途:帮助在 Kamal 2 部署中安全存储密钥,并接入 config/deploy.yml。密钥存放在 .kamal/secrets,Kamal 通过 dotenv 在需要时自动加载,无需单独的生成步骤。

主要能力:.kamal/secrets 是 dotenv 文件,右侧支持变量替换(NAME=$NAME,从 shell/CI 取值)和命令替换(NAME=$(command),从文件或 CLI 读取)。在 deploy.yml 的 env 块中,secret 下列出密钥变量名,clear 下列明文值;密钥不会直接传入容器,而是写入主机上的 env 文件。可用 ENV_NAME:SECRET_NAME 别名,并配合 tags 为不同上下文取不同值。

从密码管理器拉取:使用 kamal secrets 子命令,包括 fetch、extract、print、help。推荐 fetch → extract 模式:先 fetch 一次拉取全部密钥,再逐个 extract,避免重复认证。fetch 支持 --adapter(-a)、--account、--from。支持的适配器有 1password、lastpass、bitwarden、bitwarden-sm、aws_secrets_manager、doppler、gcp、passbolt,各自 --from 语义不同。

多环境:Kamal 先读 .kamal/secrets-common,再读 .kamal/secrets 或 .kamal/secrets.<destination>,后者覆盖前者;选定 destination 时不读普通 .kamal/secrets。可用 secrets_path 修改基础路径。

限制与注意:不要提交真实密钥,确保 .kamal/secrets 被 git 忽略。1Password 写入操作在 CI 等非交互环境会超时,需用服务账号令牌;服务账号只能看到显式共享的 vault。kamal secrets print 会暴露密钥值,需谨慎。从 Kamal 1 升级时,envify 和 env 已移除,.env 不再自动加载。具体适配器示例与完整选项见官方文档。