根据S3 GetObject和DeleteObject请求的速率限制触发警报

问题描述

最近,我的一个AWS账户遭到入侵,幸运的是,我们能够及时更改所有安全信息。为了避免再次发生这种情况,首先要做的就是建立一个秘密信息管理流程。

也就是说,如果我要从我的AWS账户内进行多次下载或删除,我也想触发cloudwatch警报。

我遇到过类似的解决方

  1. AWS WAF
  2. 已安装CDN
  3. 针对S3中的事件触发lambda函数

解决方案1和2无法满足我的要求,因为它们限制了来自AWS外部的请求。在S3级别实施后,它将自动限制内部和外部请求。

解决方案3中,当超过阈值时间限制和阈值文件数时,我无法在lambda函数中保留IP请求的多个对象。

是否有可能通过在S3级别进行限速来发出警报?

解决方法

AWS没有直接在S3上提供速率限制,但是您可以使用CloudTrails对SNS主题实施警报。

除非您明确要求团队中的任何人删除S3存储桶中的对象,否则您不应向任何人提供访问权限。以下是您可以遵循的一些想法:

实施最小特权访问

  • 您可以阻止访问以删除IAM用户上的对象 级别,因此任何人都无法删除任何项目。
  • 您可以修改Bucket策略以提供DeleteObject访问权限 特定用户/角色作为条件。

启用多因素身份验证(MFA)删除

  • MFA删除可以帮助防止意外删除存储桶。如果MFA 未启用删除功能,任何用户的密码都足够 特权根用户或IAM用户可以永久删除Amazon S3 对象。

  • MFA删除要求对以下任一选项进行附加身份验证 以下操作: 更改存储桶的版本控制状态 永久删除对象版本。

S3对象锁定

S3对象锁使您可以使用“多次写入一次”(WORM)模型存储对象。 S3对象锁可以帮助防止意外或不适当的数据删除。例如,您可以使用S3对象锁来帮助保护您的AWS CloudTrail日志。

带有Amazon S3的Amazon Macie

Macie使用机器学习来自动发现,分类和保护AWS中的敏感数据。梅西可以识别敏感数据,例如个人身份信息(PII)或知识产权。它为您提供了仪表板和警报,可让您了解如何访问或移动这些数据。


您可以了解有关S3最佳安全实践的更多信息。 https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/