Amazon ec2 构建服务器EC2的密钥对管理

Amazon ec2 构建服务器EC2的密钥对管理,amazon-ec2,key-pair,Amazon Ec2,Key Pair,我正在努力为我的环境带来一点devops的理智。到目前为止,我们都在本地系统上构建版本,然后将这些构建scp到目标EC2实例。由于以下原因,这并不理想: 如果我的目标环境是Linux,我想在Linux上构建,而不是在BSD上 我不想让任何本地环境特质妨碍我,我也不想从事管理开发人员本地环境的工作 在EC2虚拟机之间传输构建是即时的,但从本地系统传输可能需要很长时间,而本地系统通常使用缓慢的公共WiFi 我有一个DevOpsAMI,可以由开发人员启动,它拥有构建产品发行版的所有工具。下一步是开

我正在努力为我的环境带来一点devops的理智。到目前为止,我们都在本地系统上构建版本,然后将这些构建scp到目标EC2实例。由于以下原因,这并不理想:

  • 如果我的目标环境是Linux,我想在Linux上构建,而不是在BSD上
  • 我不想让任何本地环境特质妨碍我,我也不想从事管理开发人员本地环境的工作
  • 在EC2虚拟机之间传输构建是即时的,但从本地系统传输可能需要很长时间,而本地系统通常使用缓慢的公共WiFi
我有一个DevOpsAMI,可以由开发人员启动,它拥有构建产品发行版的所有工具。下一步是开发人员将该发行版转移到另一个EC2“目标”EC2实例,在那里可以解包并运行它。正是这个从构建到目标实例的scp跳跃,让我很为难。在我看来,我的解决方案是:

  • 让每个开发人员将他们的私钥复制到构建机器上。然后,假设目标实例是由同一个开发人员启动的,sch会很高兴
  • 有一个共享密钥对,称之为“devops”。这样,我可以在构建AMI上预安装私钥,只要开发人员使用这些密钥启动构建实例和目标实例,一切都将是透明的

两者都有各自的缺点,所以我想知道这里的最佳实践是什么。

通常的做法是,他们应该将代码签入git存储库,然后构建应该是一个自动的过程,以获取所需的版本并激活构建吗?通过这种方式,它也在测试产品发布过程。构建管道是可操作的,但它不构建生产发布。也许应该,但我不认为这能解决我的问题。个人私钥不应该被复制到任何地方。如果要在主机之间传输文件,请建立一个s3存储桶,并使用服务器角色访问它。如果您真的想使用共享密钥对,请查看使用SSM或AWS Secrets来管理它