Microsoft Sentinel をアマゾン ウェブ サービスに接続し、AWS サービス ログ データを取り込む

注意

Azure Sentinel は現在 Microsoft Sentinel と呼ばれており、今後数週間でこれらのページを更新する予定です。 最近の Microsoft のセキュリティ強化の詳細を確認してください。

アマゾン ウェブ サービス (AWS) コネクタを使用して、AWS サービス ログを Microsoft Sentinel にプルします。 これらのコネクタは、Microsoft Sentinel に AWS リソース ログへのアクセスを許可することで機能します。 コネクタを設定すると、Microsoft Sentinel とアマゾン ウェブ サービス信頼関係が確立されます。 これを行うには、Microsoft Sentinel にアクセス許可を付与するロールを AWS で作成し、AWS ログにアクセスできるようにします。

このコネクタは、CloudTrail 管理とデータ ログ用のレガシ コネクタと、S3 バケットからログをプルして次の AWS サービスからログを取り込む新しいバージョンの 2 つのバージョンで使用できます。

重要

  • 現在アマゾン ウェブ サービス S3 コネクタはプレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

このドキュメントでは、新しい AWS S3 コネクタを構成する方法について説明します。 設定プロセスには、AWS 側と Microsoft Sentinel 側の 2 つの部分があります。

  1. AWS 環境で次のコマンドを実行します。

    • S3 バケットにログを送信する AWS サービスを構成します。

    • 通知を提供する単純なキュー サービス (SQS) キューを作成します。

    • アマゾン ウェブ サービス リソースにアクセスするためのアクセス許可を Microsoft Sentinel アカウント (外部 ID) に付与する想定ロールを作成します。

    • 適切な IAM アクセス許可ポリシーをアタッチして、Microsoft Sentinel に適切なリソース (S3 バケット、SQS) へのアクセスを許可します。

  2. Microsoft Sentinel の場合:

    • Microsoft Sentinel ポータルで AWS S3 コネクタを有効にして構成します。 以下の手順を参照してください。

各側のプロセスは、もう一方の側で使用される情報を生成します。 この共有により、セキュリティで保護された通信が作成されます。

このプロセスの AWS 側を自動化するスクリプトを、GitHub リポジトリで使用できるようにしました。 自動セットアップについては、このドキュメントで後の手順を参照してください。

アーキテクチャの概要

この図と次のテキストは、このコネクタ ソリューションの各部分がどのように相互作用を示しています。

AWS S3 コネクタ アーキテクチャのスクリーンショット。

  • AWS サービスは、ログを S3 (Simple Storage Service) ストレージ バケットに送信するように構成されています。

  • S3 バケットは、新しいログを受信するたびに通知メッセージを SQS (Simple Queue Service) メッセージ キューに送信します。

  • Microsoft Sentinel AWS S3 コネクタは、定期的に頻繁に SQS キューをポーリングします。 キューにメッセージがある場合は、ログ ファイルへのパスが含まれます。

  • コネクタはパスでメッセージを読み取り、S3 バケットからファイルをフェッチします。

  • SQS キューと S3 バケットに接続するために、Microsoft Sentinel は AWS 資格情報と AWS S3 コネクタの構成に埋め込まれた接続情報を使用します。 AWS 資格情報は、ロールと、それらのリソースへのアクセスを許可するアクセス許可ポリシーを使用して構成されます。 同様に、Microsoft Sentinel ワークスペース ID は AWS 構成に埋め込まれているので、実際には 2 つの認証があります。

グローバルな前提条件

Microsoft Sentinel ワークスペースに対する書き込みアクセス許可が必要です。

自動セットアップ

オンボード プロセスを簡略化するために、Microsoft Sentinel は、コネクタの AWS 側 (必要な AWS リソース、資格情報、アクセス許可) の設定を自動化する PowerShell スクリプトを提供しています。

スクリプトは次のアクションを実行します。

  • 特定の S3 バケットと SQS キュー内のログへの Microsoft Sentinel アクセス権を付与するために、必要最小限のアクセス許可を持つ IAM 想定ロールを作成します。

  • 指定された AWS サービスが、その S3 バケットにログを送信し、その SQS キューに通知メッセージを送信できます。

  • 必要に応じて、その S3 バケットと、この目的のために SQS キューを作成します。

  • 必要な IAM アクセス許可ポリシーを構成し、上記で作成した IAM ロールに適用します。

前提条件

マシンに PowerShell と AWS CLI が必要です。

手順

スクリプトを実行してコネクタを設定するには、次の手順に従います。

  1. Microsoft Sentinel のナビゲーション メニューから、 [データ コネクタ] を選択します。

  2. データ コネクタ ギャラリーで、 アマゾン ウェブ サービス S3 を選択し、詳細ウィンドウで [コネクタ ページを開く] を選択します。

  3. [構成] セクションの[1. AWS 環境の設定] で、[PowerShell スクリプトを使用した設定 (推奨)] を展開します。

  4. 画面の指示に従って、AWS S3 セットアップ スクリプトをコネクタ ページからダウンロードして抽出します (リンクを使用すると、メインのセットアップ スクリプトとヘルパー スクリプトを含む zip ファイルがダウンロードされます)。

  5. スクリプトを実行する前に、PowerShell コマンド ラインから aws configure コマンドを実行し、メッセージに従って関連情報を入力します。 詳しくは、AWS コマンド ライン インターフェイスの構成の基本に関するページを参照してください。

  6. 次に、スクリプトを実行します。 コネクタ ページからコマンドをコピーし ([環境を設定するスクリプトの実行] の下)、コマンド ラインに貼り付けます。

  7. スクリプトによって、ワークスペース ID の入力を求めるメッセージが表示されます。 この ID はコネクタ ページに表示されます。 それをコピーし、スクリプトのプロンプトに貼り付けます。

    設定スクリプトを実行するコマンドとワークスペース ID のスクリーンショット。

  8. スクリプトの実行が完了したら、スクリプトの出力からロール ARNSQS URL をコピーし (下の最初のスクリーンショットの例を参照)、コネクタ ページの [2. 接続の追加] の下のそれぞれのフィールドに貼り付けます (下の 2 番目のスクリーンショットを参照)。

    AWS コネクタ設定スクリプトの出力のスクリーンショット。

    スクリプトから AWS ロール情報を S3 コネクタに貼り付けるスクリーンショット。

  9. [ターゲット テーブル] ドロップダウン リストでデータ型を選択します。 これにより、収集するためにこの接続が確立されている AWS サービスのログと、取り込まれたデータを格納する Log Analytics テーブルをコネクタに指示します。 [接続の追加] を選択します。

注意

スクリプトの実行が完了するには、最大 30 分かかる場合があります。

手動セットアップ

Microsoft では、自動セットアップ スクリプトを使用してこのコネクタをデプロイをお勧めします。 何らかの理由でこの利便性を利用したくない場合は、次の手順に従ってコネクタを手動で設定します。

前提条件

  • AWS サービス (VPC、GuardDuty、CloudTrail) からログを発送する S3 バケットが必要です。

  • S3 バケットが通知を発行する SQS メッセージ キューが必要です。

手順

手動セットアップは、次の手順で構成されます。

AWS 想定ロールを作成し、AWS Sentinel アカウントへのアクセスを許可する

  1. Microsoft Sentinel で、[データ コネクタ] を選択し、テーブルで [アマゾン ウェブ サービス] S3 行を選択し、右側の [AWS] ペインで [コネクタ ページを開く] を選択します。

  2. [構成] で、外部 ID (ワークスペース ID) をコピーし、それを別の場所に貼り付けます。

  3. アマゾン ウェブ サービス管理コンソールの [Security, Identity & Compliance](セキュリティ、ID、およびコンプライアンス)[IAM] を選択します。

    アマゾン ウェブ サービス コンソールのスクリーンショット。

  4. Roles(ロール) を選択し、Create role(ロールの作成) を選択します。

    AWS のロール作成画面のスクリーンショット。

  5. [別の AWS アカウント] を選択します。[アカウント ID] フィールドに、197857026523 番号を入力します (コピーしてここから貼り付けます)。 この番号は、Microsoft Sentinel の AWS のサービス アカウント ID です。 このロールを使用するアカウントが Microsoft Sentinel ユーザーであるというメッセージが AWS に表示されます。

    AWS のロール構成画面のスクリーンショット。

  6. [外部 ID が必要] チェック ボックスをオンにし、Microsoft Sentinel ポータルの AWS コネクタ ページからコピーして貼り付けした外部 ID (ワークスペース ID) を入力します。 次に、[次へ: 権限] を選びます。

    AWS のロール構成画面の構成のスクリーンショット。

  7. 次の [Attach Permissions Policies] ステップをここではスキップします。 指示された場合、後で戻ってきます。 タグを選択します。

    [Next: Tags](次へ: タグ) のスクリーンショット。

  8. (省略可能) タグを入力します。 次に、次のステップ: 確認\) をクリックします。

    タグ画面のスクリーンショット。

  9. ロール名を入力し、[ロールの作成] を選択します。

    ロールの名前付け画面のスクリーンショット。

  10. ロールの一覧で、作成した新しいロールを選択します。

    ロールの一覧画面のスクリーンショット。

  11. Role ARN の値をコピーし、それを別の場所に貼り付けます。

    ロールの ARN をコピーするスクリーンショット。

  12. AWS SQS ダッシュボードで、作成した SQS キューを選択し、キューの URL をコピーします。

    SQS キューの URL をコピーするスクリーンショット。

  13. Microsoft Sentinel ポータルの AWS S3 コネクタ ページで、[2. 接続の追加] の下で、次の手順を実行します。

    1. 2 つ前の手順でコピーした IAM ロール ARN を [ロール ARN] フィールドに貼り付けます。
    2. 前の手順でコピーした SQS キューの URL を [SQS URL] フィールドに貼り付けます。
    3. [ターゲット テーブル] ドロップダウン リストでデータ型を選択します。 これにより、収集するためにこの接続が確立されている AWS サービスのログと、取り込まれたデータを格納する Log Analytics テーブルをコネクタに指示します。
    4. [接続の追加] を選択します。

    S3 コネクタに AWS ロール接続を追加するスクリーンショット。

S3 バケットにログをエクスポートするように AWS サービスを構成する

AWS で単純な Queue サービス (SQS) を作成する

SQS キューをまだ作成していない場合は、ここで作成します。

SQS 通知を有効にする

SQS キューに通知を送信するように S3 バケットを構成します

IAM アクセス許可ポリシーを適用する

作成した Microsoft Sentinel ロールに適用する必要があるアクセス許可ポリシーには、次のものがあります。

  • AmazonSQSReadOnlyAccess

  • AWSLambdaSQSQueueExecutionRole

  • AmazonS3ReadOnlyAccess

  • KMS アクセス

    さまざまな種類の AWS サービス ログを取り込むために適用する必要があるこれらの追加のポリシーの詳細については、GitHub リポジトリの AWS S3 コネクタ アクセス許可ポリシーに関するページを参照してください。

既知の問題とトラブルシューティング

既知の問題

  • 異なる種類のログを同じ S3 バケットに格納することはできますが、同じパスに格納することはできません。

  • 各 SQS キューは 1 種類のメッセージを指している必要があるため、GuardDuty の結果結果 VPC フローのログを取り込む場合は、種類ごとに個別のキューを設定する必要があります。

  • 同様に、1 つの SQS キューは S3 バケット内で 1 つのパスのみを処理できます。そのため、複数のパスにログを格納する場合は、各パスに専用の SQS キューが必要です。

トラブルシューティングの手順

  1. S3 バケットにログ データが存在することを確認します。

    S3 バケット ダッシュボードを表示し、データがそれに送信されていることを確認します。 それ以外の場合は、AWS サービスが正しく設定されていることを確認します。

  2. メッセージが SQS キューに到着していることを確認します。

    AWS SQS キューのダッシュボードを表示する - [監視] タブには、"送信されたメッセージの数" グラフ ウィジェットのトラフィックが表示されます。 トラフィックがない場合は、S3 PUT オブジェクト通知が正しく構成されていることを確認します。

  3. メッセージが SQS キューから読み取られていることを確認します。

    キュー ダッシュボードで、"受信したメッセージの数" ウィジェットと "削除されたメッセージの数" ウィジェットを確認します。 [メッセージが削除されました] の下に通知がない場合は、正常性メッセージを確認します。 一部のアクセス許可が不足している可能性があります。 IAM の構成を確認します。

詳しくは、データ コネクタの正常性の監視に関するページをご覧ください。

アマゾン ウェブ サービス S3 コネクタに関する問題のトラブルシューティングの方法を確認してください。

次のステップ

このドキュメントでは、AWS リソースに接続して、Microsoft Sentinel にログを取り込む方法を学習しました。 Microsoft Sentinel の詳細については、次の記事を参照してください。