次の方法で共有


AWS S3 コネクタに関する問題のトラブルシューティング

アマゾン ウェブ サービス (AWS) S3 コネクタを使用すると、AWS S3 バケットで収集された AWS サービス ログを Microsoft Sentinel に取り込むことができます。 現在サポートされているログの種類は、AWS CloudTrail、VPC Flow Logs、AWS GuardDuty です。

この記事では、AWS S3 コネクタで発生する問題の原因をすばやく特定し、問題を解決するために必要な手順を見つける方法について説明します。

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

Microsoft Sentinel がアマゾン ウェブ サービス S3 コネクタまたはそのデータ型のいずれからもデータを受信しない

AWS S3 コネクタ (またはそのデータ型のいずれか) のログは、コネクタが接続されてから 30 分以上 Microsoft Sentinel ワークスペースに表示されません。

原因と解決策を検索する前に、次の考慮事項を確認してください。

  • コネクタが接続されてから、データがワークスペースに取り込まれるまで、約 20 ~ 30 分かかる場合があります。
  • コネクタの接続状態は、コレクション ルールが存在することを示し、データが取り込まれたことを示すわけではありません。 アマゾン ウェブ サービス S3 コネクタの状態が緑色の場合は、いずれかのデータ型に対するコレクション ルールがあっても、データはまだありません。

問題の原因を特定する

このセクションでは、次の原因について説明します。

  1. AWS S3 コネクタのアクセス許可ポリシーが正しく設定されていない。
  2. データが AWS の S3 バケットに取り込まれていない。
  3. AWS クラウドの Amazon Simple Queue Service (SQS) が S3 バケットから通知を受け取らない。
  4. AWS クラウドの SQS/S3 からデータを読み取ることができない。 GuardDuty ログでは、間違った KMS 権限によって問題が発生する。

原因 1: AWS S3 コネクタのアクセス許可ポリシーが正しく設定されていない

この問題は、AWS 環境のアクセス許可が正しくないことが原因で発生します。

アクセス許可ポリシーを作成する

AWS S3 データ コネクタをデプロイするには、アクセス許可ポリシーが必要です。 必要なアクセス許可を確認し、関連するアクセス許可を設定します。

原因 2: 関連するデータが S3 バケットに存在しない

関連するログが S3 バケットに存在しません。

解決策: 必要に応じてログを検索し、ログをエクスポートする

  1. AWS で S3 バケットを開き、必要なログに従って関連するフォルダーを検索し、このフォルダー内にログ ファイルがあるかどうかを確認します。
  2. データが存在しない場合は、AWS の構成に問題があります。 この場合、ログを S3 バケットにエクスポートするように AWS サービスを構成する必要があります。

原因 3: S3 データが SQS に届かない

データが S3 から SQS に正常に送信されませんでした。

解決策: データが届いたことを確認し、イベント通知を構成する

  1. AWS で、関連する SQS を開きます。
  2. [監視] タブの [送信されたメッセージの数] ウィジェットにトラフィックが表示されるはずです。 SQS にトラフィックが表示されない場合は、AWS の構成に問題があります。
  3. SQS のイベント通知定義に正しいデータ フィルター (プレフィックスとサフィックス) があることを確認します。
    1. イベント通知を表示するには、S3 バケットで [プロパティ] タブを選択し、[イベント通知] セクションを見つけます。
    2. このセクションが表示されない場合は、作成します。
    3. SQS に、S3 バケットからデータを取得するための関連ポリシーがあることを確認します。 SQS では、[アクセス ポリシー] タブの下でこのポリシーが含まれている必要があります。

原因 4: SQS がデータを読み取らなかった

SQS で S3 データが正常に読み取られませんでした。

解決策: SQS がデータを読み取っていることを確認する

  1. AWS で、関連する SQS を開きます。

  2. [監視] タブの [削除されたメッセージの数] ウィジェットと [受信したメッセージの数] ウィジェットにトラフィックが表示されるはずです。

  3. データの 1 つのスパイクでは不十分です。 十分なデータ (いくつかのスパイク) が発生するまで待ってから、問題を確認します。

  4. 少なくとも 1 つのウィジェットが空の場合は、次のクエリを実行して正常性ログを確認します。

    SentinelHealth 
    | where TimeGenerated > ago(1d)
    | where SentinelResourceKind in ('AmazonWebServicesCloudTrail', 'AmazonWebServicesS3')
    | where OperationName == 'Data fetch failure summary'
    | mv-expand TypeOfFailureDuringHour = ExtendedProperties["FailureSummary"]
    | extend StatusCode = TypeOfFailureDuringHour["StatusCode"]
    | extend StatusMessage = TypeOfFailureDuringHour["StatusMessage"]
    | project SentinelResourceKind, SentinelResourceName, StatusCode, StatusMessage, SentinelResourceId, TypeOfFailureDuringHour, ExtendedProperties
    
  5. 正常性機能が有効になっていることを確認します。

    SentinelHealth 
    | take 20
    
  6. 正常性機能が有効になっていない場合は有効にします

AWS S3 コネクタ (またはそのデータ型の 1 つ) からのデータが 30 分を超える遅延で Microsoft Sentinel に表示される

この問題は、通常、Microsoft が S3 フォルダー内のファイルを読み取ることができない場合に発生します。 Microsoft では、暗号化されているか、間違った形式のファイルを読み取ることができません。 このような場合に、再試行を何度も行うと、最終的にインジェストの遅延が発生します。

問題の原因を特定する

このセクションでは、次の原因について説明します。

  • ログの暗号化が正しく設定されていない
  • イベント通知が正しく定義されていない
  • 正常性に関するエラーが発生しているか、正常性機能が無効になっている

原因 1: ログの暗号化が正しく設定されていない

ログがキー管理サービス (KMS) によって完全または部分的に暗号化されている場合、Microsoft Sentinel には、この KMS でファイルの暗号化を解除するためのアクセス許可がない可能性があります。

解決策: ログの暗号化を確認する

Microsoft Sentinel に、この KMS でファイルの暗号化を解除するためのアクセス許可があることを確認します。 GuardDuty ログと CloudTrail ログに対する必要な KMS アクセス許可を確認します。

原因 2: イベント通知が正しく構成されていない

Amazon S3 のイベント通知を構成するときは、Amazon S3 が通知を送信する、サポート対象のイベント タイプを指定する必要があります。 指定しなかったイベント タイプが Amazon S3 バケットにあると、Amazon S3 は通知を送信しません。

解決策: イベント通知が正しく定義されていることを確認する

S3 から SQS へのイベント通知が正しく定義されていることを確認するには、次のことを確認します。

  • 通知が、バケットを含むメイン フォルダーではなく、ログを含む特定のフォルダーから定義されていること。
  • 通知が .gz というサフィックスで定義されていること。 次に例を示します。

原因 3: 正常性に関するエラーが発生しているか、正常性機能が無効になっている

正常性ログにエラーがあるか、正常性機能が有効になっていない可能性があります。

解決策: 正常性ログにエラーがないことを確認し、正常性機能を有効にする

  1. 次のクエリを実行して、正常性ログにエラーがないことを確認します。

    SentinelHealth
    | where TimeGenerated between (ago(startTime)..ago(endTime))
    | where SentinelResourceKind  == "AmazonWebServicesS3"
    | where Status != "Success"
    | distinct TimeGenerated, OperationName, SentinelResourceName, Status, Description
    
  2. 正常性機能が有効になっていることを確認します。

    SentinelHealth 
    | take 20
    
  3. 正常性機能が有効になっていない場合は有効にします

次のステップ

この記事では、AWS S3 コネクタのよくある問題について、原因をすばやく特定して解決する方法を説明しました。

フィードバック、ご意見、機能のご要望、バグの報告、改善や追加機能のご提案などがあれば、ぜひお送りください。 問題またはフォークを作成して、投稿をアップロードするには、Microsoft Sentinel GitHub リポジトリにアクセスしてください。