在个人机器上安全地存储 AWS 凭证

在个人机器上安全地存储 AWS 凭证

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

详细地:

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

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

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

答案1

https://github.com/realestate-com-au/credulous可能值得研究。来自项目描述:

轻信是一个命令行工具,用于管理安全地使用 AWS (IAM) 凭证目的是使用用户的公共 SSH 密钥这样只有拥有相应私有 SSH 密钥能够看到并使用它们。此外,该工具还将使用户能够轻松旋转 他们当前的凭证,而不会破坏用户当前的工作流程。

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

答案2

这个问题问得好,根据回答者的不同,你可能会有几种方法可供选择。我给你举一个我们使用的例子:

  1. 根据用户(开发人员、基础设施、安全、审计等)创建 IAM 角色 - 定制策略以根据用户访问允许或拒绝特定操作。

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

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

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

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

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

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

我们已经使用这种方法大约一年了 - 并加入了额外的安全调整,比如租用访问时间,并纳入了 AWS HSM,效果非常好。

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

相关内容