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

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

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

このタブでは、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 のそのまま使えるコンテンツを検出して管理する」を参照してください。

アーキテクチャの概要

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

Screenshot of A W S S 3 connector architecture.

  • 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 側 (必要な 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 が引き受けたロールが割り当てられます。

自動セットアップの前提条件

手順

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

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

  2. データ コネクタ ギャラリーから [アマゾン ウェブ サービス S3] を選択します。

    コネクタが表示されない場合は、Microsoft Sentinel の コンテンツ ハブ からアマゾン ウェブ サービス ソリューションをインストールします。

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

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

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

    Note

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

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

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

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

    Screenshot of command to run setup script and workspace ID.

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

    Screenshot of output of A W S connector setup script.

    Screenshot of pasting the A W S role information from the script, to the S3 connector.

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

注意

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

手動セットアップ

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

AWS リソースを準備する

  1. AWS サービス (VPC、GuardDuty、CloudTrail、または CloudWatch) からのログの発送先となる S3 バケットを作成します。

  2. S3 バケットによる通知の発行先となる標準の Simple Queue Service (SQS) メッセージ キューを作成します。

  3. SQS キューに通知メッセージを送信するように S3 バケットを構成します。

AWS データ コネクタをインストールして環境を準備する

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

  2. データ コネクタ ギャラリーから [アマゾン ウェブ サービス S3] を選択します。

    コネクタが表示されない場合は、Microsoft Sentinel の コンテンツ ハブ からアマゾン ウェブ サービス ソリューションをインストールします。 詳細については、「Microsoft Sentinel のすぐに利用できるコンテンツを検出して管理する」を参照してください。

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

  4. [構成] で、[PowerShell スクリプトを使用した設定 (推奨)] を展開し、外部 ID (ワークスペース ID) をクリップボードにコピーします。

Open ID Connect (OIDC) Web ID プロバイダーと AWS の想定ロールを作成する

  1. 別のブラウザー ウィンドウまたはタブで、AWS コンソールを開きます。

  2. 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
  3. IAM の引き受けたロールを作成します。 AWS ドキュメントの次の手順に従います:
    Web ID または OpenID Connect フェデレーションのロールの作成

    次の表の値を Azure Commercial Cloud に使用します。

    パラメーター 選択/値 Comments
    信頼されたエンティティの種類 Web ID 既定の [AWS サービス] の代わり。
    ID プロバイダー sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/ 前の手順で作成したプロバイダー。
    対象者 api://1462b192-27f7-4cb9-8523-0f4ecb54b47e 前の手順で ID プロバイダーに対して定義した対象ユーザー。
    割り当てるアクセス許可
    • AmazonSQSReadOnlyAccess
    • AWSLambdaSQSQueueExecutionRole
    • AmazonS3ReadOnlyAccess
    • ROSAKMSProviderPolicy
    • さまざまな種類の AWS サービス ログを取り込むための追加のポリシー
    これらのポリシーの詳細については、Microsoft Sentinel GitHub リポジトリで AWS S3 コネクタのアクセス許可ポリシーのページを参照してください。
    名前 例: "OIDC_MicrosoftSentinelRole"。 Microsoft Sentinel への参照を含むわかりやすい名前を選択します。

    名前には正確なプレフィックス OIDC_ が含まれている必要があります。そうでない場合、コネクタは正しく機能しません。

    次の表の値を Azure Government Cloud に使用します。

    パラメーター 選択/値 Comments
    信頼されたエンティティの種類 Web ID 既定の [AWS サービス] の代わり。
    ID プロバイダー sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/ 前の手順で作成したプロバイダー。
    対象者 api://d4230588-5f84-4281-a9c7-2c15194b28f7 前の手順で ID プロバイダーに対して定義した対象ユーザー。
    割り当てるアクセス許可
    • AmazonSQSReadOnlyAccess
    • AWSLambdaSQSQueueExecutionRole
    • AmazonS3ReadOnlyAccess
    • ROSAKMSProviderPolicy
    • さまざまな種類の AWS サービス ログを取り込むための追加のポリシー。
    これらのポリシーの詳細については、Microsoft Sentinel GitHub リポジトリで政府機関向け AWS S3 コネクタのアクセス許可ポリシーのページを参照してください。
    名前 例: "OIDC_MicrosoftSentinelRole"。 Microsoft Sentinel への参照を含むわかりやすい名前を選択します。

    名前には正確なプレフィックス OIDC_ が含まれている必要があります。そうでない場合、コネクタは正しく機能しません。
  4. 新しいロールの信頼ポリシーを編集し、別の条件を追加します。
    "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 データ コネクタに追加する

  1. AWS コンソールを開いたブラウザー タブで、ID およびアクセス管理 (IAM) サービスに移動し、ロールの一覧に移動します。 上記で作成したロールを選択します。

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

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

  4. Microsoft Sentinel ブラウザー タブに戻ります。アマゾン ウェブ サービス S3 (プレビュー) データ コネクタ ページが開きます。 [2. 接続の追加] で:

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

    Screenshot of adding an A W S role connection to the S3 connector.

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

各種類のログを S3 バケットに送信する手順については、アマゾン ウェブ サービスのドキュメント (以下のリンク先) を参照してください。

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

既知の問題

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

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

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

トラブルシューティング

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

次のステップ

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