在我们的 django 应用程序中,我们允许用户直接将文件上传到 S3。
我们使用generate_presigned_post来做到这一点。
一切正常,但我们现在在Macie中收到可疑访问警报,因为它看到 EC2 凭据正在外部使用。
Macie 的描述是
此警报由在 Amazon IP 空间之外使用的临时 EC2 实例凭证创建。EC2 实例配置文件凭证预计最常用于 EC2 实例,它们已由 EC2 元数据服务提供。Metasploit 等开源开发框架使用此技术,从 AWS 网络外部观察它们的使用可能表明它们的潜在泄漏。请考虑与用户联系以确认他们是否有意在 AWS 之外使用 EC2 凭证。如果是这样,请将有效用户列入白名单或考虑重置 IAM 用户凭证。
这是有道理的,因为 Instance 角色会生成外部用户使用的预签名帖子 URL。
我是否真的面临外部用户可以获得与我的实例角色相同的访问权限的风险?
如果是这样,是否值得创建一个只能在我的特定存储桶中访问的单独角色s3:PutObject
,然后在生成预签名的帖子 url 之前假设该角色?这样,如果以某种方式受到损害,它就不会拥有与实例角色一样多的特权?
根据Boto3 文档,该 url 应该只授予将特定对象发布到特定存储桶的权限,但是这个 Macie 警报让我感到紧张。
谢谢!