Docker:以非 root 用户身份运行 Telegraf
作者:Josh Powers / 产品
2021 年 11 月 03 日
导航至
Telegraf 1.20.3 版本更改了官方 Telegraf DockerHub 镜像,不再以 root 用户身份运行 Telegraf 服务。通过此更改,Telegraf 服务在容器中以最小权限运行,从而增强了安全性,因为 Telegraf 中提供了广泛的可扩展性和插件阵列。
Docker 发布的最佳实践和 互联网安全中心 (CIS) Docker 基准都鼓励以非 root 用户身份运行容器,以限制容器的可利用性和对主机系统的影响。做出此更改是为了符合这些建议,并进一步增强在容器中运行 Telegraf 的安全性和体验。
我们理解在维护版本中进行此更改既出乎意料,又有可能导致不良的副作用。在收到关于 初始更改的一些初步反馈后,我们对我们的实施进行了 额外的更新,以减少对用户的影响,并更广泛地宣传此更改。Telegraf 1.20.3、1.19.3 和 1.18.3 DockerHub 镜像都第二次进行了更新。
此更改的结果可能需要用户修改他们使用 Telegraf Docker 镜像的方式。用户需要确保运行 Telegraf 服务的 telegraf
用户或 telegraf
组有权访问操作所需的任何其他服务、套接字、文件等。用户可以使用标准命令(如 usermod
将 telegraf 用户添加到组或 chown
更改文件的所有权)来授予访问权限。
用户仍然可以使用 DockerHub 镜像安装额外的软件包或配置服务。
如果用户传入 Docker 套接字以供 Telegraf 监控 Docker 本身,则他们需要将 telegraf
用户添加到拥有 Docker 套接字的组。实现此目的的一种方法是在从 docker CLI 启动时使用 --user
选项
docker run --user telegraf:$(stat -c '%g' /var/run/docker.sock) ...
Docker Run 文档提供了关于指定用户和组的更多信息。
在 InfluxData,我们基于一套 核心价值观建立公司。此更改的引入实际上提醒了我们五个价值观中的四个
- 我们致力于开源
- 我们相信谦逊驱动学习
- 我们拥抱失败
- 我们完成工作
我们希望与最佳实践保持一致并支持社区,这是此更改的最前沿。2021 年,我们一直非常关注继续提升我们的安全态势,未来我们将继续这样做。然而,我们的开源社区也让我们知道,尽管意图良好,但在维护版本中进行此更改并不理想。我们感谢社区提供的直接和具体的反馈。因此,我们迅速采取行动以整合反馈。我们将利用这次经验来学习和改进我们未来的发布流程。
我们感谢我们出色的社区,并继续为他们的鼓励和建议而感到谦卑,尤其是在我们做得不太正确的时候。