amazon-web-services - Cloudwatch 事件规则侦听具有特定 keypath 的 s3 存储桶
问题描述
有没有办法收听 s3 存储桶,但只能在特定的“文件夹”内收听,例如,如果我有一个名为 input 的文件夹,我会说在“s3://bucket-name/folder1/*”上收听?现在好像只能听整个bucket了 这是我的流程: CloudTrail (monitor s3://bucket/path) -> CloudWatch (将有一个事件规则用于该 s3://bucket/path 中的任何 PUT) 触发器 -> StepFunction-> LambdaFunctions 我也尝试限制这来自 CloudWatch 角色,仅授予该特定 S3 存储桶路径的权限而没有运气。这是我的活动规则:
{ "source": [ "aws.s3" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "s3.amazonaws.com" ], "eventName": [ "PutObject" ], "requestParameters": { "bucketName": [ " bucketname" ] } } }
有什么解决方法吗?
解决方案
截至撰写本文之日,我目前还不知道有什么方法可以按照规则完成。该规则可能有解决方法,但我还没有找到它...
...但是:这可以通过使用CloudTrail
.
- 从您拥有的事件规则对象中删除键,并保留存储桶名称
- 转到 CloudTrail。如果所有数据事件都已打开,请禁用它们并创建您自己的轨迹。
- 在 CloudTrail 中,创建一个新的 Trail。指定对象或存储桶级别的操作
- 启用 S3 数据事件 - 假设您要侦听 putObject 或类似事件
- 指定您的存储桶,当它显示单个存储桶选择时,输入存储桶名称和您要监控的路径。
bucketname/folder1/folder2
- 指定是否要将读取和写入操作记录到跟踪中。
现在您只有该路径的日志跟踪。cloudwatch 规则或 eventBridge 规则现在可以指定存储桶以及您要监控的任何操作。
推荐阅读
- opengl - glFenceSync 可以跨线程或上下文边界使用吗?
- android - Xamarin.Forms“styles.xml”不影响任何东西
- json - 使用python解析一个困难的json日志
- c# - 在文件 C# 中查找和替换字符串
- python - 从列表中选择随机str而不重复python
- firebase - firebase“多播”发送和设备组发送之间的主要区别是什么?
- c# - 在文本框中查找特定单词并删除包含该单词的所有行
- ionic-framework - Ionic 4:离子运行浏览器在刷新页面时无法获取页面
- css - CSS卡在悬停时呈锯齿状,文本也在框外流动(溢出)
- azure - 如何在没有安全性的情况下在 azure 上设置 web api?