更新

更新

我需要在 EC2 上为金融机构托管东西。银行希望进行完整的双因素身份验证,因此需要使用带有密码的密钥进行 SSH。SecureID 或类似的东西会很棒。如何通过 SSH 有效地为我的 EC2 环境创建双因素身份验证?

另外,我可以将 OpenVPN 视为双因素加密的一部分吗?

答案1

duo_unix,您可以为任何 SSH 登录方法添加双因素身份验证,并且使用Duo OpenVPN 集成,您可以为 OpenVPN 添加双因素身份验证。

免责声明,我在 Duo 工作。

答案2

更新

AWS 最近宣布Amazon EC2 和 Amazon RDS 的资源级权限解决下面我原来的回答中提到的 EC2 和 RDS 中 IAM 支持长期存在的缺陷:

今天,我们通过引入资源级权限使 IAM 变得更加强大亚马逊 EC2亚马逊 RDS。 [...]

在 EC2 端,您现在可以构建和使用 IAM 策略来控制对 EC2 实例、EBS 卷、图像和弹性 IP 地址的访问。[...]

以下仅列举一些您可以做的事情:

  • 允许用户在更大的多用户 EC2 环境中对有限的资源采取行动。
  • 为“开发”和“测试”资源设置不同的权限。
  • 控制哪些用户可以终止哪些实例。
  • 在对某些资源采取行动时,需要额外的安全措施,例如 MFA 身份验证。 [重点是我的]

正如所强调的,使用 MFA当对某些资源采取行动时现在 EC2 实例也可以这样做,因此你可以将 EC2 实例的停止和终止限制为通过用户名/密码进行身份验证的用户来自 MFA 设备的身份验证码。


初步答案

可通过以下方式轻松获得与 SecurID 类似的双因素身份验证AWS 身份和访问管理 (IAM)通过AWS 多重身份验证。这是否实际上适用于您的问题取决于您的特定用例,即您需要使用双因素身份验证保护哪些场景(例如,提到的 SSH 访问与 AWS 管理控制台访问与访问您在 EC2 上托管的网站等)。

具体来说,IAM 涵盖对 AWS 管理控制台的访问,但显然不包括 SSH,此外,EC2 是 AWS 产品之一,其中 IAM 不适用于资源级别,而仅适用于服务级别,请参阅与其他 AWS 产品集成将 AWS Identity and Access Management 与 EC2 结合使用,尤其是以下免责声明:

重要的

Amazon EC2 使用 SSH 密钥、Windows 密码和安全组来控制谁有权访问特定的 Amazon EC2 实例。您无法使用 IAM 系统允许或拒绝对特定实例的访问。

请注意,无论是否采用多因素身份验证,都强烈建议对任何 AWS 产品使用 IAM。

最后,我想强调一下 IAM 的最新两个新增功能,它们可能对您的用例有帮助:

答案3

您需要使用双因素身份验证来保护对 EC2 控制台的访问。您只能听天由命了。对于 SSH 访问,您可以做很多选择。您可以使用 SSH 密钥并要求密钥有密码。但是,请注意,没有什么可以阻止某人编写一个谎称证书有密码的 SSH 客户端。从安全角度来看,SSH 很棒,但它并不总是符合监管要求。例如,密钥可能需要定期重新生成。SSH 不支持这一点。

如果您决定使用双因素身份验证系统,PAM radius 就是您的朋友: http://www.wikidsystems.com/support/wikid-support-center/how-to/pam-radius-how-to

嗯,

答案4

EC2 允许您使用您可以创建的不同 SSH 证书来设置您的机器,对您来说最简单的解决方案就是创建一个需要密码的证书。

还要注意 EC2 的安全限制,安全性是外围的,您不知道哪些机器在里面做什么,因此对机器之间的通信设置严格的安全性,为此非常需要一些强加密 VPN(OpenVPN 或 stunnel)。

相关内容