我如何知道 Amazon AWS 密钥在哪里使用?

我如何知道 Amazon AWS 密钥在哪里使用?

我继承了一个 Amazon AWS 环境,其中 Root 帐户密钥已被广泛分发,以便对 S3 存储桶进行备份。

我需要追踪密钥的使用位置,以便我可以用具有有限权限的密钥替换它。

我在存储桶上设置了事件通知,以便向 SQS Q 发送消息来通知我对象何时创建。这些消息包含对象请求来源服务器的 IP 地址,但不包含正在使用的 IAM 密钥(仅包含正在使用的 Amazon 帐户的 ID)。

Cloudtrail 在这里也用不到,因为 S3 请求不会写入 Cloudtrail。

还有其他方法可以让我知道在发出 S3 请求时使用了哪个密钥吗?


请注意,这不是建议的解决方案,只是对我所做工作的更新。请使用上面建议的方法。我应该更新这个问题。

#

感谢 EEAA

我考虑过这一点,但有数百个存储桶在起作用,所以这不太实际。我希望在 IAM 中有一个地方可以跟踪密钥的使用情况。

鉴于我已经设置了事件和 SQS,我最终要做的是在可能的存储桶上设置事件,并将 S3 事件时间戳与 IAM 中的 key-last-used 时间戳提供的时间戳进行匹配。

这给了我与使用根密钥同时向 S3 发送请求的服务器的 IP 地址,从中我能够在几个服务器上找到根密钥。希望当我在接下来的几天检查根密钥时,我不会再看到它被使用。

如果没有,我可能必须按照您的建议在单独的存储桶上设置日志记录。

答案1

除了 Cloudtrail,您还应该为 S3 存储桶启用日志记录。执行此操作后,AWS 将开始记录规范用户ID用于向 S3 发出经过身份验证的请求。

引自AWS S3 文档在日志记录字段上:

请求者的规范用户 ID,或未经身份验证的请求的字符串“Anonymous”。如果请求者是 IAM 用户,则此字段将返回请求者的 IAM 用户名以及 IAM 用户所属的 AWS 根账户。此标识符与用于访问控制目的的标识符相同。

相关内容