SIEM on Amazon OpenSearch Serviceを構築
このブログまわりのモニタリングをSIEM on Amazon OpenSearch Serviceでやってみようと構築してみました。
https://github.com/aws-samples/siem-on-amazon-opensearch-serviceのCloudFormationテンプレートを使用しました。
目次
MaxMindの無料ライセンスの取得
IPアドレスの国情報、緯度経度の情報を使用するためにMaxMind社のGeoLite2 Freeを使用しています。
スタック作成時に無料ライセンスキーが必要ですので先に取得しておきました。
https://www.maxmind.com/en/homeにアクセスして、[Products]-[GeoLite2 Free Geolocation Data]を選択しました。
[Sign Up for GeoLite2]を選択しました。
必要事項を入力して送信しました。
入力したメールアドレスにURL付きのメールが送信されたのでクリックしてアカウントを作成しました。
ログインした後、[Manage License Keys]の[Create new license key]ボタンを押下しました。
License key descriptionに説明を入力して、デフォルトのまま[Confirm]を押下したらライセンスキーが発行されました。
CloudFormationスタックの作成
Githubページに戻ってクイックスタートから、大阪リージョンの[Launch Stack]を選択しました。
理由はブログのリソースが大阪リージョンだからです。
スタックのパラメータ、GeoLite2LicenseKeyに発行済のキーを入力しました。
AllowedSourceIPAddressesには、OpenSearch Dashboardにアクセスする送信元IPアドレス範囲を指定します。
後で、OpenSearch Serviceのポリシーで変更もできます。
スタック作成後、20分ほどでスタック作成が完了しました。
作成されたもの(見落としがあるかもですが)
SQSキュー
- aes-siem-dlq
- aes-siem-sqs-splitted-logs
OpenSearch Serviceドメイン
- aes-siem
SNSトピック
- aes-siem-alert
S3バケット
- aes-siem-123456789012-log
- aes-siem-123456789012-geo
- aes-siem-123456789012-snapshot
aes-siem-123456789012-logのUserLogs/プレフィックスに格納したログオブジェクトがLamda関数aes-siem-es-loaderによって、OpenSearch Serviceに保存されていました。
Lambda関数
- aes-siem-es-loader-stopper
- aes-siem-index-metrics-exporter
- aes-siem-es-loader
- aes-siem-configure-aes
- aes-siem-deploy-aes
- aes-siem-geoip-downloader
- siem-BucketNotificationsHandlerxxxxxxxxxxxxxx
aes-siem-es-loaderによってログがS3からOpenSearch Serviceに保存されていました。
他のS3バケットをソースにするならイベント追加で指定すればよさそうです。
CloudWatchアラーム
- siem-TotalFreeStorageSpaceRemainsLowAlarmxxxxxxx
KMS CMK
- aes-siem-key
EventBridgeルール
- siem-CwlRuleLambdaGeoipDownloaderxxxxxxxx
- siem-EsLoaderStopperRulexxxxxxxxxxx
- siem-EventBridgeRuleLambdaMetricsExporterxxxxxxxxx
IAMロール
- aes-siem-deploy-role-for-lambda
- aes-siem-es-loader-for-ec2
- aes-siem-snapshot-role
- aes-siem-sns-role
- siem-BucketNotificationsHandlerxxxxxxx
- siem-LambdaEsLoaderServiceRolexxxxxxxxx
- siem-LambdaEsLoaderStopperServiceRolexxxxxxxxx
- siem-LambdaGeoipDownloaderServiceRolexxxxxxxxxxxx
- siem-LambdaMetricsExporterServiceRolexxxxxxxxxxx
ログの収集
今後増やしてダッシュボードを調整するとして、とりあえずCloudFrontのログを収集してみました。
CloudFrontディストリビューションでバケットを設定しました。
プレフィックスにUserLogs/を入れなかったので、Lambda関数のイベントを追加しました。
Dashboardの設定
SIEM on Amazon OpenSearch Service Workshop 2.5. SIEM Settingsのインポートオブジェクトをダウンロードしました。
ダウンロードリンクはこちらでした。
https://aes-siem.s3.ap-northeast-1.amazonaws.com/assets/saved_objects.zip
ダウンロードした後展開しました。
CloudFormationスタックの出力からDashboardのURLにアクセスしました。
ログインユーザーと初期パスワードもスタックの出力にありました。
テナント選択は1人でしか使わないので、Privateにしました。
左ペインの[Stak Management]を選択しました。
[Saved Objects]を選択しました。
右上の[Import]を押下しました。
ダウンロードしたzipファイルを展開して、dashboard.ndjsonをインポートしました。
Dashboardのオブジェクトがインポートされました。
DashboardメニューからCloudFront Summaryを見てみました。
CloudFrontアクセスログを可視化したダッシュボードが表示されました。
今後、WAFや、ALB、S3、CloudTrailなども可視化していきます。
最後までお読みいただきましてありがとうございました!
「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
関連記事
-
-
Amazon Chimeのチャットを使ってみました
Amazon Chimeはビデオミーティングや配信したりというサービスですが、チ …
-
-
AWSセルフマネージドAD環境にEC2 Windowsサーバーをドメイン参加する
AWSクイックスタートのActive Directory Domain Serv …
-
-
名前解決してセッションマネージャが使えるようにVyOSのhost_name.pyを編集しました
発生したエラー セッションマネージャからこんなエラーが出力されました。 [cra …
-
-
slackのbotをAWS Lambda(Python)+API Gatewayで構築
slackで投稿した内容に応じて返信したり調べ物したりしてくれるbotですが、こ …
-
-
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する
ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでA …
-
-
Amazon RDS MySQLでCSVをload data するときに「Access denied」発生
超小ネタです。 AWSのデータベースサービスの Amazon RDSのMySQL …
-
-
DynamoDB Accelerator(DAX)のサンプルアプリケーション(Python)を実行
DynamoDBデベロッパーガイドのDynamoDB Accelerator(D …
-
-
AWS CLIでS3マルチパートアップロードを確認
AWS CLI を使用して、Amazon S3 にファイルをマルチパートアップロ …
-
-
Amazon Linux 2023、T4Gインスタンス、PHP8にWordPressを移行しました
ブログをAmazon Linux 2からAmazon Linux 2023に移行 …
-
-
AWS BatchでPandocコンテナイメージを実行する
「ECR(Amazon Elastic Container Registry)に …