如何使用boto3启用S3存储桶的对象级日志记录

时间:2019-07-26 13:06:36

标签: amazon-web-services amazon-s3 boto3 amazon-cloudtrail

我正在尝试创建一个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启用对象级日志记录,如果可以的话。

2 个答案:

答案 0 :(得分:0)

您可以配置Amazon S3事件,以便在创建新对象时可以:

  • 触发 AWS Lambda函数
  • 将消息放入 Amazon SQS队列
  • Amazon SNS主题
  • 发送消息

请参阅:Configuring Amazon S3 Event Notifications

答案 1 :(得分:0)

您可以在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/',
                ]
            },
        ]            
    },
])