如何安全pipe理EC2托pipe密钥对的私钥?

为了启动一个EC2实例,你需要一个密钥对。 你如何处理一个密钥对的私人密钥的工程师离开公司? 它会工作添加个人SSH访问,并取消授权初始密钥对,实例启动后立即?

当员工或承包商离开公司时,您需要禁用他们对公司资源的任何特权访问。 这包括(但不限于)你的ssh关键问题:

  1. 从所有正在运行的实例上的所有authorized_keys文件中删除公用ssh密钥。 将它们replace为新生成的公共ssh密钥,只有那些应该有权访问的人才知道。

  2. 删除已离开的EC2中的所有密钥对条目,以便新的实例不能与这些密钥对一起启动。 将它们replace为新的密钥对条目,如果你的名字可能带有相同的名字

你提出的另一种方法也是很好的,我使用的方法是:禁用最初的ssh密钥,并为每个开发者添加单独的公共ssh密钥,以便他们可以使用正常的私有ssh密钥login。 这可以做到login到共享帐户,或与每个开发人员获得自己的个人用户帐户(我的首选)。

员工离职后,您不仅必须清理正在运行的服务器,还要将ssh密钥添加到新服务器。 而且,当员工join时,您需要做相反的事情:将ssh密钥添加到正在运行的服务器并更新新的服务器进程。

在大量的服务器上维护大量的ssh密钥可能会花费更多的工作量,但这就是自动化的原因。

你不应该把这个私钥给最终用户。 应该为最终用户提供自己的login方式,例如公钥authentication(使用他们的OWN密码保护私钥),然后是LDAP授权。

分发由ec2给你的私钥使得不可能取消用户。 这正是为什么所有安全和合规性法规完全禁止使用共享凭据的原因。

当您允许使用共享凭据时:

  • 使用日志来了解真正的/在主机上是不可能的
  • 如果不取消所有用户的供应(包括紧急访问,这是EC2私钥的真正用途),就不可能取消供应,

查看有关访问凭证轮换的 Amazon文档。

如果您不想重新启动所有内容,或者只是重新启动所有内容,请使用puppet或固定的ssh脚本来运行并replace旧密钥的所有实例。