将AWS凭证安全地存储在个人计算机上


10

如何将AWS凭证安全地存储在个人计算机上?

详细:

我们团队中的每个人都需要AWS安全凭证才能执行管理任务(凭证按角色分开)。这些凭据通常以明文形式存储在磁盘上的某些配置文件中。我认为这是非常不安全的,尤其是考虑到凭据是在团队成员之间分发,最终在备份中等等。

我更希望以加密形式存储这些凭据(例如,类似于ssh密钥)。是否有一些自动化的方法?还是我需要破解一些使用例如openssl来加密数据的bash脚本?

Web上有很多有关如何保护EC2实例上的凭据的信息。甚至还有Amazon IAM角色功能,但它也仅适用于EC2。


1
这是一个很好的问题,我对答案非常感兴趣。
ceejayoz

Answers:


4

https://github.com/realestate-com-au/credulous可能值得调查。从项目描述:

credulous是可安全管理AWS(IAM)凭证的命令行工具。目的是使用用户的公共SSH密钥对凭据进行加密,以便只有具有相应的私有SSH密钥的用户才能查看和使用它们。此外,该工具还将使用户能够轻松轮换 其当前凭据,而不会破坏用户当前的工作流程。

http://techblog.realestate.com.au/protecting-your-aws-keys-with-credulous/上有一篇介绍性博客文章。


太棒了,这正是我一直在寻找的东西(也是我自己无法找到的...)
arnuschky 2014年


4

很好的问题-根据要回答的人,您可能要走几条路。我将举例说明我们的用途:

  1. 根据用户(开发人员,基础结构,安全性,审核等)创建IAM角色-自定义策略以允许或拒绝基于用户访问的特定操作。

示例:允许管理员执行所有ec2操作。或者仅允许开发人员基于标签或子网的访问等。

  1. 使用特定的IAM角色启动ec2 Linux实例。为每个特定角色或用户启动一个实例(根据需要,预算等调整实例的大小/类型)

  2. 将每个实例的安全组配置为仅允许特定子网或单个IP,因此您可以锁定到SSH的流量入口。

  3. 为SSH设置自定义用户名/密码或加入域。

  4. 将每个用户登录或SSH分配给Linux实例的角色或用户访问权限。

  5. 现在,API密钥和访问权限是从实例IAM角色本身继承的,从而不需要存储用户密钥。只需确保锁定安全组,仅将访问权限授予Linux机器上的特定用户即可。用户应该能够正常使用AWS API编写脚本/使用API​​工具功能。

我们已经使用这种方法大约一年了,并且在AWS HSM中进行了额外的安全调整,例如租用访问时间,并且效果很好。

希望这对您或其他人有帮助。


好主意,谢谢!没想到。由于涉及的费用,我们目前无法选择,但我会牢记这一点。
arnuschky 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.