証跡の Insights イベントの記録 - AWS CloudTrail

証跡の Insights イベントの記録

AWS CloudTrail Insights は、CloudTrail 管理イベントを継続的に分析することで、AWS ユーザーが write API コールに関連する異常なアクティビティを特定し、それに応答するのに役立ちます。

Insights イベントは、CloudTrail がアカウントで異常な write 管理 API アクティビティを検出したときにログに記録されます。CloudTrail Insights を有効にし、CloudTrail が異常なアクティビティを検出した場合、Insights イベントは証跡の宛先 S3 バケットに配信されます。CloudTrail コンソールでInsights イベントを表示すると、インサイトのタイプとインシデント期間も確認できます。CloudTrail 追跡でキャプチャされた他のタイプのイベントとは異なり、Insights イベントは、アカウントの典型的な使用パターンと大きく異なるアカウントの API 使用状況の変化を CloudTrail が検出した場合にだけログに記録されます。

CloudTrail Insights は、CloudTrail write 管理イベントをを継続的にモニタリングし、数学的モデルを使用して、アカウントの API およびサービスイベントアクティビティの通常のレベルを決定します。CloudTrail Insights CloudTrail インサイトは、通常のパターンの外にある動作を特定し、Insights イベントを生成し、これらのイベントを証跡に選択した送信先 S3 バケットの /CloudTrail-Insight フォルダに配信します。CloudTrail のために AWS Management Console 内の Insights イベントにアクセスして表示することもできます。コンソールで、AWS CLI を使用して Insights イベントにアクセスして表示する方法の詳細については、このガイドの「CloudTrail Insights イベントの表示」を参照してください。

デフォルトでは、証跡はすべての管理イベントを記録し、データイベントや Insights イベントは記録しません。データイベントおよび Insights イベントには追加料金が適用されます。詳細については、「AWS CloudTrail 料金表」を参照してください。

アカウントでイベントが発生すると、CloudTrail はイベントが証跡の設定と一致するかどうかを評価します。証跡設定に一致するイベントだけが、Amazon S3 バケットと Amazon CloudWatch Logs ロググループに配信されます。

CloudTrail Insights インサイトについて

CloudTrail Insights を使用すると、Insights イベントをあげて、AWS アカウントの異常な API アクティビティを検出します。CloudTrail Insights は、ベースラインとも呼ばれるAPI コールボリュームの通常のパターンを測定し、ボリュームが通常のパターン外にある場合に Insights イベントを生成します。Insights イベントは、write 管理 API に対して生成されます。

証跡で CloudTrail Insights を有効にした後、異常なアクティビティが検出された場合、CloudTrail が最初の Insights イベントを配信するまでに最大 36 時間かかることがあります。CloudTrail Insights は、グローバルではなく 1 つのリージョンで発生する書き込み管理イベントを分析します。CloudTrail Insights イベントは、サポート対象の管理イベントが生成されるのと同じリージョンに生成されます。

これらの Insights イベントの例を次のイメージに示します。Insights イベントの詳細ページを開くには、[ダッシュボード] ページまたは [Insights] ページから Insights イベント名を選択します。

証跡で CloudTrail Insights を無効にするか、証跡の記録を停止した (CloudTrail Insights が無効になります) 場合、インサイトを有効にした前の期間の日付で、CloudTrail Insights が送信先 S3 バケットに保存されているか、コンソールの [Insights] ページに表示されている可能性があります。

フィルター列

左側の列には、サブジェクト API に関連し、同じ Insights イベントタイプを持つ Insights イベントのリストが表示されます。この列では、詳細情報が必要な Insights イベントを選択できます。この列でイベントを選択すると、そのイベントが [Insights graph] タブのグラフで強調表示されます。デフォルトでは、CloudTrail はフィルターを適用し、['CloudTrail イベント] タブを、Insights イベントをトリガーした異常なアクティビティの期間中に呼び出された特定の API に関するものに設定します。異常なアクティビティの期間中に呼び出されたすべての CloudTrail イベント (Insights イベントとは無関係なイベントを含む) を表示するには、フィルターをオフにします。

[Insights graph] タブ

[Insights graph] タブでは、インサイトイベントの詳細ページには、1 つ以上の Insights イベントが記録される前後の一定期間に発生した API コールボリュームのグラフが表示されます。グラフでは、Insights イベントは縦棒で強調表示され、棒の幅は Insights イベントの開始時刻と終了時刻を示します。

この例では、強調表示している縦帯は、アカウント内の Amazon CloudWatch DeleteAlarms API コールの数が以上であることを示しています。強調表示された領域で、DeleteAlarms コールの数がアカウントの通常の範囲である 1 分あたり 0.05 回を超えたため、異常なアクティビティが検出されると CloudTrail がインサイトイベントを記録しました。Insights イベントでは、午前 11 時 20 分ごろ 3 件の DeleteAlarms コールが行われたことが記録されました。これは、アカウントに対して予想されるよりも毎分約 3 回多い API コールです。この例では、グラフの期間は 3 時間、つまり 太平洋夏時間 2020 年 8 月 5 日午前 9 時 50 分から 2020 年 8 月 5 日午後 12 時 50 分までです。このイベントの開始時刻は、太平洋夏時間 2020 年 8 月 5 日午前 11 時 20 分で、終了時刻はその 1 分後です。

ベースラインは、Insights イベントの開始前の 7 日間にわたって計算されます。ベースライン期間 (CloudTrail が API での通常のアクティビティを測定する期間) 値は約 7 日間ですが、CloudTrail はベースライン期間を整数の日数に四捨五入するので、正確なベースライン期間は変化する可能性があります。


                    CloudTrail Insights イベントとして記録された異常な API アクティビティを示す  詳細ページ。

Attributions タブ

[属性] タブには、Insights イベントに関する次の情報が表示されます。


                    属性を示す CloudTrail Insights イベントの詳細ページ。
  • 上位ユーザー ID ARN - この表は、異常なアクティビティ期間およびベースライン期間中に API コールに寄与した AWS ユーザーまたは IAM ロール (ユーザーアイデンティティ) の上位 5 までを、API コールの平均数の降順で示しています。異常なアクティビティに寄与したアクティビティ総数としての平均の割合を括弧内に示しています。5 以上のユーザー ID ARN が異常なアクティビティに寄与した場合、そのアクティビティは [Other] の列にまとめて表示されます。

  • 上位ユーザーエージェント - この表は、異常なアクティビティ期間およびベースライン期間中に API コールに寄与したユーザー ID による AWS ツールの上位 5 までを、API コールの平均数の降順で示しています。これらのツールには、AWS Management Console、AWS CLI、または AWS SDK が含まれます。例えば、ec2.amazonaws.com という名前のユーザーエージェントは、Amazon EC2 コンソールが API を呼び出すために使用されたツールの中にあったことを示します。異常なアクティビティに寄与したアクティビティ総数としての平均の割合を括弧内に示しています。5 以上のユーザーエージェントが異常なアクティビティに寄与した場合、そのアクティビティは [Other] の列にまとめて表示されます。

  • トップエラーコード - この表は、異常なアクティビティおよびベースライン期間中に API コールで発生したエラーコードの上位 5 つまでを、API コールの最大数から最小数の降順に表示しています。異常なアクティビティに寄与したアクティビティ総数としての平均の割合を括弧内に示しています。異常なアクティビティまたはベースラインアクティビティ中に 5 つ以上のエラーコードが発生した場合は、それらのアクティビティは [Other] の列にまとめて表示されます。

    None の値を上位 5 つのエラーコード値のうちの 1 つとして使用すると、Insights イベントに寄与したコールのかなりの割合がエラーにならなかったことを意味します。エラーコードの値が None、表内に他のエラーコードがない場合、[Insight average] および [Baseline average] の列は、Insights イベント全体の列と同じです。また、これらの値は、[API calls per minute] の [Insights graph] タブの [Insight average] および [Baseline average] 凡例に表示されます。

[CloudTrail イベント] タブ

[CloudTrail events] タブで、異常なアクティビティが発生したと判断するために CloudTrail が分析した関連イベントを表示します。デフォルトで、フィルターはすでにインサイトイベント名に適用されています。これは関連する API の名前でもあります。異常なアクティビティの期間中に記録されたすべての CloudTrail イベントを表示するには、[Only show events for selected Insights event] をオフにします。[CloudTrail イベント] タブには、Insights イベントの開始時刻と終了時刻の間に発生したサブジェクト API に関連する CloudTrail 管理イベントが表示されます。これらのイベントは、より深い分析を実行して、Insights イベントの考えられる原因と、異常な API アクティビティの理由を特定するのに役立ちます。

[Insights イベントレコード] タブ

どの CloudTrail イベントも同様に、CloudTrail Insights イベントは JSON 形式のレコードです。[Insights event record] タブには、Insights の開始イベントと終了イベントの JSON 構造とコンテンツが表示されます。これはイベントペイロードと呼ばれることもあります。Insights イベントレコードのフィールドとコンテンツの詳細については、このガイドの「Insights イベントのレコードフィールド」および「CloudTrail Insights insightDetails 要素」を参照してください。

AWS Management Console を使用した Insights イベントの記録

既存の証跡で CloudTrail Insights イベントコレクションを有効にします。デフォルトでは、Insights イベントは有効になっていません。

  1. CloudTrail コンソールの左のナビゲーションペインで [証跡] を選択し、証跡の名前を選択します。

  2. [Insights events] で、[編集] を選択します。

    注記

    インサイトイベントの記録には追加料金が適用されます。CloudTrail の料金については、「AWS CloudTrail 料金表」を参照してください。

  3. [Event type] で、[Insights events] を選択します。[Write] 管理イベントをログ記録して、Insights イベントをログに記録している必要があります。

  4. [Update trail] を選択して変更を保存します。

異常なアクティビティが検出された場合、CloudTrail が最初の Insights イベントを配信するまでに最大 36 時間かかることがあります。

AWS Command Line Interface を使用した Insights イベントの記録

AWS CLI を使用して、Insights イベントのログを記録するように証跡を設定できます。

証跡が Insights イベントをログに記録しているかどうかを確認するには、get-insight-selectors コマンドを実行します。

aws cloudtrail get-insight-selectors --trail-name TrailName

次の結果は、証跡に対するデフォルト設定を示しています。デフォルトでは、証跡はインサイトイベントを記録しません。インサイトイベントコレクションが有効になっていないため、InsightType 属性値が空になっていて、インサイトイベントセレクタが指定されていません。

{ "InsightSelectors": [ { "InsightType": "" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/TrailName" }

Insights イベントをログに記録するように証跡を設定するには、put-insight-selectors コマンドを実行します。次に、 を含むように証跡を設定する方法の例を示します。このリリースでは、インサイトセレクタは ApiCallRateInsight のみです。

aws cloudtrail put-insight-selectors --trail-name TrailName --insight-selectors '[{"InsightType": "ApiCallRateInsight"}]'

次の結果は、証跡用に設定されたインサイトイベントセレクタを示しています。

{ "InsightSelectors": [ { "InsightType": "ApiCallRateInsight" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/TrailName" }

AWS SDK を使用してイベントのログを記録する

GetInsightSelectors オペレーションを実行して、証跡が証跡 Insights イベントを記録しているかどうかを確認します。Insights イベントを記録するように証跡を設定するには、PutInsightSelectors オペレーションを使用します。詳細については、「AWS CloudTrail API リファレンス」を参照してください。

Amazon CloudWatch Logs へのイベントの送信

CloudTrail は、CloudWatch Logs への Insights イベントの送信をサポートします。CloudWatch Logs のロググループに Insights イベントを送信するように証跡を設定すると、CloudTrail は証跡で指定されている Insights イベントだけを送信します。たとえば、管理イベントおよび Insights イベントを送信するように設定した場合、証跡は管理イベントおよび Insights イベントを CloudWatch Logs ロググループに配信します。CloudWatch コンソールまたは API を使用して CloudWatch Events を設定するには、CloudWatch コンソールの [ルールの作成] ページで AWS Insight via CloudTrail イベントタイプを選択します。詳細については、「Amazon CloudWatch Logs による CloudTrail ログファイルをモニタリングする」を参照してください。