如何安全地管理 EC2 管理密钥对的私钥?

如何安全地管理 EC2 管理密钥对的私钥?

为了启动 EC2 实例,您需要一个密钥对。如果有权访问该密钥对私钥的工程师离开公司,您如何处理这种情况?在实例启动后立即添加单独的 ssh 访问权限并取消对初始密钥对的授权是否可行?

答案1

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

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

  2. 删除 EC2 中所有已离职人员已知的密钥对条目,以便无法使用这些密钥对启动新实例。用新的密钥对条目替换它们,如果您的

您建议的替代方法也很好,我使用的是这种方法:禁用初始 ssh 密钥,并为每个开发人员添加单独的公共 ssh 密钥,以便他们可以使用其正常的私有 ssh 密钥登录。这可以用于登录共享帐户,也可以让每个开发人员获得自己的个人用户帐户(我首选)。

员工离职后,您不仅需要清理正在运行的服务器,还需要清理将 ssh 密钥添加到新服务器的过程。而且,当员工加入时,您需要执行相反的操作:将 ssh 密钥添加到正在运行的服务器并更新新服务器进程。

在许多服务器上维护大量 ssh 密钥可能需要做更多工作,但这就是自动化的作用所在。

答案2

您永远不应将此私钥提供给最终用户。最终用户应拥有自己的登录方式,例如公钥身份验证(使用他们自己的受密码保护的私钥),然后进行 LDAP 授权。

分发 ec2 提供给您的私钥使得取消用户配置变得不可能。这正是所有安全和合规法规完全禁止使用共享凭证的原因。

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

  • 不可能通过日志知道谁真的是/曾经是主机
  • 如果不取消配置,就不可能取消用户的配置全部用户(包括紧急访问,这才是 EC2 私钥的真正用途)

答案3

请参阅亚马逊的文档访问凭证轮换

使用类似木偶或者如果您不想重新启动所有内容,则可以使用可靠的 ssh 脚本来运行并替换旧密钥的所有实例...或者只是重新启动所有内容。

相关内容