InsForge密钥配置实战:环境变量与敏感数据保护清单

📅 2026/8/24 21:22:13
InsForge密钥配置实战:环境变量与敏感数据保护清单
InsForge密钥配置实战环境变量与敏感数据保护清单【免费下载链接】InsForgeThe all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.项目地址: https://gitcode.com/GitHub_Trending/in/InsForge你的 InsForge 自托管实例刚上线安全审计就把JWT_SECRET、ENCRYPTION_KEY、ACCESS_API_KEY三个值列为头号检查项它们决定会话签名、落库加密和 API 访问任何一个配错都会让实例裸奔。InsForge 的环境变量配置集中在 .env.example按这份清单完成密钥管理10 分钟内可以给出可验证的结论。InsForge 仪表板中的认证方式与共享密钥配置界面初始化环境变量只需三步从 .env.example 复制并生成随机密钥复制配置模板cp .env.example .env生成两个不同的随机密钥openssl rand -base64 32 # 用于 JWT_SECRET openssl rand -base64 32 # 用于 ENCRYPTION_KEY把结果分别填入JWT_SECRET和ENCRYPTION_KEY替换默认的POSTGRES_PASSWORD和ROOT_ADMIN_PASSWORD再执行docker compose up -d。判断是否配置正确docker compose logs -f中不应出现ENCRYPTION_KEY is not set — falling back to JWT_SECRET的警告出现即说明两个密钥没有分开。打开仪表板默认http://localhost:7131用你设置的 root 管理员账号能登录说明认证链路生效。验证敏感数据是否被加密落库理解 ENCRYPTION_KEY 的职责边界InsForge 用 AES-256-GCM 加密所有写入 Secrets 存储的值API 密钥、OAuth token、SMTP 凭证等实现见 backend/src/infra/security/encryption.manager.ts。它优先读取ENCRYPTION_KEY未设置时回退到JWT_SECRET并在日志中告警。这意味着一旦用了回退方案之后轮换JWT_SECRET会永久损坏库里所有已加密的敏感数据。用一次轮换做验证通过POST /api/secrets/api-key/rotate轮换 API 密钥再用新密钥调用一次需要鉴权的接口。返回 200 且旧密钥在宽限期后失效说明加密、解密、校验三条链路都正常。轮换 API 密钥而不中断客户端InsForge 把 API 密钥ik_前缀和匿名密钥anon_前缀也当作 Secrets 管理。留空ACCESS_API_KEY时后端会在首次启动自动生成并加密入库填入的值则按原样使用所以别把占位符留进生产环境。轮换入口在 backend/src/api/routes/secrets/index.routes.ts旧密钥在过期时间到达前仍可验证客户端可以平滑切换密钥管理不必以停服为代价。最小可行配置只关心核心密钥时.env最少需要这些行COMPOSE_PROJECT_NAMEinsforge POSTGRES_USERpostgres POSTGRES_PASSWORD强随机密码 JWT_SECRETopenssl rand -base64 32 的输出 ENCRYPTION_KEY另一个不同的随机密钥 ACCESS_API_KEY ACCESS_ANON_KEY字段作用安全建议JWT_SECRET会话与 JWT 签名32 字符以上生产环境用随机生成值禁止与ENCRYPTION_KEY相同ENCRYPTION_KEY加密 Secrets 落库单独生成并妥善保管轮换前先备份该值ACCESS_API_KEY/ACCESS_ANON_KEYik_/anon_密钥空值由后端自动生成填了占位符会被原样当作真实密钥生产必须显式配置或留空ROOT_ADMIN_USERNAME/ROOT_ADMIN_PASSWORDroot 管理员登录立即改掉默认值这是第一道被扫描的入口POSTGRES_PASSWORD数据库密码使用密码管理器生成生产环境单独隔离避坑与调优✅.env加入版本控制忽略列表生产与开发使用不同的密钥组✅ 每 90 天轮换一次JWT_SECRET与ENCRYPTION_KEY分开轮换轮换前确认ENCRYPTION_KEY已独立设置✅ 审计时只查两处启动日志无密钥回退告警、GET /api/secrets列表只返回元数据不返回明文✅ 前端反代或负载均衡在 InsForge 之前时确认其空闲超时小于KEEP_ALIVE_TIMEOUT_MS避免连接复用失败❌ 不要复用默认值POSTGRES_PASSWORDpostgres、ROOT_ADMIN_PASSWORDchange-this-password出现在生产即视为泄露❌ 不要把AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY填进自托管环境它们只用于 InsForge Cloud 托管实例自托管用S3_*变量完整变量说明以 .env.example 中的注释为准部署参考 docs/deployment/认证与密钥行为可对照 backend/src/api/routes/secrets/index.routes.ts 源码。【免费下载链接】InsForgeThe all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.项目地址: https://gitcode.com/GitHub_Trending/in/InsForge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考