当前位置: 首页 > news >正文

AWS-WAF-Log S3存放,通过Athena查看

1.创建好waf-cdn 并且设置好规则和log存储方式为s3

在这里插入图片描述

2. Amazon Athena 服务 使用 (注意s3桶位置相同得区域)

https://docs.aws.amazon.com/zh_cn/athena/latest/ug/waf-logs.html#waf-example-count-matched-ip-addresses
官方文档参考,建一个分区查询表

不能直接使用 因为是cdn 资源需要修改相关字段

CREATE EXTERNAL TABLE `waf_logs`(`timestamp` bigint,`formatversion` int,`webaclid` string,`terminatingruleid` string,`terminatingruletype` string,`action` string,`terminatingrulematchdetails` array <struct <conditiontype: string,sensitivitylevel: string,location: string,matcheddata: array < string >>>,`httpsourcename` string,`httpsourceid` string,`rulegrouplist` array <struct <rulegroupid: string,terminatingrule: struct <ruleid: string,action: string,rulematchdetails: array <struct <conditiontype: string,sensitivitylevel: string,location: string,matcheddata: array < string >>>>,nonterminatingmatchingrules: array <struct <ruleid: string,action: string,overriddenaction: string,rulematchdetails: array <struct <conditiontype: string,sensitivitylevel: string,location: string,matcheddata: array < string >>>,challengeresponse: struct <responsecode: string,solvetimestamp: string>,captcharesponse: struct <responsecode: string,solvetimestamp: string>>>,excludedrules: string>>,
`ratebasedrulelist` array <struct <ratebasedruleid: string,limitkey: string,maxrateallowed: int>>,`nonterminatingmatchingrules` array <struct <ruleid: string,action: string,rulematchdetails: array <struct <conditiontype: string,sensitivitylevel: string,location: string,matcheddata: array < string >>>,challengeresponse: struct <responsecode: string,solvetimestamp: string>,captcharesponse: struct <responsecode: string,solvetimestamp: string>>>,`requestheadersinserted` array <struct <name: string,value: string>>,`responsecodesent` string,`httprequest` struct <clientip: string,country: string,headers: array <struct <name: string,value: string>>,uri: string,args: string,httpversion: string,httpmethod: string,requestid: string>,`labels` array <struct <name: string>>,`captcharesponse` struct <responsecode: string,solvetimestamp: string,failureReason: string>,`challengeresponse` struct <responsecode: string,solvetimestamp: string,failureReason: string>,`ja3Fingerprint` string,`oversizefields` string,`requestbodysize` int,`requestbodysizeinspectedbywaf` int
)
PARTITIONED BY ( 
`region` string, 
`date` string) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' 
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION's3://<aws-waf-logs-xxx>/AWSLogs/<accountID>/WAFLogs/cloudfront/<waf-acl>'
TBLPROPERTIES('projection.enabled' = 'true','projection.region.type' = 'enum','projection.region.values' = 'cloudfront','projection.date.type' = 'date','projection.date.range' = '2024/07/08,NOW','projection.date.format' = 'yyyy/MM/dd','projection.date.interval' = '1','projection.date.interval.unit' = 'DAYS','storage.location.template' = 's3://<aws-waf-logs-xxx>/AWSLogs/<accountID>/WAFLogs/${region}/<waf-acl>/${date}/')

修改< >中的字符为自己的资源

测试查询

SELECT COUNT(httpRequest.country) as count, httpRequest.country 
FROM waf_logs
WHERE terminatingruletype='RATE_BASED' 
GROUP BY httpRequest.country
ORDER BY count
LIMIT 100;
SELECT COUNT(*) AS count,webaclid,action,httprequest.clientip,httprequest.uri
FROM waf_logs
WHERE terminatingruleid='<id>'
GROUP BY webaclid, action, httprequest.clientip, httprequest.uri
ORDER BY count DESC
LIMIT 100;

具体的sql 字段需要修改成自己的 可以先检索全表 查看字段 方便搜索
在这里插入图片描述

http://www.lryc.cn/news/399537.html

相关文章:

  • 无法解析主机:mirrorlist.centos.org Centos 7
  • 自动驾驶论文总结
  • 【uniapp微信小程序】uniapp微信小程序——页面通信
  • 【笔记】从零开始做一个精灵龙女-画贴图阶段(上)
  • 线性代数|机器学习-P22逐步最小化一个函数
  • SpringCloudAlibaba Nacos配置中心与服务发现
  • .NET 一款获取内网共享机器的工具
  • 备考美国数学竞赛AMC8和AMC10:吃透1850道真题和知识点(持续)
  • 旅游景区度假村展示型网站如何建设渠道品牌
  • Python酷库之旅-第三方库Pandas(021)
  • jvm 06 补充 OOM 和具体工具使用
  • 使用机器学习 最近邻算法(Nearest Neighbors)进行点云分析 (scikit-learn Open3D numpy)
  • 安装jenkins最新版本初始化配置及使用JDK1.8构建项目详细讲解
  • 微软子公司Xandr遭隐私诉讼,或面临巨额罚款
  • 【VRP】基于常春藤算法IVY求解带时间窗的车辆路径问题TWVRP,最短距离附Matlab代码
  • 常用软件的docker compose安装
  • Excel第28享:如何新建一个Excel表格
  • 计算机网络知识汇总
  • 数据结构——考研笔记(二)线性表的定义和线性表之顺序表
  • quota使用
  • 解决fidder小黑怪倒出JMeter文件缺失域名、请求头
  • 智慧城市的神经网络:Transformer模型在智能城市构建中的应用
  • 产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)
  • Ansible 安装及使用说明
  • MyBatisPlus实现增删改查
  • 【Rust】——不安全Rust
  • 使机器人在执行任务时更加稳定
  • FFmpeg学习(五)-- libswresample使用说明及函数介绍
  • 车载视频监控管理方案:无人驾驶出租车安全出行的保障
  • 05STM32EXIT外部中断中断系统