You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS中创建S3桶未加密创建时触发的CloudWatch告警

AWS未加密S3桶创建触发CloudWatch告警配置方法

前置要求

  • 需提前开启AWS CloudTrail,且跟踪范围覆盖S3桶的CreateBucket API事件
  • 持有对应AWS账号的IAM权限,可操作CloudTrail、CloudWatch、SNS、IAM相关配置

一、手动配置方式

步骤1:配置CloudTrail跟踪S3事件

  • 进入CloudTrail控制台,创建或编辑现有跟踪,确保管理事件已开启,且跟踪覆盖所有区域
  • 可选优化:在数据事件配置中筛选仅保留S3的CreateBucket操作,减少无效日志量

步骤2:创建CloudWatch指标过滤器

  • 进入CloudWatch控制台,选择「日志->日志组」,找到对应CloudTrail的日志组
  • 点击「操作->创建指标过滤器」,在过滤器模式中输入:
{ ($.eventName = CreateBucket) && ($.responseElements.ServerSideEncryptionConfiguration = "") }
  • 输入过滤器名称,指定自定义指标命名空间(例:S3SecurityMetrics),指标名称设为UnencryptedS3BucketCreated,指标值设为1,完成过滤器创建

步骤3:创建CloudWatch告警

  • 进入CloudWatch「告警->所有告警」,点击创建告警
  • 选择刚才创建的S3SecurityMetrics命名空间下的UnencryptedS3BucketCreated指标
  • 阈值设置为「大于等于1」,统计周期可设为1分钟
  • 配置通知动作:选择已有的SNS主题,或新建SNS主题绑定邮箱/短信/内部通知渠道
  • 输入告警名称和描述,完成创建

校验方法

手动创建一个未开启默认加密的S3桶,等待1-2分钟查看告警是否正常触发即可。

二、CloudFormation模板实现方式

直接使用以下YAML格式的CloudFormation模板部署即可,模板已包含所有依赖资源:

AWSTemplateFormatVersion: '2010-09-09'
Description: CloudWatch Alert for Unencrypted S3 Bucket Creation
Resources:
  # SNS告警通知主题
  UnencryptedS3AlertTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: Unencrypted S3 Bucket Alert Topic
      Subscription:
        - Endpoint: your-alert-email@example.com # 替换为实际告警接收邮箱
          Protocol: email
  # CloudTrail跟踪配置
  S3EventTrail:
    Type: AWS::CloudTrail::Trail
    Properties:
      IsLogging: true
      IncludeGlobalServiceEvents: true
      IsMultiRegionTrail: true
      S3BucketName: your-cloudtrail-log-bucket # 替换为你已存在的CloudTrail日志存储桶名称
  # 指标过滤器配置
  UnencryptedS3MetricFilter:
    Type: AWS::Logs::MetricFilter
    Properties:
      LogGroupName: /aws/cloudtrail/your-trail-log-group # 替换为你的CloudTrail日志组名称
      FilterPattern: '{ ($.eventName = CreateBucket) && ($.responseElements.ServerSideEncryptionConfiguration = "") }'
      MetricTransformations:
        - MetricValue: "1"
          MetricNamespace: "S3SecurityMetrics"
          MetricName: "UnencryptedS3BucketCreated"
  # CloudWatch告警配置
  UnencryptedS3Alert:
    Type: AWS::CloudWatch::Alarm
    Properties:
      AlarmName: UnencryptedS3BucketCreatedAlert
      AlarmDescription: 告警:检测到未开启加密的S3桶被创建
      MetricName: UnencryptedS3BucketCreated
      Namespace: S3SecurityMetrics
      Statistic: Sum
      Period: 60
      EvaluationPeriods: 1
      Threshold: 1
      ComparisonOperator: GreaterThanOrEqualToThreshold
      AlarmActions:
        - !Ref UnencryptedS3AlertTopic
      TreatMissingData: notBreaching

注意:部署前需要替换模板中标记的3处自定义内容:告警接收邮箱、CloudTrail日志存储桶名称、CloudTrail日志组名称

内容的提问来源于stack exchange,提问作者harshith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:39:03