ZenML项目:使用服务账号连接ZenML服务器的完整指南
zenml 项目地址: https://gitcode.com/gh_mirrors/zen/zenml
前言
在自动化运维和持续集成/持续部署(CI/CD)环境中,传统的交互式登录方式往往无法满足需求。ZenML作为一款机器学习运维(MLOps)工具,提供了服务账号(Service Account)机制来解决这一问题。本文将详细介绍如何在ZenML中使用服务账号进行认证连接。
什么是服务账号
服务账号是一种特殊类型的账号,专为自动化流程设计。与普通用户账号不同:
- 不需要交互式登录
- 通过API密钥进行认证
- 适用于CI/CD流水线、服务器less函数等非交互环境
- 可以精确控制权限范围
创建服务账号
创建服务账号是使用该功能的第一步:
zenml service-account create <服务账号名称>
执行此命令后,系统会生成一个API密钥并显示在输出中。请注意,这个密钥只会显示一次,无法再次查看,因此请务必妥善保存。
连接ZenML服务器
获得API密钥后,可以通过两种方式连接ZenML服务器:
1. 使用CLI命令连接
zenml connect --url https://服务器地址 --api-key <API密钥>
2. 通过环境变量连接(推荐用于自动化环境)
export ZENML_STORE_URL=https://服务器地址
export ZENML_STORE_API_KEY=<API密钥>
环境变量的方式特别适合以下场景:
- CI/CD工作流(如GitHub Actions、GitLab CI等)
- 容器化环境(Docker、Kubernetes)
- 无服务器架构应用
管理服务账号
ZenML提供了一系列命令来管理服务账号和API密钥:
查看服务账号列表
zenml service-account list
查看特定服务账号的API密钥
zenml service-account api-key <服务账号名称> list
获取详细描述信息
zenml service-account describe <服务账号名称>
zenml service-account api-key <服务账号名称> describe <API密钥名称>
安全最佳实践
定期轮换API密钥
API密钥默认不会过期,为提高安全性,建议定期轮换:
zenml service-account api-key <服务账号名称> rotate <API密钥名称>
轮换后,旧密钥将立即失效,新密钥会显示在输出中。
保留期设置
轮换时可以设置保留期,确保平滑过渡:
zenml service-account api-key <服务账号名称> rotate <API密钥名称> --retain 60
上述命令将旧密钥保留60分钟后再失效。
停用服务账号或API密钥
当不再需要时,可以停用账号或密钥:
zenml service-account update <服务账号名称> --active false
zenml service-account api-key <服务账号名称> update <API密钥名称> --active false
停用操作会立即生效,所有使用该凭证的工作负载将无法继续访问。
使用流程总结
- 创建服务账号并保存API密钥
- 使用API密钥连接服务器
- 定期检查账号和密钥状态
- 遵循安全最佳实践,定期轮换密钥
- 及时停用不再需要的账号和密钥
安全警告
请谨记,每个API密钥都是访问您数据和基础设施的潜在入口。务必:
- 将API密钥视为密码妥善保管
- 遵循最小权限原则
- 建立定期的密钥轮换机制
- 及时清理不再使用的凭证
通过合理使用服务账号功能,您可以在保持安全性的同时,充分利用ZenML在自动化环境中的强大能力。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考