最佳实践:AWS EC2私钥

我一直在努力使用AWS私钥,因为我试图保持所有的AWS证书的安全性,安全性和组织性。 我是否应该为多个EC2实例使用相同的AWS密钥,还是每个实例都有其唯一的私钥?

我一直在寻找这方面的最佳做法。 如果你能解释为什么,我会非常感激。

我一直倾向于给每个实例分配安全性的独特私钥的做法。

提前致谢!

只是扩大@steenhulthin答案。

我认为最好把EC2生成的密钥对作为实例的主密钥,这是可选的。 这不是pipe理用户级访问的系统。

我相信最好的做法如下

我是否需要远程login到实例?

是:使用密钥对创buildEC2实例

我相信最好的做法是每个实例创build一个EC2密钥对。 如果一个密钥对被暴露的风险限于这个实例。 然而,每个实例的密钥对可能难以pipe理,如果是这种情况,可以find一些合理的方法来分组您的实例,并为每个组使用一个密钥对。 例如按angular色或angular色和应用程序分组。

NO:创build没有密钥对的EC2实例。

这显然更安全,因为你没有丢失/妥协的关键。 实例本质上不能通过传统方法访问。 遵循这种方法需要实例pipe理/configuration完全自动化(厨师,木偶等),是一个更昂贵的select。 总的来说,这样可以让这个实例有更多的安全性,这取决于你的自动化是如何configuration的。

pipe理EC2密钥对的最佳做法是什么? 这是我目前没有很好的答案。

你需要允许人类远程访问实例? 正如@steenhulthin所build议的,为每个用户创build本地用户帐户,或使用一些集中的authentication和授权。

此外,您还可以维护一个专用的远程pipe理访问实例(SSH或RDP),只能公开访问(IP地址明智),并将所有其他实例上的SSH和/或RDP限制在pipe理工作站上。

我认为这个问题可能更适合于serverfault.com。

这就是说:如果你单独工作的实例,我没有看到每个实例创build密钥对的任何意义。 我认为密钥对应该是每个用户。

如果多用户应该访问机器,我会添加一个新的密钥对ec2实例,如下所述: https ://forums.aws.amazon.com/message.jspa?messageID=185184和一些关于密钥对生成过程的详细说明这里: http : //seabourneinc.com/2011/01/19/change-key-pairs-on-aws-ec2-instance/

我写了一篇关于SSH最佳实践的文章,包括密钥pipe理,端口转发和代理转发。 你可能会觉得它很有用。 这是链接 。

一些好的事情是:

  1. 每个人都有一个SSH密钥
  2. 保护你的SSH密钥 – 永远不要共享私钥,如果可能的话encryption
  3. 切勿使用AWS生成的密钥
  4. 使用个人login(用户)ID,不要使用普通login。

还有一些与SSH和用户访问文章提到的其他东西有关。