为了启动 EC2 实例,您需要一个密钥对。如果有权访问该密钥对私钥的工程师离开公司,您如何处理这种情况?在实例启动后立即添加单独的 ssh 访问权限并取消对初始密钥对的授权是否可行?
答案1
当员工或承包商离开公司时,您需要禁用他们对公司资源的任何特权访问权限。这包括(但不限于)您的 ssh 密钥问题:
从所有正在运行的实例上的所有 authorized_keys 文件中删除公共 ssh 密钥。用新生成的公共 ssh 密钥替换它们,只有应该有访问权限的人才知道。
删除 EC2 中所有已离职人员已知的密钥对条目,以便无法使用这些密钥对启动新实例。用新的密钥对条目替换它们,如果您的
您建议的替代方法也很好,我使用的是这种方法:禁用初始 ssh 密钥,并为每个开发人员添加单独的公共 ssh 密钥,以便他们可以使用其正常的私有 ssh 密钥登录。这可以用于登录共享帐户,也可以让每个开发人员获得自己的个人用户帐户(我首选)。
员工离职后,您不仅需要清理正在运行的服务器,还需要清理将 ssh 密钥添加到新服务器的过程。而且,当员工加入时,您需要执行相反的操作:将 ssh 密钥添加到正在运行的服务器并更新新服务器进程。
在许多服务器上维护大量 ssh 密钥可能需要做更多工作,但这就是自动化的作用所在。
答案2
您永远不应将此私钥提供给最终用户。最终用户应拥有自己的登录方式,例如公钥身份验证(使用他们自己的受密码保护的私钥),然后进行 LDAP 授权。
分发 ec2 提供给您的私钥使得取消用户配置变得不可能。这正是所有安全和合规法规完全禁止使用共享凭证的原因。
当您允许使用共享凭据时:
- 不可能通过日志知道谁真的是/曾经是主机
- 如果不取消配置,就不可能取消用户的配置全部用户(包括紧急访问,这才是 EC2 私钥的真正用途)