分布式web应用程序的Git部署策略
我有一个PHP web应用程序,在负载平衡器后面的两台服务器上运行相同的代码(可能会添加更多)。 代码保存在私有的BitBucket存储库中。我很难找到适合这种情况的最佳部署策略 目前,我已经在使用Ansible来配置服务器,所以我所做的是使用将代码从存储库签出到服务器中。由于代码存储在私有存储库中,因此我添加了一个将授权ssh私钥复制到服务器的重头戏,该私钥稍后将在git签出期间指定为密钥文件。密钥是用密码加密的 密钥和配置手册也被签入git 到目前为止,它运行得很好,但尽管我不确定它出了什么问题,但我担心安全问题。我忍不住觉得我做错了什么,将ssh密钥检查到VCS中,并在所有服务器上使用相同的密钥分布式web应用程序的Git部署策略,git,security,deployment,ssh-keys,ansible,Git,Security,Deployment,Ssh Keys,Ansible,我有一个PHP web应用程序,在负载平衡器后面的两台服务器上运行相同的代码(可能会添加更多)。 代码保存在私有的BitBucket存储库中。我很难找到适合这种情况的最佳部署策略 目前,我已经在使用Ansible来配置服务器,所以我所做的是使用将代码从存储库签出到服务器中。由于代码存储在私有存储库中,因此我添加了一个将授权ssh私钥复制到服务器的重头戏,该私钥稍后将在git签出期间指定为密钥文件。密钥是用密码加密的 密钥和配置手册也被签入git 到目前为止,它运行得很好,但尽管我不确定它出了什么
我应该做些什么来保证它的安全?这个问题非常广泛,但我认为使用Ansible Vault是正确的方法。您正在git存储库中签入ssh密钥,但它们是加密的,您只能使用密码对其进行解密
如果您想提高更高的安全性,可以尝试像我一样创建
4096
或8192
ssh密钥。一般来说,ssh密钥身份验证是非常安全的,因为每次使用私钥/公钥对时都会生成唯一的指纹。这是一个非常重要的主题,对我来说安全的可能不适合你
但总的来说没关系,但我会坚持以下几点
- 使用部署人员对其所能做的事情应具有有限的访问权限(如果可能)
- 如果密钥被泄露,您可以使用授权的_密钥来限制密钥的来源
- 正如Rico所说,使用高位密钥