用 Varlock 让 Claude 管理环境变量,防泄密

解决安全痛点:防止敏感信息(如 API 密钥、密码)意外暴露给 AI 模型、写入日志或提交到 Git。通过 Varlock 构建的“默认安全”工作流,确保变量只在命令执行时可用,从不出现在上下文或输出中。

为什么需要这个技能

在使用 LLM 辅助开发时,直接 cat .envecho $SECRET 极易导致密钥泄露到 Claude 的上下文、终端历史甚至 CI/CD 日志中。一旦泄露,攻击者可直接重放 API。

本项目 varlock 提供了一种 secure-by-default(默认安全)的管理方式。它允许 AI 验证环境、注入变量到命令,但严禁直接读取或打印敏感值。这对于需要处理生产配置、数据库凭证或第三方 API 密钥的场景至关重要。

适用场景

  • 需要在 Claude Code 会话中操作包含敏感配置的生产环境项目。
  • 执行依赖特定环境变量(如 DATABASE_URL)的 CI/CD 任务。
  • 需要自动化的密钥轮换流程,且要求操作日志中不记录明文密钥。
  • 在 Docker 容器中启动服务前,先验证且安全地注入环境变量。

核心工作流

1. 初始化与 Schema 定义

首先安装 CLI 并创建 .env.schema 文件。该文件仅描述变量类型、校验规则和敏感度,绝不包含实际值。

# 安装 Varlock CLI
curl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew

# 添加 PATH
export PATH="$HOME/.varlock/bin:$PATH"

# 初始化项目,从现有 .env 生成 schema(或手动创建)
varlock init

.env.schema 中定义每个变量。关键是用 @sensitive 标记需要隐藏的值。

# Global defaults
# @defaultSensitive=true @defaultRequired=infer

# Application
# @type=enum(development,staging,production) @sensitive=false
NODE_ENV=development

# @type=port @sensitive=false
PORT=3000

# Database - SENSITIVE
# @type=url @required
DATABASE_URL=

# @type=string @required @sensitive
DATABASE_PASSWORD=

# API Keys - SENSITIVE
# @type=string(startsWith=sk_) @required @sensitive
STRIPE_SECRET_KEY=

# @type=string(startsWith=pk_) @sensitive=false
STRIPE_PUBLISHABLE_KEY=

2. 安全验证与加载

运行时使用 varlock load 进行验证。它会检查文件存在性、变量是否符合 schema 类型定义以及敏感度要求,而不会输出敏感值。

# 验证环境并加载到安全上下文
varlock load

# 静默模式(成功时不输出任何内容)
varlock load --quiet

如果验证失败,它会指出哪个变量缺失或类型不匹配,但绝不会泄露尝试读取的值。

3. 安全执行命令

使用 varlock run 执行需要该环境的命令。变量会被注入到子进程的 shell 环境中,但不会打印到 stdout。

# 安全地运行 npm 任务
varlock run -- npm start

# 安全地运行测试
varlock run -- pytest

# 注入环境变量运行任意命令
varlock run -- curl https://api.example.com

4. 调试与查询

当需要“检查”环境变量时,必须使用 varlock 管道或 grep 过滤后的安全输出,严禁 echo $KEY

# 安全查看变量状态(敏感值显示为掩码)
varlock load 2>&1 | grep "STRIPE_SECRET_KEY"
# 输出示例:✅ STRIPE_SECRET_KEY 🔐sensitive └ ▒▒▒▒▒

# 仅检查变量是否存在(安全)
cat .env.schema

# 检查变量名是否匹配正则(不输出值)
varlock load 2>&1 | grep -E "(CLERK|AUTH)"

下载和安装

下载 varlock 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐