在模型上下文协议 (MCP) 中管理环境变量和密钥,应结合使用安全存储、运行时注入和访问控制。首先将配置数据与代码分离,将环境变量存储在为此目的设计的文件或服务中。密钥(如 API 密钥或数据库凭据)绝不应硬编码或提交到版本控制系统。相反,应使用专用的密钥管理器(例如 HashiCorp Vault、AWS Secrets Manager)或 MCP 的内置工具来存储加密值。在部署过程中,将这些值注入到运行时环境或应用程序配置中。这种方法可确保敏感数据受到保护,并在不同环境中进行配置。
在 MCP 中,利用其与云提供商或第三方密钥管理工具的原生集成。例如,如果 MCP 运行在 Kubernetes 上,则可以将 Kubernetes Secrets 与环境变量或挂载卷一起使用。在 MCP 的配置文件或 UI 中定义环境变量,并引用外部存储的密钥。如果 MCP 支持基于角色的访问控制 (RBAC),则限制权限,以便只有授权的服务或用户才能检索密钥。例如,一个训练作业可能需要数据库密码:将密码存储在 AWS Secrets Manager 中,配置 MCP 使用 IAM 角色获取它,并将其作为环境变量传递给作业。避免在日志中记录或在输出中暴露密钥,方法是在日志中进行掩码处理并监控访问。
遵循最佳实践,例如定期轮换密钥和审计访问。对开发、预生产和生产环境使用不同的密钥,以限制影响范围。例如,使用环境名称作为密钥前缀(例如,prod_db_password
),并配置 MCP 根据部署上下文选择正确的密钥集。如果 MCP 缺乏内置的密钥轮换功能,则通过脚本或 CI/CD 流水线实现自动化更新。使用模拟密钥或 Git 中排除的 .env 文件进行本地配置测试。最后,记录整个过程,以便团队了解如何安全地添加或修改密钥。通过将 MCP 的功能与既定的安全实践相结合,您可以在不牺牲安全性的前提下保持灵活性。