如何使AWS CLI在我的服务器中更安全?

我是AWS CLI的新手,但有一点让我感到困扰,就是我需要将凭据存储在一个文件中。 我在S3上有几个buckets ,并为我的应用程序创build了一个帐户,这个帐户只能访问这个存储桶。 但是,如果我的服务器遭到黑客攻击,攻击者可以轻松读取我的.aws/credentials文件并销毁我的存储桶中的所有内容。 那么,我们公司会遇到很大的问题,因为我们依靠AWS很多! 有没有build议增加这种情况下的安全性

我可以完全理解,如果我的服务器被黑客入侵,并且有sudo接入,我的机会很渺茫,但是我想尽可能地避免任何损害。

问题1:

是我需要将我的凭据存储在一个文件中的事实

如果您的服务器是EC2实例,那么您不必将凭据存储在文件中。

相反,在您的EC2实例中使用IAMangular色和实例configuration文件。 执行此操作时,请不要configurationAWS CLI的凭据。 当您使用CLI执行命令时,CLI将收集服务器外的临时凭证并使用它们。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html

如果你这样做,那么如果有人获得未经授权的访问服务器,将不会有任何凭据文件让他们拿走。 要造成任何损害,他们必须在服务器上执行。

问题2:

为了防止损坏桶,请启用桶版本控制。 通过这样做,如果有人删除了对象和/或更改它们,则可以访问旧版本。

另外,如果您确实需要删除对象,则启用MFA删除。 启用时,必须在需要删除对象时使用MFA。 如果不使用MFA设备,则禁止删除对象。

对于任何人访问存储桶,给他们最小的权限。 盲目小心地允许s3:* 。 如果他们只需要读取对象,就给他们s3:GetObject

你应该做异地备份。 每天(例如)你会将所有的数据复制到不同的位置,以不同的提供者,如果发生灾难,你可以从中恢复。