{"id":783,"date":"2025-03-14T13:31:29","date_gmt":"2025-03-14T04:31:29","guid":{"rendered":"https:\/\/baresupport.jp\/blog\/?p=783"},"modified":"2025-03-14T13:31:30","modified_gmt":"2025-03-14T04:31:30","slug":"aws-waf%e3%81%ae%e8%aa%a4%e6%a4%9c%e7%9f%a5%e3%82%92%e8%a6%8b%e3%81%a4%e3%81%91%e3%80%81athena%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e8%a7%a3%e6%b6%88%e3%81%97%e3%81%a6%e3%81%bf%e3%82%88%e3%81%86","status":"publish","type":"post","link":"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/","title":{"rendered":"AWS WAF\u306e\u8aa4\u691c\u77e5\u3092\u898b\u3064\u3051\u3001Athena\u3092\u4f7f\u3063\u3066\u89e3\u6d88\u3057\u3066\u307f\u3088\u3046"},"content":{"rendered":"\n<p>AWS WAF\uff08Web Application Firewall\uff09\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4fdd\u8b77\u3059\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u304c\u3001\u8aa4\u691c\u77e5\u304c\u767a\u751f\u3059\u308b\u3068\u6b63\u5f53\u306a\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u5229\u7528\u306b\u60aa\u5f71\u97ff\u3092\u53ca\u307c\u3059\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<br>\u672c\u8a18\u4e8b\u3067\u306f\u3001Athena\u3092\u6d3b\u7528\u3057\u3066\u8aa4\u691c\u77e5\u306e\u539f\u56e0\u3092\u52b9\u7387\u7684\u306b\u7279\u5b9a\u3057\u3001\u89e3\u6d88\u3059\u308b\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002\u30ed\u30b0\u30c7\u30fc\u30bf\u3092\u5206\u6790\u3057\u3001\u5177\u4f53\u7684\u306a\u6539\u5584\u624b\u9806\u3092\u5b66\u3076\u3053\u3068\u3067\u3001AWS WAF\u306e\u8a2d\u5b9a\u3092\u6700\u9069\u5316\u3057\u307e\u3057\u3087\u3046\u3002<br><br><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">\u3053\u306e\u8a18\u4e8b\u306e\u76ee\u6b21<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#AWS_WAF_%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8B%E3%81%A8%E6%B3%A8%E6%84%8F%E7%82%B9\" >AWS WAF \u306e\u4f7f\u7528\u4f8b\u3068\u6ce8\u610f\u70b9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%AD%E3%82%B0%E3%81%AE%E8%A7%A3%E6%9E%90%E3%81%A8%E8%AA%A4%E6%A4%9C%E7%9F%A5%E3%81%AE%E7%A2%BA%E8%AA%8D\" >\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u89e3\u6790\u3068\u8aa4\u691c\u77e5\u306e\u78ba\u8a8d<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#CDK%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%81%A7%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%82%92%E6%A7%8B%E7%AF%89\" >CDK\u30b9\u30bf\u30c3\u30af\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u69cb\u7bc9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#ALB%E3%81%B8%E3%81%AE%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E5%87%A6%E7%90%86%E3%81%AE%E6%A4%9C%E8%A8%BC\" >ALB\u3078\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u691c\u8a3c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#AWS_WAF%E3%81%AB%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%82%92%E9%81%A9%E5%BF%9C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E8%A8%AD%E5%AE%9A\" >AWS WAF\u306b\u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\u3092\u9069\u5fdc\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#Athena%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%AD%E3%82%B0%E3%82%92%E5%88%86%E6%9E%90\" >Athena\u3092\u4f7f\u3063\u3066\u30ed\u30b0\u3092\u5206\u6790<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#%E8%AA%A4%E6%A4%9C%E7%9F%A5%E8%A7%A3%E6%B6%88%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB%E7%B7%A8%E9%9B%86\" >\u8aa4\u691c\u77e5\u89e3\u6d88\u306e\u305f\u3081\u306e\u30eb\u30fc\u30eb\u7de8\u96c6<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B\" >\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u3092\u8a2d\u5b9a\u3059\u308b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#Athena%E3%81%A7%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B\" >Athena\u3067\u30af\u30a8\u30ea\u3092\u78ba\u8a8d\u3059\u308b<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/baresupport.jp\/blog\/2025\/03\/14\/783\/#_%E3%81%BE%E3%81%A8%E3%82%81\" >&nbsp;\u307e\u3068\u3081<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"AWS_WAF_%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8B%E3%81%A8%E6%B3%A8%E6%84%8F%E7%82%B9\"><\/span>AWS WAF \u306e\u4f7f\u7528\u4f8b\u3068\u6ce8\u610f\u70b9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>AWS WAF\u306f\u3001AWS\u74b0\u5883\u3067\u7a3c\u50cd\u3059\u308bWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4fdd\u8b77\u3059\u308b\u305f\u3081\u306e\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c4\u30fc\u30eb\u3067\u3059\u3002<br>\u4f8b\u3048\u3070 \u6b21\u306e\u56f3\u306e\u3088\u3046\u306bAWS WAF \u3092Application Load Balancer\uff08ALB\uff09 \u3068\u9023\u643a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"563\" src=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-alb-1024x563.png\" alt=\"\" class=\"wp-image-787\" srcset=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-alb-1024x563.png 1024w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-alb-300x165.png 300w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-alb-768x422.png 768w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-alb-1536x844.png 1536w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-alb.png 1550w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u4e00\u65b9\u3067\u3001WAF\u306b\u306f\u8aa4\u691c\u77e5\u306e\u30ea\u30b9\u30af\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u6b63\u5f53\u306a\u30e6\u30fc\u30b6\u30fc\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u4e0d\u5be9\u306a\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3068\u8aa4\u3063\u3066\u5224\u65ad\u3055\u308c\u3001\u30a2\u30af\u30bb\u30b9\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<br>\u3067\u306f\u3001\u4e0a\u8a18\u56f3\u306e\u69cb\u6210\u3092\u5b9f\u969b\u306b\u69cb\u7bc9\u3057\u3001\u8aa4\u691c\u77e5\u304c\u3069\u306e\u3088\u3046\u306a\u3082\u306e\u306a\u306e\u304b\u3092\u5177\u4f53\u7684\u306b\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%AD%E3%82%B0%E3%81%AE%E8%A7%A3%E6%9E%90%E3%81%A8%E8%AA%A4%E6%A4%9C%E7%9F%A5%E3%81%AE%E7%A2%BA%E8%AA%8D\"><\/span>\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u89e3\u6790\u3068\u8aa4\u691c\u77e5\u306e\u78ba\u8a8d<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u8aa4\u691c\u77e5\u3092\u5b9f\u969b\u306b\u78ba\u8a8d\u3059\u308b\u306b\u306f\u3001\u4e00\u5ea6\u8aa4\u691c\u77e5\u3092\u610f\u56f3\u7684\u306b\u767a\u751f\u3055\u305b\u3001\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u3092\u89e3\u6790\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u624b\u9806\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" type=\"1\"><li>CDK\u30b9\u30bf\u30c3\u30af\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u69cb\u7bc9<\/li><li>\u8aa4\u691c\u77e5\u3092\u610f\u56f3\u7684\u306b\u767a\u751f\u3055\u305b\u308b\u305f\u3081\u306e\u8a2d\u5b9a<\/li><li>AWS WAF\u306b\u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\u3092\u9069\u5fdc\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a<\/li><li>Athena\u3092\u4f7f\u3063\u3066\u30ed\u30b0\u3092\u5206\u6790<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CDK%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%81%A7%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%82%92%E6%A7%8B%E7%AF%89\"><\/span>CDK\u30b9\u30bf\u30c3\u30af\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u69cb\u7bc9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u672c\u691c\u8a3c\u74b0\u5883\u306fCDK\u30b9\u30bf\u30c3\u30af\u3092\u7528\u3044\u3066\u30a4\u30f3\u30d5\u30e9\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>```\nimport * as cdk from \"aws-cdk-lib\";\nimport { aws_ecs as ecs } from \"aws-cdk-lib\";\nimport { ApplicationLoadBalancedFargateService } from \"aws-cdk-lib\/aws-ecs-patterns\";\nimport { Construct } from \"constructs\";\n\nexport class ApplicationStack extends cdk.Stack {\n  constructor(scope: Construct, id: string, props?: cdk.StackProps) {\n    super(scope, id, props);\n\n    const applicationLoadBalancedFargateService =\n      new ApplicationLoadBalancedFargateService(this, \"sample\", {\n        desiredCount: 1,\n        taskImageOptions: {\n          image: ecs.ContainerImage.fromRegistry(\n            \/\/ \u30ec\u30b8\u30b9\u30c8\u30ea\u306f\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u66f8\u304d\u63db\u3048\n            \/\/ WAF \u306e\u30d6\u30ed\u30c3\u30af\u3092\u78ba\u8a8d\u3057\u305f\u3044\u3060\u3051\u306a\u3089\u3053\u306e\u307e\u307e\u3067\u3082 OK\n            \"public.ecr.aws\/nginx\/nginx:latest\"\n          ),\n        },\n      });\n    \/\/ WAF\n    const webACL = new cdk.aws_wafv2.CfnWebACL(this, \"main\", {\n      defaultAction: {\n        allow: {},\n      },\n      scope: \"REGIONAL\",\n      visibilityConfig: {\n        cloudWatchMetricsEnabled: false,\n        metricName: \"waf-main-metrics\",\n        sampledRequestsEnabled: true,\n      },\n      name: \"waf-main\",\n      rules: &#91;\n        {\n          name: \"AWS-AWSManagedRulesCommonRuleSet\",\n          priority: 0,\n          statement: {\n            managedRuleGroupStatement: {\n              name: \"AWSManagedRulesCommonRuleSet\",\n              vendorName: \"AWS\",\n              excludedRules: &#91;],\n            },\n          },\n          visibilityConfig: {\n            cloudWatchMetricsEnabled: true,\n            metricName: \"AWS-AWSManagedRulesCommonRuleSet\",\n            sampledRequestsEnabled: true,\n          },\n          overrideAction: {\n            none: {},\n          },\n        }\n      ],\n    });\n    const wafPolicy = new cdk.aws_wafv2.CfnWebACLAssociation(\n      this,\n      \"main-association\",\n      {\n        webAclArn: webACL.attrArn,\n        resourceArn:\n          applicationLoadBalancedFargateService.loadBalancer.loadBalancerArn,\n      }\n    );\n     \/\/ WAF\u30ed\u30b0\u7528S3\u30d0\u30b1\u30c3\u30c8\n    const bucket = new cdk.aws_s3.Bucket(this, \"awsWafLogsBucket\", {\n      bucketName: `aws-waf-logs-${this.account}-bucket`,\n      removalPolicy: cdk.RemovalPolicy.DESTROY,\n      blockPublicAccess: cdk.aws_s3.BlockPublicAccess.BLOCK_ALL,\n      encryption: cdk.aws_s3.BucketEncryption.S3_MANAGED,\n    })\n\n    \/\/ WAF\u30ed\u30b0\u51fa\u529b\u8a2d\u5b9a\n    const logConfig = new cdk.aws_wafv2.CfnLoggingConfiguration(\n      this,\n      \"wafV2LoggingConfiguration\",\n      {\n        logDestinationConfigs: &#91;bucket.bucketArn],\n        resourceArn: webACL.attrArn,\n      }\n    )\n  }\n}\n```\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ALB%E3%81%B8%E3%81%AE%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E5%87%A6%E7%90%86%E3%81%AE%E6%A4%9C%E8%A8%BC\"><\/span>ALB\u3078\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u691c\u8a3c<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u672c\u691c\u8a3c\u74b0\u5883\u3067\u306f\u3001\u5916\u90e8\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089ALB\u306b\u5bfe\u3057\u3066 `POST:\/api\/files` \u306e URI \u3067 base64 \u306b\u5909\u63db\u3055\u308c\u305f\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3092\u30ea\u30af\u30a8\u30b9\u30c8\u30dc\u30c7\u30a3\u306b\u8a70\u3081\u3066\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u51e6\u7406\u3092\u884c\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"AWS_WAF%E3%81%AB%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%89%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%82%92%E9%81%A9%E5%BF%9C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E8%A8%AD%E5%AE%9A\"><\/span>AWS WAF\u306b\u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\u3092\u9069\u5fdc\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>AWS WAF \u306b\u3001\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\u306e\u30b3\u30a2\u30eb\u30fc\u30eb\u30bb\u30c3\u30c8 (CRS) \u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\uff08AWS-AWSManagedRulesCommonRuleSet\uff09\u3092\u9069\u5fdc\u3055\u305b\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"151\" src=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/image-1024x151.png\" alt=\"\" class=\"wp-image-788\" srcset=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/image-1024x151.png 1024w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/image-300x44.png 300w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/image-768x114.png 768w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/image-1536x227.png 1536w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/image-2048x303.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Athena%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%AD%E3%82%B0%E3%82%92%E5%88%86%E6%9E%90\"><\/span>Athena\u3092\u4f7f\u3063\u3066\u30ed\u30b0\u3092\u5206\u6790<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\u3092\u9069\u5fdc\u3059\u308b\u307e\u3067\u306e\u8a2d\u5b9a\u3092\u7d42\u308f\u3089\u305b\u305f\u5f8c\u3001\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u3092\u8caf\u3081\u308b\u305f\u3081\u306bAWS WAF\u3092\u95a2\u9023\u3065\u3051\u305fALB\u30921\u65e5\u653e\u7f6e\u3057\u307e\u3057\u305f\u3002\u305d\u306e\u5f8c\u3001AWS\u4ee5\u4e0b\u306e\u30b5\u30a4\u30c8\u3092\u3092\u53c2\u8003\u306b Athena \u306e\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3001\u653e\u7f6e\u3057\u3066\u53d6\u5f97\u3055\u308c\u305f\u30ed\u30b0\u3092\u6b21\u306e\u30af\u30a8\u30ea\u3067\u89e3\u6790\u3059\u308b\u3068\u3001\u30ad\u30e3\u30d7\u30c1\u30e3\u753b\u50cf\u306e\u3088\u3046\u306a\u7d50\u679c\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<br><br>AWS\u300cAWS WAF \u30ed\u30b0\u3092\u30af\u30a8\u30ea\u3059\u308b\u300d<a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/athena\/latest\/ug\/waf-logs.html\uff082025\/2\/21\u78ba\u8a8d\uff09\">https:\/\/docs.aws.amazon.com\/ja_jp\/athena\/latest\/ug\/waf-logs.html<\/a>\uff082025\/2\/21\u78ba\u8a8d\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>```\nSELECT \n  COUNT(*) AS count,\n  terminatingruleid,\n  httprequest.httpmethod,\n  httprequest.uri\nFROM waf_logs\nWHERE action='BLOCK'\nGROUP BY webaclid, terminatingruleid, httprequest.uri, httprequest.httpmethod\nORDER BY count DESC\nLIMIT 100;\n```\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"521\" src=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf_block-1024x521.png\" alt=\"\" class=\"wp-image-789\" srcset=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf_block-1024x521.png 1024w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf_block-300x153.png 300w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf_block-768x391.png 768w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf_block-1536x781.png 1536w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf_block-2048x1042.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u30af\u30a8\u30ea\u306e\u7d50\u679c\u304b\u3089\u3001\u653b\u6483\u3068\u601d\u3057\u304d\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u6df7\u3056\u308a\u3001\u3053\u3061\u3089\u3067\u7528\u610f\u3057\u305f`POST:\/api\/files` \u304c\u691c\u77e5\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002<br>\u8aa4\u691c\u77e5\u306e\u7591\u3044\u304c\u3042\u308b\u306e\u3067\u3001\u3088\u308a\u8a73\u7d30\u3092\u6b21\u306e\u30af\u30a8\u30ea\u3067\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>```\nSELECT \n  action,\n  httprequest.uri,\n  labels,\n  oversizefields\nFROM waf_logs\nWHERE action='BLOCK' \nand httprequest.uri='\/api\/files'\nLIMIT 100;\n```\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"377\" src=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-block-details-1024x377.png\" alt=\"\" class=\"wp-image-790\" srcset=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-block-details-1024x377.png 1024w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-block-details-300x110.png 300w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-block-details-768x282.png 768w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-block-details-1536x565.png 1536w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-block-details.png 1588w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u4ee5\u4e0b\u306eAWS\u306e\u30b5\u30a4\u30c8\u306e `SizeRestrictions_BODY` \u306e\u89e3\u8aac\u3092\u898b\u3066\u307f\u308b\u3068\u3001\u300c8 KB (8,192 \u30d0\u30a4\u30c8) \u3092\u8d85\u3048\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u30dc\u30c7\u30a3\u3092\u691c\u67fb\u3057\u307e\u3059\u3002\u300d\u3068\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u3053\u3068\u304b\u3089\u3001Athena \u3067\u78ba\u8a8d\u3055\u308c\u305f `POST:\/api\/files` \u306f\u30ea\u30af\u30a8\u30b9\u30c8\u30dc\u30c7\u30a3\u306b\u5927\u304d\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u5165\u308c\u305f\u969b\u306b\u8aa4\u691c\u77e5\u3067 Block \u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3057\u305f\u3002<br><br>AWS\u300c\u30b3\u30a2\u30eb\u30fc\u30eb\u30bb\u30c3\u30c8 (CRS) \u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u30b0\u30eb\u30fc\u30d7\u300d<a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/waf\/latest\/developerguide\/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-crs\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.aws.amazon.com\/ja_jp\/waf\/latest\/developerguide\/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-crs<\/a>\uff082025\/2\/21\u78ba\u8a8d\uff09<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E8%AA%A4%E6%A4%9C%E7%9F%A5%E8%A7%A3%E6%B6%88%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%AB%E7%B7%A8%E9%9B%86\"><\/span>\u8aa4\u691c\u77e5\u89e3\u6d88\u306e\u305f\u3081\u306e\u30eb\u30fc\u30eb\u7de8\u96c6<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u4e0a\u8a18\u306e\u65b9\u6cd5\u3067\u3001`POST:\/api\/files` \u304c\u8aa4\u691c\u77e5\u3067 Block \u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u306e\u3067\u3001\u6b21\u306f\u3053\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u6642\u306f. `SizeRestrictions_BODY` \u3067\u30d6\u30ed\u30c3\u30af\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u8a2d\u5b9a\u3092\u3057\u307e\u3059\u3002<br>\u5177\u4f53\u7684\u306a\u624b\u9806\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<p>1.\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u3092\u8a2d\u5b9a\u3059\u308b<br>1-a CDK\u3067\u8a2d\u5b9a\u3059\u308b\u5834\u5408<br>1-b\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u8a2d\u5b9a\u3059\u308b\u5834\u5408<br>2.Athena\u3067\u30af\u30a8\u30ea\u3092\u78ba\u8a8d\u3059\u308b<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B\"><\/span>\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u3092\u8a2d\u5b9a\u3059\u308b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>AWS WAF \u306e\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u3092\u4f7f\u3046\u3053\u3068\u3067\u3001\u7279\u5b9a\u306e\u30eb\u30fc\u30eb\u306b\u3088\u308b\u30d6\u30ed\u30c3\u30af\u3092\u89e3\u9664\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u3067\u8a2d\u5b9a\u3092\u3059\u308b\u3053\u3068\u3067\u3001\u30eb\u30fc\u30eb\u4e00\u81f4\u6642\u306b\u691c\u77e5\u306f\u3059\u308b\u304c\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u300c\u8a31\u53ef\u300d\u3082\u300c\u62d2\u5426\u300d\u3082\u884c\u308f\u306a\u3044\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1-a CDK\u3067\u8a2d\u5b9a\u3059\u308b\u5834\u5408<\/h4>\n\n\n\n<p>CDK\u3067\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u306e\u8a2d\u5b9a\u3092\u3059\u308b\u5834\u5408\u306f\u3001WAF \u306e rule \u306e\u90e8\u5206\u3092\u6b21\u306e\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>```\n  rules: &#91;\n    {\n      name: \"AWS-AWSManagedRulesCommonRuleSet\",\n      priority: 0,\n      statement: {\n        managedRuleGroupStatement: {\n          name: \"AWSManagedRulesCommonRuleSet\",\n          vendorName: \"AWS\",\n          \/\/ excludedRules\u3092\u8ffd\u52a0\n          excludedRules: &#91;{ name: \"SizeRestrictions_BODY\" }],\n        },\n      },\n      visibilityConfig: {\n        cloudWatchMetricsEnabled: true,\n        metricName: \"AWS-AWSManagedRulesCommonRuleSet\",\n        sampledRequestsEnabled: true,\n      },\n      overrideAction: {\n        none: {},\n      },\n    }\n  ]\n```\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1-b\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u8a2d\u5b9a\u3059\u308b\u5834\u5408<\/h4>\n\n\n\n<p>\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u30b3\u30f3\u30bd\u30fc\u30eb\u3067\u5909\u66f4\u3057\u305f\u3044\u5834\u5408\u306f\u6b21\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>1. \u30eb\u30fc\u30eb\u7de8\u96c6\u753b\u9762\u3092\u958b\u304f<br>2. \u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u306b\u3057\u305f\u3044\u30eb\u30fc\u30eb\uff08\u4eca\u56de\u306fSizeRestrictions_BODY\uff09\u306e\u30d7\u30eb\u30c0\u30a6\u30f3\u9078\u629e\u9805\u76ee\u3092\u5909\u66f4<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-rule-edit-768x1024.png\" alt=\"\" class=\"wp-image-791\" srcset=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-rule-edit-768x1023.png 768w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-rule-edit-225x300.png 225w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-rule-edit.png 836w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p><br>3. \u4fdd\u5b58<br>4. \u30eb\u30fc\u30eb\u8a73\u7d30\u3067\u305d\u306e\u30eb\u30fc\u30eb\u304c `Override: Count` \u3068\u306a\u3063\u3066\u3044\u308c\u3070 OK<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Athena%E3%81%A7%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B\"><\/span>Athena\u3067\u30af\u30a8\u30ea\u3092\u78ba\u8a8d\u3059\u308b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30ab\u30a6\u30f3\u30c8\u30e2\u30fc\u30c9\u306b\u8a2d\u5b9a\u3057\u305f\u5f8c\u306b Athena \u306e\u30af\u30a8\u30ea\u3092\u3082\u3046\u4e00\u5ea6\u78ba\u8a8d\u3057\u3066\u307f\u308b\u3068\u3001\u8a2d\u5b9a\u3057\u3066\u304b\u3089\u3001`POST:\/api\/files` \u306e\u30ea\u30af\u30a8\u30b9\u30c8\u304c AWS WAF \u3092\u901a\u904e\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"441\" src=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-count-details-1-1024x441.png\" alt=\"\" class=\"wp-image-800\" srcset=\"https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-count-details-1-1024x441.png 1024w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-count-details-1-300x129.png 300w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-count-details-1-768x331.png 768w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-count-details-1-1536x662.png 1536w, https:\/\/baresupport.jp\/blog\/wp-content\/uploads\/2025\/03\/waf-count-details-1.png 1582w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_%E3%81%BE%E3%81%A8%E3%82%81\"><\/span>&nbsp;\u307e\u3068\u3081<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u3053\u3053\u307e\u3067\u3067 AWS WAF \u304c\u8aa4\u691c\u77e5\u3092\u3057\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3059\u308b\u65b9\u6cd5\u3084\u3001\u8aa4\u691c\u77e5\u3092\u89e3\u6d88\u3059\u308b\u65b9\u6cd5\u306e\u4f8b\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u5b9f\u969b\u306b AWS WAF \u3092\u904b\u7528\u3059\u308b\u969b\u306f\u3001\u5b9a\u671f\u7684\u306b\u30d6\u30ed\u30c3\u30af\u3055\u308c\u305f\u30a2\u30af\u30bb\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u5185\u5bb9\u3092\u89e3\u6790\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u5fc5\u8981\u4ee5\u4e0a\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u8a31\u53ef\u3057\u3066\u3057\u307e\u308f\u306a\u3044\u3088\u3046\u6c17\u3092\u3064\u3051\u3066\u30eb\u30fc\u30eb\u3092\u7de8\u96c6\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30de\u30cd\u30fc\u30b8\u30c9\u30eb\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30eb\u30fc\u30eb\u3092\u7528\u610f\u3057\u3066\u3044\u308b\u30d9\u30f3\u30c0\u30fc\u306b\u554f\u3044\u5408\u308f\u305b\u306a\u304c\u3089\u8aa4\u691c\u77e5\u3092\u89e3\u6d88\u3059\u308b\u3068\u3044\u3063\u305f\u3053\u3068\u3082\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>WAF \u306f\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ec\u30d9\u30eb\u306e\u5411\u4e0a\u306b\u3068\u3066\u3082\u6709\u52b9\u306a\u30c4\u30fc\u30eb\u3067\u3059\u304c\u3001\u305d\u306e\u904b\u7528\u306b\u306f\u5c02\u9580\u7684\u306a\u77e5\u8b58\u304c\u5fc5\u8981\u3067\u3059\u3002\u9069\u5207\u306a\u904b\u7528\u4f53\u5236\u3092\u7528\u610f\u3057\u3066\u304a\u304b\u306a\u3044\u3068\u8cbb\u7528\u3092\u304b\u3051\u3066\u5c0e\u5165\u3057\u305f\u3082\u306e\u306e\u3001\u8aa4\u691c\u77e5\u3060\u3089\u3051\u3067\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u306b\u60aa\u5f71\u97ff\u3092\u4e0e\u3048\u305f\u308a\u3001\u610f\u5473\u306e\u3042\u308b\u30eb\u30fc\u30eb\u3092\u8a2d\u5b9a\u3067\u304d\u305a\u4f55\u3082\u5b88\u308c\u3066\u3044\u306a\u3044\u3068\u3044\u3063\u305f\u4e8b\u614b\u306b\u306a\u308a\u304b\u306d\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p>\u3068\u308a\u3042\u3048\u305a WAF \u3092\u5c0e\u5165\u3057\u305f\u304b\u3089\u5b89\u5fc3\u3068\u601d\u3063\u3066\u3057\u307e\u3046\u306e\u306f\u5371\u967a\u3067\u3059\u3002\u81ea\u793e\u3067\u904b\u7528\u304c\u96e3\u3057\u3044\u5834\u5408\u306f\u30a2\u30a6\u30c8\u30bd\u30fc\u30b7\u30f3\u30b0\u3082\u691c\u8a0e\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u30d9\u30a2\u30b5\u30dd\u30fc\u30c8\u3067\u306f\u3001\u30a4\u30f3\u30d5\u30e9\u30a8\u30f3\u30b8\u30cb\u30a2\u304c\u304a\u5ba2\u69d8\u306e\u8981\u671b\u306b\u5fdc\u3058\u3066\u67d4\u8edf\u306b\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u300c\u30de\u30e2\u30eb \u30de\u30cd\u30fc\u30b8\u30c9\u30d7\u30e9\u30b9\u300d\u3084\u3001AWS WAF\u306e\u30de\u30cd\u30fc\u30b8\u30c9\u30b5\u30fc\u30d3\u30b9\u3067\u3042\u308b\u300cCloudbric WMS for AWS WAF\u300d\u306a\u3069\u3001AWS WAF\u306e\u904b\u7528\u3092\u52a9\u3051\u308b\u30b5\u30fc\u30d3\u30b9\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u3002\u305c\u3072\u304a\u6c17\u8efd\u306b\u3054\u76f8\u8ac7\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p><strong> \u53c2\u8003\u8cc7\u6599<\/strong><\/p>\n\n\n\n<p>\u30fbAWS \u300cWeb \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u304a\u3051\u308b Amazon ECS \/ AWS Fargate \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u300d<a href=\"https:\/\/aws.amazon.com\/jp\/builders-flash\/202409\/web-app-architecture-design-pattern\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/aws.amazon.com\/jp\/builders-flash\/202409\/web-app-architecture-design-pattern\/<\/a>\uff082025\/2\/21\u78ba\u8a8d\uff09<br><br>\u30fbDevelopersIO \u300cS3\u306b\u4fdd\u5b58\u3057\u305fAWS WAF\u30ed\u30b0\u3092Athena\u3067\u5206\u6790\u3057\u3066\u307f\u305f<a href=\"https:\/\/dev.classmethod.jp\/articles\/analyzing-waflogs-with-athena\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><a href=\"https:\/\/dev.classmethod.jp\/articles\/analyzing-waflogs-with-athena\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/dev.classmethod.jp\/articles\/analyzing-waflogs-with-athena\/<\/a>\uff082025\/2\/21\u78ba\u8a8d)<br><br>\u30fbAWS\u300cAWS WAF \u30ed\u30b0\u3092\u30af\u30a8\u30ea\u3059\u308b\u300d<a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/athena\/latest\/ug\/waf-logs.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.aws.amazon.com\/ja_jp\/athena\/latest\/ug\/waf-logs.html<\/a>\uff082025\/2\/21\u78ba\u8a8d\uff09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS WAF\uff08Web Application Firewall\uff09\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4fdd\u8b77\u3059\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u304c\u3001\u8aa4\u691c\u77e5\u304c\u767a\u751f\u3059\u308b\u3068\u6b63\u5f53\u306a\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u304c\u30d6\u30ed\u30c3\u30af\u3055\u308c\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u5229\u7528\u306b\u60aa\u5f71\u97ff\u3092\u53ca\u307c\u3059\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":798,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[18,9,7],"tags":[],"class_list":["post-783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-blog","category-security","category-surveillance"],"aioseo_notices":[],"views":1860,"_links":{"self":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/comments?post=783"}],"version-history":[{"count":14,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/783\/revisions"}],"predecessor-version":[{"id":838,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/783\/revisions\/838"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/media\/798"}],"wp:attachment":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/media?parent=783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/categories?post=783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/tags?post=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}