Microsoft Sentinel をアマゾン ウェブ サービスに接続し、AWS サービス ログ データを取り込む
アマゾン ウェブ サービス (AWS) コネクタを使用して、AWS サービス ログを Microsoft Sentinel にプルします。 これらのコネクタは、Microsoft Sentinel に AWS リソース ログへのアクセスを許可することで機能します。 コネクタを設定すると、Microsoft Sentinel とアマゾン ウェブ サービス信頼関係が確立されます。 これを行うには、Microsoft Sentinel にアクセス許可を付与するロールを AWS で作成し、AWS ログにアクセスできるようにします。
このコネクタは、CloudTrail 管理とデータ ログ用のレガシ コネクタと、S3 バケットからログをプルして次の AWS サービスからログを取り込む新しいバージョンの 2 つのバージョンで使用できます (リンクは AWS ドキュメントのものです)。
- Amazon Virtual Private Cloud (VPC) - VPC フロー ログ
- Amazon GuardDuty - 検出結果
- AWS CloudTrail - 管理イベントとデータ イベント
- AWS CloudWatch - CloudWatch ログ
このタブでは、AWS S3 コネクタを構成する方法について説明します。 設定プロセスには、AWS 側と Microsoft Sentinel 側の 2 つの部分があります。 各側のプロセスは、もう一方の側で使用される情報を生成します。 この双方向認証により、セキュリティで保護された通信が作成されます。
前提条件
選択した AWS サービスのログによって Microsoft Sentinel で受け入れられている形式が使用されていることを確認します。
- Amazon VPC: headers; delimiter: space の GZIP 形式の .csv ファイル。
- Amazon GuardDuty: json-line 形式と GZIP 形式。
- AWS CloudTrail: GZIP 形式の .json ファイル。
- CloudWatch: ヘッダーなしの GZIP 形式の .csv ファイル。 ログをこの形式に変換する必要がある場合は、この CloudWatch ラムダ関数を使用できます。
Microsoft Sentinel ワークスペースへの書き込みアクセス許可が必要です。
Microsoft Sentinel のコンテンツ ハブからアマゾン ウェブ サービス ソリューションをインストールします。 詳細については、「Microsoft Sentinel のそのまま使えるコンテンツを検出して管理する」を参照してください。
アーキテクチャの概要
この図と次のテキストは、このコネクタ ソリューションの各部分がどのように相互作用するかを示しています。
AWS サービスは、ログを S3 (Simple Storage Service) ストレージ バケットに送信するように構成されています。
S3 バケットは、新しいログを受信するたびに通知メッセージを SQS (Simple Queue Service) メッセージ キューに送信します。
Microsoft Sentinel AWS S3 コネクタは、定期的に頻繁に SQS キューをポーリングします。 キューにメッセージがある場合は、ログ ファイルへのパスが含まれます。
コネクタはパスでメッセージを読み取り、S3 バケットからファイルをフェッチします。
SQS キューまたは S3 バケットに接続するために、Microsoft Sentinel は、フェデレーション Web ID プロバイダー (Microsoft Entra ID) を使用して、OpenID Connect (OIDC) を介した AWS での認証と AWS IAM ロール引き受けます。 ロールは、それらのリソースへのアクセスを許可するアクセス許可ポリシーで構成されます。
S3 コネクタを接続する
AWS 環境の場合:
S3 バケットにログを送信する AWS サービスを構成します。
通知を提供する単純なキュー サービス (SQS) キューを作成します。
OpenID Connect (OIDC) を使用して AWS に対してユーザーを認証するための Web ID プロバイダー を作成します。
OIDC Web ID プロバイダーによって認証されたユーザーに AWS リソースにアクセスするためのアクセス許可を付与する、想定ロールを作成します。
適切な IAM アクセス許可ポリシーをアタッチして、想定ロールに適切なリソース (S3 バケット、SQS) へのアクセスを許可します。
このプロセスの AWS 側を自動化するスクリプトを、GitHub リポジトリで使用できるようにしました。 自動セットアップについては、このドキュメントで後の手順を参照してください。
Microsoft Sentinel の場合:
- Microsoft Sentinel ポータルで AWS S3 コネクタを有効にして構成します。 以下の手順を参照してください。
自動セットアップ
オンボード プロセスを簡略化するために、Microsoft Sentinel は、コネクタの AWS 側 (必要な AWS リソース、資格情報、アクセス許可) の設定を自動化する PowerShell スクリプトを提供しています。
スクリプトは次のアクションを実行します。
OIDC Web ID プロバイダーを作成して、AWS に対して Microsoft Entra ID ユーザーを認証します。
特定の S3 バケットと SQS キュー内のログへのアクセスを OIDC 認証ユーザーに許可するために、必要最小限のアクセス許可を持つ IAM 想定ロールを作成します。
指定された AWS サービスが、その S3 バケットにログを送信し、その SQS キューに通知メッセージを送信できます。
必要に応じて、その S3 バケットと、この目的のために SQS キューを作成します。
必要な IAM アクセス許可ポリシーを構成し、上記で作成した IAM ロールに適用します。
Azure Government クラウドの場合、特殊化されたスクリプトによって異なる OIDC ID プロバイダーが作成され、それに IAM が引き受けたロールが割り当てられます。
自動セットアップの前提条件
- マシンに PowerShell と AWS CLI が必要です。
- PowerShell のインストール手順
- AWS CLI のインストール手順 (AWS ドキュメントから)
手順
スクリプトを実行してコネクタを設定するには、次の手順に従います。
Microsoft Sentinel のナビゲーション メニューから、 [データ コネクタ] を選択します。
データ コネクタ ギャラリーから [アマゾン ウェブ サービス S3] を選択します。
コネクタが表示されない場合は、Microsoft Sentinel の コンテンツ ハブ からアマゾン ウェブ サービス ソリューションをインストールします。
コネクタの詳細ペインで、[コネクタ ページを開く] を選択します。
[構成] セクションの[1. AWS 環境の設定] で、[PowerShell スクリプトを使用した設定 (推奨)] を展開します。
画面の指示に従って、AWS S3 セットアップ スクリプトをコネクタ ページからダウンロードして抽出します (リンクを使用すると、メインのセットアップ スクリプトとヘルパー スクリプトを含む zip ファイルがダウンロードされます)。
Note
Azure Government クラウドに AWS ログを取り込むには、代わりにこの特殊な AWS S3 Gov セットアップ スクリプトをダウンロードして抽出します。
スクリプトを実行する前に、PowerShell コマンド ラインから
aws configure
コマンドを実行し、メッセージに従って関連情報を入力します。 詳細については、AWS コマンド ライン インターフェイス | 構成の基本の情報を参照してください。次に、スクリプトを実行します。 コネクタ ページからコマンドをコピーし ([環境を設定するスクリプトの実行] の下)、コマンド ラインに貼り付けます。
スクリプトによって、ワークスペース ID の入力を求めるメッセージが表示されます。 この ID はコネクタ ページに表示されます。 それをコピーし、スクリプトのプロンプトに貼り付けます。
スクリプトの実行が完了したら、スクリプトの出力からロール ARN と SQS URL をコピーし (下の最初のスクリーンショットの例を参照)、コネクタ ページの [2. 接続の追加] の下のそれぞれのフィールドに貼り付けます (下の 2 番目のスクリーンショットを参照)。
[ターゲット テーブル] ドロップダウン リストでデータ型を選択します。 これにより、収集するためにこの接続が確立されている AWS サービスのログと、取り込まれたデータを格納する Log Analytics テーブルをコネクタに指示します。 [接続の追加] を選択します。
注意
スクリプトの実行が完了するには、最大 30 分かかる場合があります。
手動セットアップ
Microsoft では、自動セットアップ スクリプトを使用してこのコネクタをデプロイをお勧めします。 何らかの理由でこの利便性を利用したくない場合は、次の手順に従ってコネクタを手動で設定します。
- AWS リソースを準備する
- AWS 想定ロールを作成し、AWS Sentinel アカウントへのアクセスを許可する
- AWS ロールとキューの情報を S3 データ コネクタに追加する
- S3 バケットにログをエクスポートするように AWS サービスを構成する
AWS リソースを準備する
AWS サービス (VPC、GuardDuty、CloudTrail、または CloudWatch) からのログの発送先となる S3 バケットを作成します。
- AWS ドキュメントの S3 ストレージ バケットを作成する手順を参照してください。
S3 バケットによる通知の発行先となる標準の Simple Queue Service (SQS) メッセージ キューを作成します。
- AWS ドキュメントで標準の Simple Queue Service (SQS) キューを作成する手順を参照してください。
SQS キューに通知メッセージを送信するように S3 バケットを構成します。
- AWS ドキュメントの SQS キュー に通知を発行する手順を参照してください。
AWS データ コネクタをインストールして環境を準備する
Microsoft Azure Sentinel で、ナビゲーション メニューから [データ コネクタ] を選択します。
データ コネクタ ギャラリーから [アマゾン ウェブ サービス S3] を選択します。
コネクタが表示されない場合は、Microsoft Sentinel の コンテンツ ハブ からアマゾン ウェブ サービス ソリューションをインストールします。 詳細については、「Microsoft Sentinel のすぐに利用できるコンテンツを検出して管理する」を参照してください。
コネクタの詳細ペインで、[コネクタ ページを開く] を選択します。
[構成] で、[PowerShell スクリプトを使用した設定 (推奨)] を展開し、外部 ID (ワークスペース ID) をクリップボードにコピーします。
Open ID Connect (OIDC) Web ID プロバイダーと AWS の想定ロールを作成する
別のブラウザー ウィンドウまたはタブで、AWS コンソールを開きます。
Web ID プロバイダーを作成します。 AWS ドキュメントの次の手順に従います:
OpenID Connect (OIDC) ID プロバイダーの作成。パラメーター 選択/値 Comments クライアント ID - これは無視してください。既に存在します。 下の「対象ユーザー」行を参照してください。 [プロバイダーの種類] OpenID Connect 既定の [SAML] の代わり。 プロバイダー URL 商用: sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/
政府機関:sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
拇印 626d44e704d1ceabe3bf0d53397464ac8080142c
IAM コンソールで作成した場合は、[Get thumbprint] (拇印の取得) を選択すると、この結果が得られます。 対象者 商用: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e
政府機関:api://d4230588-5f84-4281-a9c7-2c15194b28f7
IAM の引き受けたロールを作成します。 AWS ドキュメントの次の手順に従います:
Web ID または OpenID Connect フェデレーションのロールの作成。パラメーター 選択/値 Comments 信頼されたエンティティの種類 Web ID 既定の [AWS サービス] の代わり。 ID プロバイダー 商用: sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/
政府機関:sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
前の手順で作成したプロバイダー。 対象者 商用: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e
政府機関:api://d4230588-5f84-4281-a9c7-2c15194b28f7
前の手順で ID プロバイダーに対して定義した対象ユーザー。 割り当てるアクセス許可 AmazonSQSReadOnlyAccess
AWSLambdaSQSQueueExecutionRole
AmazonS3ReadOnlyAccess
ROSAKMSProviderPolicy
- さまざまな種類の AWS サービス ログを取り込むための追加のポリシー
これらのポリシーの詳細については、Microsoft Sentinel GitHub リポジトリで関連する AWS S3 コネクタのアクセス許可ポリシーのページを参照してください。 名前 "OIDC_MicrosoftSentinelRole" Microsoft Sentinel への参照を含むわかりやすい名前を選択します。
名前には正確なプレフィックスOIDC_
が含まれている必要があります。そうでない場合、コネクタは正しく機能しません。新しいロールの信頼ポリシーを編集し、別の条件を追加します。
"sts:RoleSessionName": "MicrosoftSentinel_{WORKSPACE_ID)"
重要
sts:RoleSessionName
パラメーターの値には正確なプレフィックスMicrosoftSentinel_
が必要です。そうでない場合、コネクタは正しく機能しません。完成した信頼ポリシーは次のようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::XXXXXXXXXXXX:oidc-provider/sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/:aud": "api://d4230588-5f84-4281-a9c7-2c15194b28f7", "sts:RoleSessionName": "MicrosoftSentinel_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" } } } ] }
XXXXXXXXXXXX
は AWS アカウント ID です。XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
は Microsoft Sentinel ワークスペース ID です。
編集が完了したら、ポリシーを更新 (保存) します。
AWS ロールとキューの情報を S3 データ コネクタに追加する
AWS コンソールを開いたブラウザー タブで、ID およびアクセス管理 (IAM) サービスに移動し、ロールの一覧に移動します。 上記で作成したロールを選択します。
ARN をクリップボードにコピーします。
Simple Queue Service に移動し、作成した SQS キューを選択して、キューの URL を クリップボードにコピーします。
Microsoft Sentinel ブラウザー タブに戻ります。アマゾン ウェブ サービス S3 (プレビュー) データ コネクタ ページが開きます。 [2. 接続の追加] で:
- 2 つ前の手順でコピーした IAM ロール ARN を [追加するロール] フィールドに貼り付けます。
- 前の手順でコピーした SQS キューの URL を [SQS URL] フィールドに貼り付けます。
- [ターゲット テーブル] ドロップダウン リストでデータ型を選択します。 これにより、収集するためにこの接続が確立されている AWS サービスのログと、取り込まれたデータを格納する Log Analytics テーブルをコネクタに指示します。
- [接続の追加] を選択します。
S3 バケットにログをエクスポートするように AWS サービスを構成する
各種類のログを S3 バケットに送信する手順については、アマゾン ウェブ サービスのドキュメント (以下のリンク先) を参照してください。
-
注意
ログの形式をカスタマイズする場合は、start 属性を含める必要があります。これは、Log Analytics ワークスペースの TimeGenerated フィールドにマップされるためです。 それ以外の場合は、TimeGenerated フィールドに、イベントの取り込まれた時間が設定されます。これは、ログ イベントを正確に説明するものではありません。
GuardDuty の検出結果を S3 バケットにエクスポートします。
Note
AWS では、結果は既定で 6 時間ごとにエクスポートされます。 環境の要件に基づいて、更新されたアクティブな検出結果のエクスポート頻度を調整します。 プロセスを迅速化するために、15 分ごとに検出結果をエクスポートするように既定の設定を変更できます。 「更新されたアクティブな検出結果をエクスポートする頻度の設定」を参照してください。
TimeGenerated フィールドに、検索の [以下に更新] の値が設定されます。
AWS CloudTrail 証跡は、既定で S3 バケットに格納されます。
既知の問題とトラブルシューティング
既知の問題
異なる種類のログを同じ S3 バケットに格納することはできますが、同じパスに格納することはできません。
各 SQS キューは 1 種類のメッセージを指している必要があるため、GuardDuty の結果結果と VPC フローのログを取り込む場合は、種類ごとに個別のキューを設定する必要があります。
同様に、1 つの SQS キューは S3 バケット内で 1 つのパスのみを処理できます。そのため、複数のパスにログを格納する場合は、各パスに専用の SQS キューが必要です。
トラブルシューティング
アマゾン ウェブ サービス S3 コネクタに関する問題のトラブルシューティングの方法を確認してください。
次のステップ
このドキュメントでは、AWS リソースに接続して、Microsoft Sentinel にログを取り込む方法を学習しました。 Microsoft Sentinel の詳細については、次の記事を参照してください。
- データと潜在的な脅威を可視化する方法についての説明。
- Microsoft Sentinel を使用した脅威の検出の概要。
- ブックを使用してデータを監視する。