AWS WAFをSIEM on Amazon OpenSearch Serviceで可視化
SIEM on Amazon OpenSearch Serviceを構築の環境にAWS WAFのログも追加しました。
目次
AWS WAFのフルログをS3に出力
Web ACLの[Logging and metrics]でLogging destinationをS3バケットにしました。
S3バケット名は、aws-waf-logs-で始まる必要がありました。
バケットポリシーはAWS WAF ログを一元化されたログ記録アカウントの Amazon S3 バケットに送信するにはどうすればよいですか?に記載のとおりにしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-xxxxx/AWSLogs/123456789012/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-xxxxx", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] } |
設定後、オブジェクトができていることを確認しました。
SIEM Lambdaにトリガー追加
Lambda関数aes-siem-es-loaderにトリガーを追加しました。
トリガーとしてaes-siem-123465789012-logバケットが作成されているので、そこにレプリケーションするか、トリガー追加するかの選択肢になりました。
ログオブジェクトを重複させるのはいやなのでトリガーを追加しました。
Lambda関数のCloudWatch Logsで対象のS3バケットからデータを取得して処理していることが確認できました。
OpenSearch Dashboardで確認
せっかくなのでAWSマネージドルールをたくさん有効化してみました。
許可とブロック数が見えます。
GEO情報とメソッド、HTTPバージョン、ユニークIP数です。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWSのアカウントを新規作成と、最低限やっておいた方がいいMFAの設定
AWSのアカウントを新規作成する手順を書き出しておきます。 ※2017年8月6日 …
-
-
php-fpm で Out of memoryが発生した際にメール通知する(AWS CloudWatch , Amazon SNS)
AWS CloudWatch LogsエージェントでAmazon EC2上のNg …
-
-
CodeWhisperer(Visual Studio Code)でセキュリティスキャン
CodeWhispererのセキュリティスキャンを実行してみました。 画面下の[ …
-
-
CloudWatchアラームをAWS CLIでテスト
CloudWatchアラームをテストするコマンドです。 –state …
-
-
AWSアカウントルートユーザーのMFAでYubicoセキュリティキーを設定した
先日Yubico セキュリティキーを購入して、USBにささなければならないのがな …
-
-
NATインスタンスを作成する
プライベートサブネットのEC2インスタンスからカスタムメトリクスとCloudWa …
-
-
AWS Organizationsで新規メンバー登録したアカウントを組織から離して解約
2021年現在ではこの方法しかないと認識していますので書き残します。 そのうち新 …
-
-
AWS Data Pipelineを使ってDynamoDBのアイテムを全件S3バケットに書き出した
ちょっと試してみたくてやってみました。 手順はこちらのチュートリアルを参考にすす …
-
-
EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました
EC2 Global Viewという機能がリリースされました。 EC2コンソール …
-
-
EC2 Ubuntu DesktopにRDP
Ubuntu Desktopが必要になりましたので、こちらのAWS EC2でデス …