使用 Gitlab CI 共享测试运行器有哪些安全风险?

What are the security risks of using Gitlab CI shared test runners?

我正在尝试使用 Gitlab 托管一个新项目。这是一个私人 Python 项目。我能够使用 Gitlab CI.

测试一些初始测试

我在运行宁测试时不使用缓存,

在浏览设置中的 运行ner 部分时,显示警告,

GitLab Runners do not offer secure isolation between projects that they do builds for. You are TRUSTING all GitLab users who can push code to project A, B or C to run shell scripts on the machine hosting runner X.

使用共享测试有哪些安全风险 运行ner?在共享的 运行 上 运行 私人项目安全吗?在共享 运行ner 上进行 运行ning 测试时可以采取哪些预防措施?

感谢您的任何见解。

GitLab CI runner 提供以下执行器类型:

  • shell
  • docker
  • ssh
  • docker-ssh
  • parallels
  • virtualbox

您应该有的安全问题主要来自使用 sshshell 跑步者。

  • shell 是不安全的,除非你处于受控环境中。
    这是因为从字面上看,它是一个简单的 shell。用户 运行 您的构建将有权访问该用户的所有其他内容,包括其他项目。
  • ssh 容易受到中间人攻击。
    如果您在构建中处理私钥,请注意它们可能被盗。

幸运的是,http://gitlab.com 似乎只共享 docker 名跑步者。
docker runners 通常是安全的* 因为每个构建都在一个新容器中运行,所以没有什么可担心的。

您可以进一步阅读 about GitLab CI Runner security here

* 除非你在做讨厌的 privileged 模式!