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

Amazon Web Services (AWS) サービス ログ コネクタは、CloudTrail 管理とデータ ログのレガシ コネクタと、S3 バケットからログをプルすることで次の AWS サービスからログを取り込む新しいバージョンの 2 つのバージョンで利用できます (AWS ドキュメントへのリンク)。

S3コネクタタブでは、AWS S3コネクタの設定方法を2つの方法のいずれかで説明しています。

前提条件

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

  • Microsoft Sentinelの Content Hub から Amazon Web Services ソリューションをインストールします。 詳細については、「Microsoft Sentinel のすぐに使えるコンテンツを確認して管理する」を参照してください。

  • PowerShell と AWS CLI をマシンにインストールします (自動セットアップのみ)。

  • 選択した AWS サービスのログで、Microsoft Sentinelで受け入れられる形式が使用されていることを確認します。

    • Amazon VPC: ヘッダーを含む GZIP 形式のファイルを .csv します。区切り記号: スペース。
    • Amazon GuardDuty: json-line 形式と GZIP 形式。
    • AWS CloudTrail: GZIP 形式の .json ファイル。
    • CloudWatch: ヘッダーなしの GZIP 形式の .csv ファイル。 ログをこの形式に変換する必要がある場合は、この CloudWatch ラムダ関数を使用できます。

自動セットアップ

オンボーディングプロセスを簡素化するために、Microsoft SentinelはAWS側のセットアップを自動化するPowerShellスクリプトを提供しました。必要なAWSリソース、認証情報、権限も含まれています。

スクリプト:

  • OIDC Web ID プロバイダーを作成して、AWS Microsoft Entra IDユーザーを認証します。 Web ID プロバイダーが既に存在する場合、スクリプトは既存のプロバイダーに対象ユーザーとしてMicrosoft Sentinelを追加します。

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

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

  • 必要に応じて、ログ保存用のS3バケットと通知用のSQSキューを作成します。

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

Azure Governmentクラウドの場合、専用スクリプトが別のOIDCウェブアイデンティティプロバイダーを作成し、そのプロバイダーにIAMの役割を割り当てます。

手順

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

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

  2. データ コネクタ ギャラリーから [Amazon Web Services S3 ] を選択します。

    コネクタが表示されない場合は、Microsoft Sentinelの Content Hub から Amazon Web Services ソリューションをインストールします。

  3. コネクタの詳細ウィンドウで、[コネクタ ページを 開く] を選択します。

  4. Configuration セクションの 1. AWS 環境を設定する で、PowerShell スクリプトを使用してセットアップする(推奨) を展開します。

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

    注:

    AWS ログをAzure Governmentクラウドに取り込むには、代わりにこの特殊な AWS S3 Gov セットアップ スクリプトをダウンロードして抽出します。

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

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

  8. このスクリプトでは、ワークスペース ID の入力を求められます。 この ID はコネクタ ページに表示されます。 それをコピーし、スクリプトのプロンプトに貼り付けます。

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

  9. スクリプトの実行が終わったら、スクリプトの出力から Role ARNSQS URL をコピーし、それぞれの項目にコネクターページの2の下に貼り付けます 。つながりを加えましょう。

    W S コネクタセットアップ スクリプトの出力のスクリーンショット。

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

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

注:

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

手動セットアップ

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

  1. aws ログを収集してMicrosoft Sentinelするように Amazon Web Services 環境を設定する」の説明に従って AWS 環境を設定します。

  2. AWS コンソールで、次の手順を実行します。

    1. ID とアクセス管理 (IAM) サービスを入力し、[ロール] の一覧に移動します。 上記で作成したロールを選択します。

    2. ARN をクリップボードにコピーします。

    3. Simple Queue Service を入力し、作成した SQS キューを選択し、キューの URL をクリップボードにコピーします。

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

  4. データ コネクタ ギャラリーから [Amazon Web Services S3 ] を選択します。

    コネクタが表示されない場合は、Microsoft Sentinelの Content Hub から Amazon Web Services ソリューションをインストールします。 詳細については、「Microsoft Sentinel のすぐに使えるコンテンツを確認して管理する」を参照してください。

  5. コネクタの詳細ウィンドウで、[コネクタ ページを 開く] を選択します。

  6. 2. 接続を追加の下:

    1. AWS IAMコンソールからコピーしたIAMロールARNを 「追加する役割 」欄に貼り付けます。
    2. AWS Simple Queue ServiceコンソールからコピーしたSQSキューURLを SQS URL フィールドに貼り付けます。
    3. [ 変換先テーブル ] ドロップダウン リストからデータ型を選択します。 これにより、この接続を収集するために確立されている AWS サービスのログと、取り込まれたデータを格納する Log Analytics テーブルがコネクタに通知されます。
    4. [ 接続の追加] を選択します

    S3 コネクタへの A W S ロール接続の追加のスクリーンショット。

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

既知の問題

  • 異なる種類のログを同じ S3 バケットに格納できますが、同じパスに格納しないでください。

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

  • 単一の SQS キューは、S3 バケット内の 1 つのパスのみを提供できます。 複数のパスにログを格納する場合、各パスには専用の SQS キューが必要です。

トラブルシューティング

トラブルシューティングの手順については、「 Amazon Web Services S3コネクタの問題のトラブルシューティング」をご覧ください。

ラムダ関数を使用して書式設定された CloudWatch イベントを S3 に送信する (省略可能)

CloudWatchのログがMicrosoft Sentinelで認められていないフォーマット(ヘッダーなしのGZIP形式のファイル .csv)でない場合は、AWS内でソースコードを閲覧するラムダ関数を使って、ヘッダーなしのGZIP形式でCloudWatchイベントをS3バケットに送信 .csv してください。

ラムダ関数は、Python 3.12 ランタイムとx86_64 アーキテクチャを使用します。

ラムダ関数をデプロイするには:

  1. AWS Management Console で、ラムダ サービスを選択します。

  2. [ 関数の作成] を選択します

    AWS Management Console の基本情報画面のスクリーンショット。

  3. 関数の名前を入力し、ランタイムとして Python 3.12 を選択し、アーキテクチャとして x86_64 します。

  4. [ 関数の作成] を選択します

  5. レイヤーを選択 で、レイヤーを選択し、追加 を選択します。

    AWS Management Console の [レイヤーの追加] 画面のスクリーンショット。

  6. [ アクセス許可] を選択し、[ 実行ロール] で [ ロール名] を選択します。

  7. [ アクセス許可ポリシー] で、[ アクセス許可の追加>アタッチ ポリシー] を選択します。

    [AWS Management Console のアクセス許可] タブのスクリーンショット。

  8. AmazonS3FullAccess ポリシーと CloudWatchLogsReadOnlyAccess ポリシーを検索してアタッチします。

    AWS 管理コンソールの [アクセス許可ポリシーの追加] 画面のスクリーンショット。

  9. 関数に戻り、[コード] を選択し、[ コード ソース] の下にコード リンク 貼り付けます。

  10. パラメーターの既定値は、環境変数を使用して設定されます。 必要に応じて、これらの値をコード内で直接手動で調整できます。

  11. [ デプロイ] を選択し、[ テスト] を選択します。

  12. 必要なフィールドに入力してイベントを作成します。

    AWS Management の [テスト イベントの構成] 画面のスクリーンショット。

  13. [ テスト ] を選択して、S3 バケットにイベントがどのように表示されるかを確認します。