Linux 主机配置是否适合持续部署?

Linux 主机配置是否适合持续部署?

我们正在设置用于持续部署的主机。每个应用程序都在其自己的用户帐户下运行。

目前,我们正在研究的方法是简单地允许持续构建机器拥有该应用程序帐户的公钥以用于部署。

有人担心这可能会造成漏洞,因此我们正在尝试寻找降低风险的方法。由于我们的第三方构建服务的集群特性,限制对 IPv4 块的访问实际上不是一个选择,因此我们需要考虑其他风险缓解方法,作为我们部署过程的一部分。我不希望持续部署的好处损害我们的生产环境。

有人能建议一些方法,既能让 CI 机器正常工作,又能确保我们不会打开安全漏洞吗?最好是在你尊重的环境中使用过的方法,以避免纯粹的理论方法。

部署主机使用基于 Ubuntu 16.04.2 LTS 的 VM,可通过 ssh 进行访问。服务器将托管面向 Web 的基于 HTTP 的应用程序。

答案1

按照你现在的方式使用 SSH 密钥并不一定是坏方法。如果你真的担心,你可以将部署帐户与实际运行服务所用的凭据分开。

您每次都是构建新服务器还是重复使用现有服务器?第二个不太可能积累让您处于开放状态的配置更改,但如果没有有关管道的更多信息,这是一个很难回答的问题。

答案2

可以强制在连接时运行命令,这可以限制可以使用密钥执行的操作。还有许多其他选项可以应用,包括限制连接的源 IP。有关详细信息,请参阅手册页authorized_keys和/或sshd

对于此类用途,您可能需要强制命令将部署拉入环境。部署可以在连接请求中指定,或者您可以拉取最新文件。

您可能希望通过 NFS 提供部署,或者使用 scp 来推送或拉取构建。

相关内容