7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft SentinelにAWSログを取り込む方法

Last updated at Posted at 2025-11-10

1.はじめに

システム環境全体のログを一元的に監視・分析したいというニーズは多くの現場で見られます。
ログの一元管理は、セキュリティ強化や運用効率化の観点から、企業にとって欠かせない取り組みとなっています。
本記事では、Microsoft Sentinel に Amazon Web Services (AWS) のログを取り込む方法について解説します。

AWSログの取り込みには、

手動セットアップ
自動セットアップ

の2通りの方法がありますが、ここでは Microsoftが推奨する自動セットアップ の手順を説明します。

また、Microsoftが提供している自動セットアップ用スクリプトを使用する際に、うまく動作しなかった箇所の修正ポイントも併せてまとめています。
これからセットアップを行う方や、スクリプトの動作に課題を感じている方は、ぜひ参考にしてください。

2.Sentinelとは

Microsoft Sentinelは、様々なシステムや機器からのログ情報を収集・統合・分析して脅威を検知するSIEM(Security Information and Event Management)機能と、
検知された脅威への対応を自動化するSOAR(Security Orchestration, Automation and Response)機能を兼ね備えた、クラウドベースのセキュリティ運用プラットフォームです。
Sentinelでは、Microsoft製品だけでなく、AWSやGCPなどの他クラウドやPaloalto、Fortinetなどサードパーティ製品などのログも取り込み可能です。

3.AWSログ取り込みの概要

Microsoft Sentinelでは、以下の4種類のAWSログを取り込むための標準コネクタが用意されています。

AWS CloudTrail:
AWSアカウント内での操作履歴(APIコールなど)を記録するログ。

VPC Flow Logs:
Amazon VPC(仮想ネットワーク)内のトラフィック情報を記録するログ。

AWS GuardDuty:
AWS環境における脅威検出結果を記録するログ。

AWS CloudWatch:
AWSのサービスやアプリケーションの動作状況を記録するログ。

AWS ConfigログはSentinelに標準コネクタが用意されていません(2025年11月時点)。Sentinelに取り込むには、Azure Functionなどを利用してカスタムコネクタを作成し、取り込む必要があります。

AWS Configログ
AWSリソースの構成や変更履歴に関する情報を記録するログ。

AWSのログをMicrosoft Sentinelに取り込む際は、以下のステップで処理が行われます。

1. ログをS3バケットに保存する
各種サービスから出力されたログは、指定されたS3バケットに格納されます。

2. S3バケットが新しいログの通知をSQSキューに送信する
新しいログファイルが保存されると、S3へログが格納されたことをトリガーにSQS(Simple Queue Service)に通知を送ります。

3. Sentinelが定期的にSQSをポーリングし、通知を受信する
Microsoft SentinelはSQSを定期的に確認し、新しいログの存在を検知します。

4. SentinelがS3バケットからログファイルを取得する
通知を受けたSentinelは、該当するログファイルをS3から受け取り、分析に利用します。

image.png

参考:

S3バケット:AWSのファイル置き場。ログやデータを保存するためのストレージ。
SQSキュー:AWSの通知箱。S3に新しいログが届いたことを他のサービスに知らせる役割。

4.取り込み手順

自動セットアップを使用したAWSログの取り込み手順について説明します。
前提条件は以下のサイトをご確認ください。

本手順ではAWSのCloudShellを利用しています。
物理PCでスクリプトを実行する場合は、PowerShell、AWS CLIのインストールが必要です。

1.対象のSentinel環境の「コンテンツハブ」より、「Amazon Web Service」をインストールします。

image.png

2.インストールが完了したら、「データコネクタ」を開き、「Amazon Web Service S3」を選択し、「Open connector page」をクリックします。
image.png

3.「Setup with PowerShell script (recommended)」をクリックします。
image.png

4.「AWS S3 Setup Script」をクリックし、セットアップ用のスクリプトをダウンロードします。External ID(Workspace ID)は後ほど使用するため、IDを控えておきます。
image.png

5.ダウンロードしたZIPファイルを展開します。
image.png

展開すると以下の2つのZIPファイルが表示されます。
今回は「ConfigAwsComToAzureCom.zip」を使用します。
image.png

6.AWSにサインインし、CloudShellを開きます。
image.png

image.png

7.「アクション」より「ファイルのアップロード」を選択し、「ConfigAwsComToAzureCom.zip」をアップロードします。
image.png
image.png

8.CloudShellで以下のコマンドを実行します。
※スクリプトの実行に失敗する場合は後述の「5.スクリプトの修正箇所」をご参照ください。

./ConfigAwsConnector.ps1 -LogPath {ログ出力先のパス} -AwsLogType {ログの種類}

ログの種類で有効な値は以下です。
"VPC", "CloudTrail", "GuardDuty"

コマンド実行すると以下のようなプロンプトが表示されます。
image.png

9.プロンプトの指示に従い、ロール、S3バケット、SQSなどのリソース名の指定や設定を完了させます。
External ID(Workspace ID)は、手順4で控えたIDを入力します。

image.png

10.コマンドが完了したら、Role ArnSqs UrlDestination Tableの値が出力されるため、値を控えておきます。
image.png

11.Sentinel画面に戻り、コマンドにより取得した値をそれぞれ入力し、「Add Connection」をクリックします。

Role to add:Role Arnの値
SQS URL:Sqs Urlの値
Destination Table:Destination Tableの値

image.png

接続に成功すると、画面右上にポップアップが表示され、画面下部にRole ARN、Queue URL、Destination tableの値が表示されます。

image.png

5.スクリプトの修正箇所

「ConfigAwsComToAzureCom」フォルダにあるスクリプトを実行した際、自身の環境では一部の処理が正常に動作しなかったため、スクリプトを修正しました。
スクリプトが正常に動作しない場合、以下の修正内容をご参照ください。

※2025年11月4日時点の情報です。

・Util\AwsResourceCreator.ps1 146行目あたり

修正前
$regionConfiguration = aws configure get region
修正後
aws configure set region ap-northeast-1
$regionConfiguration = aws configure get region

スクリプト内にリージョンを指定するコマンドがなく、エラーが発生したためリージョンを明示的に設定するコマンドを追加しました。
S3バケットを作成するリージョンとなりますので、適切なリージョン名を指定ください。

・ConfigVpcFlowDataConnector.ps1 25行目あたり

修正前
aws ec2 --output text --query 'Vpcs[*].{VpcId:VpcId}' describe-vpcs
修正後
(aws ec2 --query 'Vpcs[*].{VpcId:VpcId}' describe-vpcs | ConvertFrom-Json)."VPCId"

このコマンド実施後、VPCのIDの入力を求められるのですが、大量の出力がある場合、ページ分割(pager)により処理が進まないので、ページ分割を無効化するオプションを追加しました。

・ConfigGuardDutyDataConnector.ps1 199行目あたり、210行目あたり

修正前
aws --region $Region guardduty create-publishing-destination --detector-id $detectorId --destination-type S3 --destination-properties DestinationArn=$($AwsCloudResource):s3:::$bucketName, KmsKeyArn=$kmsArn | Out-Null
修正後
$destinationArn = "$($AwsCloudResource):s3:::$bucketName"
$destinationProperties = "DestinationArn={0},KmsKeyArn={1}" -f $destinationArn, $kmsArn
aws create-publishing-destination --detector-id $detectorId --destination-type S3 --destination-properties $destinationProperties --region $Region guardduty | Out-Null
修正前
aws --region $Region guardduty update-publishing-destination --detector-id $detectorId --destination-id $currentS3Destinations.DestinationId --destination-properties DestinationArn=$($AwsCloudResource):s3:::$bucketName, KmsKeyArn=$kmsArn | Out-Null
修正後
$destinationArn = "$($AwsCloudResource):s3:::$bucketName"
$destinationProperties = "DestinationArn={0},KmsKeyArn={1}" -f $destinationArn, $kmsArn
aws guardduty update-publishing-destination --detector-id $detectorId --destination-id $currentS3Destinations[0].DestinationId --destination-properties $destinationProperties --region $Region | Out-Nul

コマンドを実施するための変数が正しく格納されていないため、変数の格納方法を修正しました。

6.まとめ

本記事では、自動セットアップを使用してSentinelにAWSのログを取り込む方法と、スクリプトの修正点について紹介しました。
AWSのセキュリティログをSentinelで一元管理することで、可視性の向上やインシデント対応の迅速化が期待できます。
クラウド環境のセキュリティ強化に取り組む方は、ぜひ本記事を参考にしてみてください。

We Are Hiring!

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?