EC2上的双因素authentication

我需要为EC2上的金融机构提供东西。 银行希望完成双因素身份validation,就像使用密码的密钥SSH一样。 像SecureID或类似的东西会很好。 如何通过SSH有效地创build双重身份validation到我的EC2环境?

我也可以考虑将OpenVPN作为双因子encryption的一部分吗?

使用duo_unix ,您可以为任何SSHlogin方法添加双因素身份validation,通过与Duo OpenVPN集成 ,您可以将双因素身份validation添加到OpenVPN。

免责声明,我为Duo工作。

更新

AWS最近宣布了针对Amazon EC2和Amazon RDS的资源级别权限,以解决我在以下原始答案中提到的EC2和RDS中IAM支持的长期缺陷:

今天,我们通过引入Amazon EC2和Amazon RDS的资源级别权限,使IAM更加强大。 […]

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

以下是您可以做的一些事情:

  • 允许用户在更大的多用户EC2环境中采取有限的一组资源。
  • 为“开发”和“testing”资源设置不同的权限。
  • 控制哪些用户可以终止哪些实例。
  • 在对特定资源进行操作时需要额外的安全措施,例如MFAauthentication。 [强调我的]

正如所强调的那样,EC2实例现在也可以使用MFA 来处理某些资源 ,例如,您可以将EC2实例的停止和终止限制为通过用户名/密码来自MFA设备的authentication码进行身份validation的用户。


初始答案

与SecurID相似的双因素身份validation可通过AWS身份和访问pipe理(IAM)通过AWS多因素身份validation轻松获得。 这是否适用于您的问题取决于您的具体使用情况,即您需要使用双因素身份validation来保护哪些场景(例如,提到的SSH访问与AWSpipe理控制台访问相比访问您在EC2上托pipe的网站等等。)。

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

重要

Amazon EC2使用SSH密钥,Windows密码和安全组来控制谁可以访问特定的Amazon EC2实例。 您不能使用IAM系统来允许或拒绝对特定实例的访问。

请注意,无论使用多因素身份validation,强烈build议使用IAM使用AWS。

最后,我想强调两个最近添加到IAM可能有助于您的用例:

  • AWS身份和访问pipe理 – 现在使用身份联合身份validation – 此新function允许企业中的现有身份(例如用户)使用IAM的细粒度访问控制访问AWS API和资源,而无需为每个身份创buildIAM用户。
  • AWS虚拟(软件)多重身份validation – RFC 6238支持 – 我们支持硬件MFA设备,您可以购买这些设备来生成MFAvalidation码。 今天,我们很高兴地宣布,我们正在推出一个附加选项 – 虚拟MFA设备。 您现在可以在智能手机或平板电脑上生成MFAvalidation码。

您需要使用双因素安全访问EC2控制台。 你在亚马逊的摆布。 对于SSH访问,你可以做很多select。 您可以执行SSH密钥,并要求密钥有密码。 但是,请注意,没有任何东西可以阻止某人编写SSH密钥的证书。 从安全PoV来看,SSH是非常棒的,但它并不总是能够满足监pipe要求。 例如,可能需要定期重新生成密钥。 SSH不支持。

如果您决定使用双因素authentication系统,则PAM半径是您的朋友: http : //www.wikidsystems.com/support/wikid-support-center/how-to/pam-radius-how-to

心连心,

EC2现在拥有两项身份validation服务,这是重要的第一步。

但是,托pipe在您不属于自己的云服务上的任何东西都应该被认为是不安全的。

原因是你有一个虚拟机,共享内存和共享资源。 使用EC2,您不知道数据所在的位置或存储方式。 您可能会发现您的VPS与其他组织的其他VPS共享。

所以,如果你打算把EC2上的财务数据存储在EBS驱动器上,你应该encryption它。

但是,虽然你可能认为这是安全的,但你只能像最薄弱的环节一样安全。

引用另一个来源,因为他说得很好。

…但是VM实例经常与其他实例共享物理硬件,并且因为EC2是公共服务,所以这些共同驻留的VM可能不是完全友好的。 当然,这里面的主要威胁是软件漏洞 – 可以让攻击者从一台虚拟机中跳出来并进入另一台虚拟机。 但是,即使你完善了软件,也存在另一个更为隐蔽的威胁:即攻击者VM实例能够在共驻虚拟机上运行一个旁路攻击 。

这将使2因素authentication对这种types的攻击无用。

现在,如果你能忍受,那你怎么做? 这个stackoverflow问题/答案提供了一些使用谷歌authentication者,这是更好的一个答案的答案。

但是有很多2因素authentication选项,有些需要硬件keyfobs和其他像谷歌authenticator使用您的手机。 银行或金融机构实际上可以规定他们将允许哪种2因素authentication方法。

OpenID是一个好主意,它允许你使用你的openidlogin到许多服务。 但它也有缺陷,因为它允许一个login访问许多东西。 快速谷歌,我发现http://wikid.com/使用OpenID和2因素authentication。 我会犹豫在你的具体情况下使用它。

顺便问一下,你是否会接受信用卡付款? 您可能会发现您需要符合PCI标准,而且我不完全确定您是否能够遵从EC2实例。 他们相当严格,但有充分的理由。 虽然不直接接受信用卡付款,也不存储信用卡数据,但通过您的网站可以与之互动的第三方支付提供商服务,可以降低风险。

如果您是接受支付卡的商家,则需要符合PCI数据安全标准。 您只能从您的付款品牌或收单方中找出您的具体合规要求。 但是,在采取行动之前,您可能需要获取背景信息,并从这里的信息和链接中了解您需要做什么。

EC2允许您使用不同的SSH证书来设置您的机器,最简单的解决scheme就是创build一个需要密码的机器。

另外要注意EC2的安全限制,安全性是外围的,你不知道哪个机器在做什么,所以在机器之间进行严格的安全通信,一些强大的encryptionVPN(OpenVPN或stunnel)是非常需要的。