为了启动一个EC2实例,你需要一个密钥对。 你如何处理一个密钥对的私人密钥的工程师离开公司? 它会工作添加个人SSH访问,并取消授权初始密钥对,实例启动后立即?
当员工或承包商离开公司时,您需要禁用他们对公司资源的任何特权访问。 这包括(但不限于)你的ssh关键问题:
从所有正在运行的实例上的所有authorized_keys文件中删除公用ssh密钥。 将它们replace为新生成的公共ssh密钥,只有那些应该有权访问的人才知道。
删除已离开的EC2中的所有密钥对条目,以便新的实例不能与这些密钥对一起启动。 将它们replace为新的密钥对条目,如果你的名字可能带有相同的名字
你提出的另一种方法也是很好的,我使用的方法是:禁用最初的ssh密钥,并为每个开发者添加单独的公共ssh密钥,以便他们可以使用正常的私有ssh密钥login。 这可以做到login到共享帐户,或与每个开发人员获得自己的个人用户帐户(我的首选)。
员工离职后,您不仅必须清理正在运行的服务器,还要将ssh密钥添加到新服务器。 而且,当员工join时,您需要做相反的事情:将ssh密钥添加到正在运行的服务器并更新新的服务器进程。
在大量的服务器上维护大量的ssh密钥可能会花费更多的工作量,但这就是自动化的原因。
你不应该把这个私钥给最终用户。 应该为最终用户提供自己的login方式,例如公钥authentication(使用他们的OWN密码保护私钥),然后是LDAP授权。
分发由ec2给你的私钥使得不可能取消用户。 这正是为什么所有安全和合规性法规完全禁止使用共享凭据的原因。
当您允许使用共享凭据时:
查看有关访问凭证轮换的 Amazon文档。
如果您不想重新启动所有内容,或者只是重新启动所有内容,请使用puppet或固定的ssh脚本来运行并replace旧密钥的所有实例。