如何使用 boto3 为 S3 存储桶启用对象级日志记录
How Do I Enable Object-Level Logging for an S3 Bucket using boto3
我正在尝试创建一个 amazon cloudWatch 规则,该规则在将对象上传到存储桶时触发。我知道要做到这一点,我需要触发 PutObject 事件,但我能说的最好的是需要在存储桶上启用对象级日志记录。我将使用大量存储桶并希望能够自动执行该过程,而且由于大多数系统是如何设置的,因此使用 boto3 似乎最有意义。那么如何使用 boto3 打开对象级日志记录呢?
到目前为止我能找到的唯一 AWS 官方资源是:How Do I Enable Object-Level Logging for an S3 Bucket with AWS CloudTrail Data Events?
其中解释了如何通过 GUI 启用对象级日志记录。
我还查看了 boto3 library documentation
根据我的理解,两者最终都没有帮助。
我的主要目标是通过 boto3 启用对象级日志记录,如果可以的话。
您可以配置 Amazon S3 事件,以便在创建新对象时可以:
- 触发一个 AWS Lambda 函数
- 将消息放入 Amazon SQS 队列
- 向 Amazon SNS 主题发送消息
您可以在 CloudTrail 服务中使用 put_event_selectors() 功能。
client = boto3.client('s3')
client.put_event_selectors(
TrailName='TrailName',
EventSelectors=[
{
'ReadWriteType': 'All',
'IncludeManagementEvents': True,
'DataResources': [
{
'Type': 'AWS::S3::Object',
'Values': [
'arn:aws:s3:::your_bucket_name/',
]
},
]
},
])
我正在尝试创建一个 amazon cloudWatch 规则,该规则在将对象上传到存储桶时触发。我知道要做到这一点,我需要触发 PutObject 事件,但我能说的最好的是需要在存储桶上启用对象级日志记录。我将使用大量存储桶并希望能够自动执行该过程,而且由于大多数系统是如何设置的,因此使用 boto3 似乎最有意义。那么如何使用 boto3 打开对象级日志记录呢?
到目前为止我能找到的唯一 AWS 官方资源是:How Do I Enable Object-Level Logging for an S3 Bucket with AWS CloudTrail Data Events?
其中解释了如何通过 GUI 启用对象级日志记录。 我还查看了 boto3 library documentation
根据我的理解,两者最终都没有帮助。
我的主要目标是通过 boto3 启用对象级日志记录,如果可以的话。
您可以配置 Amazon S3 事件,以便在创建新对象时可以:
- 触发一个 AWS Lambda 函数
- 将消息放入 Amazon SQS 队列
- 向 Amazon SNS 主题发送消息
您可以在 CloudTrail 服务中使用 put_event_selectors() 功能。
client = boto3.client('s3')
client.put_event_selectors(
TrailName='TrailName',
EventSelectors=[
{
'ReadWriteType': 'All',
'IncludeManagementEvents': True,
'DataResources': [
{
'Type': 'AWS::S3::Object',
'Values': [
'arn:aws:s3:::your_bucket_name/',
]
},
]
},
])