gpt4 book ai didi

amazon-web-services - 使用 IAM 角色真的比将加密凭证存储在磁盘上更安全吗?

转载 作者:行者123 更新时间:2023-12-02 03:41:04 24 4
gpt4 key购买 nike

使用 IAM 角色被吹捧为获取 EC2 实例凭证的首选方式,以便它可以与 AWS API 通信。我知道 key 是临时的并且会被轮换,这比使用存储在磁盘上的凭据有明显的优势。但是,它引入了另一个严重的安全问题,通过在磁盘上使用加密凭据可以避免该问题。

如果我的凭据在文件系统上,我可以使用文件系统的内置权限机制来阻止除需要 key 的进程以外的任何进程读取它们。在这种情况下,如果有人使用以不同用户身份运行的软件中的某些漏洞来破坏实例,而不是需要访问 AWS API 的用户,他将无法读取包含凭证的文件(由操作系统强制执行)。 (我没有考虑他可以提升到 root 访问权限的情况,在这种情况下,所有的赌注都关闭了)。

但是,在使用 IAM 角色时,凭证可通过网络调用获得:

http://169.254.169.254/latest/meta-data/iam/security-credentials/*. 

任何进程,即使是那些具有几乎零权限的进程,都可以对该 URL 执行 wget(或 curl 等)并拥有可随时使用的凭据。他们轮换的事实并没有使这种情况更加安全。

我在这里很容易想到的唯一补救措施是本地防火墙,以限制哪些进程可以访问 IP 地址 169.254.169.254。这看起来笨重和不优雅。

使用 IAM 角色时,是否有解决此安全问题的推荐方法?

最佳答案

考虑 IAM 角色的方式是将权限授予实例,而不是进程或用户。如果您的实例具有不应具有特权的用户或进程,则不应通过 IAM 角色提供该特权。

我们通常不将实例用作通用机器,而仅用于特定的应用程序目的。对于该用例,IAM 角色比使用固定凭证创建 IAM 用户并将凭证放在实例上要好得多。在任何一种情况下,接管实例的入侵者都可以将其用于我们授予该实例的任何特权。但是对于角色,入侵者不能拿走这些凭据并单独使用它们很长一段时间,因为凭据会过期并且经常轮换。入侵者必须保持对实例的所有权和存在以破坏角色,如果入侵者可以做到这一点,无论如何您都失去了所有安全性。

我们还通过 CloudFormation 堆栈创建 IAM 角色和新实例,这允许每个实例具有 正好它需要的特权,而不是所有同类实例的通用特权集。

关于amazon-web-services - 使用 IAM 角色真的比将加密凭证存储在磁盘上更安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20025044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com