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版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon Linux2のPHPを7.2から7.3へアップデートしました
WordPressのサイトヘルスの推奨に従って使っていないテーマを削除したの推奨 …
-
-
Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)
やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …
-
-
Rocket.ChatにAPIで投稿するテスト(Postman)
トレーニング期間中で一時利用するチャットが欲しいなあと思い、Rocket.Cha …
-
-
AWS Organizations EC2宣言型ポリシーを設定する
2024/12/1に発表されましたOrganizationsの宣言型ポリシーを設 …
-
-
Amazon SNSサブスクリプションフィルターで優先度別のSQSキューにサブスクライブする
EC2のコンシューマーアプリケーションは優先度の高いキューのメッセージを先に処理 …
-
-
SageMaker AI StudioでJupyterLab スペースを作成しJupyterLab を起動、S3拡張のインストール
JupyterLab ユーザーガイドとJupyterLab 拡張機能を参照して、 …
-
-
AWSクイックスタートのActive Directory Domain Services on AWS
オンプレミスに見立てたActive Directory環境がほしかったので、AW …
-
-
AWS コスト最適化ハブを有効にしました
新しいコスト最適化ハブは、推奨アクションを一元化してコストを節約します 2023 …
-
-
AWS Lambda(Python)からTwitterに投稿する
「GoogleフォームからAPI Gatewayで作成したREST APIにPO …
-
-
AWS Wavelengthゾーンを有効にする
画面上で確認しておきたかったので有効にしておきました。 AWS Waveleng …