CloudTrail の仕組み - AWS CloudTrail

CloudTrail の仕組み

AWS アカウントの作成時に、CloudTrail の [イベント履歴] のアクセス権が自動的に付与されます。[イベント履歴] では、AWS リージョン で過去 90 日間に記録された 管理イベントの表示、検索、およびダウンロードが可能で、変更不可能な記録を確認できます。

AWS アカウントで過去 90 日間のイベントを継続的に記録するには、証跡または CloudTrail Lake イベントデータストアを作成します。

CloudTrail イベント履歴

CloudTrail コンソールで、[イベント履歴] ページに移動すると、簡単に過去 90 日間の管理イベントを表示できます。aws cloudtrail lookup-events コマンド、または LookupEvents API 操作を実行してイベント履歴を表示することもできます。イベント履歴内のイベントは、単一の属性でイベントをフィルタリングすることによって検索できます。詳細については、「CloudTrail イベント履歴の操作」を参照してください。

[イベント履歴] はアカウント内に存在する証跡やイベントデータストアには接続されておらず、証跡やイベントデータストアに加えた設定変更の影響も受けません。

[イベント履歴] ページの閲覧または lookup-events コマンドの実行には、CloudTrail の料金はかかりません。

CloudTrail Lake とイベントデータストア

イベントデータストアを作成して、CloudTrail イベント (管理イベント、データイベント、ネットワークアクティビティイベント)、CloudTrail Insights イベントAWS Audit Manager の証拠AWS Config 設定項目、または AWS 外のイベントをログに記録できます。

イベントデータストアは、現在の AWS リージョン、または AWS アカウント内のすべての AWS リージョン からのイベントをログに記録します。AWS 外部からの [統合] イベントのログ記録に使用するイベントデータストアは、シングルリージョン専用である必要があり、マルチリージョンのイベントデータストアには設定できません。

AWS Organizations で組織を作成した場合は、その組織内のすべての AWS アカウントにおけるすべてのイベントをログに記録する組織イベントデータストアを作成できます。組織のイベントデータストアを、すべての AWS リージョンまたは現在のリージョンに適用できます。組織のイベントデータストアは管理アカウントまたは委任された管理者アカウントで作成する必要があり、組織への適用として指定した場合は、組織内のすべてのメンバーアカウントに自動的に適用されます。メンバーアカウントは、組織のイベントデータストアを表示することも、これを変更または削除することもできません。組織のイベントデータストアを使用して、AWS 外からイベントを収集することはできません。詳細については、「組織のイベントデータストアについて」を参照してください。

デフォルトでは、イベントデータストア内のすべてのイベントは CloudTrail によって暗号化されます。イベントデータストアを設定するときに、独自の AWS KMS key を使用するかどうかを選択できます。独自の KMS キーを使用すると、暗号化と復号に AWS KMS のコストがかかります。イベントデータストアを KMS キーに関連付けた後に、その KMS キーを削除または変更することはできません。詳細については、「AWS KMS キーを使用した CloudTrail ログファイル、ダイジェストファイル、イベントデータストアの暗号化 (SSE-KMS)」を参照してください。

次の表は、イベントデータストアで実行できるタスクに関する情報を示しています。

タスク 説明

ダッシュボードの表示と作成

CloudTrail Lake ダッシュボードを使用して、アカウント内のイベントデータストアのイベントトレンドを確認できます。マネージドダッシュボードを表示したり、カスタムダッシュボードを作成したり、Highlights ダッシュボードを有効にして、CloudTrail Lake によってキュレートおよび管理されるイベントデータのハイライトを表示したりできます。

管理イベントのログ記録

読み取り専用、書き込み専用、またはすべての管理イベントをログに記録するようにイベントデータストアを設定します。イベントデータストアのデフォルトでは、管理イベントがログに記録されます。

管理イベントは、高度なイベントセレクタフィールド eventNameeventSourceeventTypereadOnlysessionCredentialFromConsole、および userIdentity.arn でフィルタリングできます。

データイベントのログを記録する

高度なイベントセレクタを使用して詳細なセレクタを作成し、関心のあるデータイベントのみをログに記録することができます。例えば、eventName フィールドでフィルタリングして特定の API コールのログ記録を含めたり除外することができ、これにより、コストを制御できます。詳細については、「高度なイベントセレクタを使用してデータイベントをフィルタする」を参照してください。

ネットワークアクティビティイベントのログ記録

ネットワークアクティビティイベントのログを記録するようにイベントデータストアを設定します。高度なイベントセレクタを使用して、eventNameerrorCode、および vpcEndpointId フィールドをフィルタリングし、関心のあるデータイベントのみをログ記録することができます。

Insights イベントのログを記録する

Insights イベントをログ記録するようにイベントデータストアを設定し、管理 API コールに関連する異常なアクティビティを特定し応答できるようにします。詳細については、「CloudTrail Insights の使用」を参照してください。

Insights イベントには追加料金が適用されます。証跡とイベントデータストアの両方で Insights を有効にすると、それぞれ個別に課金されます。詳細については、AWS CloudTrail の料金を参照してください。

証跡イベントのコピー

証跡イベントを新規または既存のイベントデータストアにコピーして、証跡にログが記録されたイベントのポイントインタイムスナップショットを作成できます。

イベントデータストアでのフェデレーションを有効にする

イベントデータストアをフェデレーションして、AWS Glue データカタログ内のイベントデータストアに関連付けられたメタデータを確認し、Amazon Athena を使用してイベントデータに対する SQL クエリを実行できます。AWS Glue データカタログにあるテーブルメタデータにより、Athena クエリエンジンは、クエリするデータを検索、読み込み、および処理する方法を把握できるようになります。

イベントデータストアでのイベント取り込みを停止または開始する

CloudTrail の管理イベントとデータイベント、または AWS Config 設定項目を収集するイベントデータストアでのイベントの取り込みを停止および開始できます。

外のイベントソースとの統合を作成するAWS

CloudTrail Lake 統合を使用すると、オンプレミスやクラウドでホストされている社内アプリケーションや SaaS アプリケーション、仮想マシン、あるいはコンテナなど、AWS 以外のハイブリッド環境にある任意のソースから、ユーザーアクティビティデータに関するログを作成して保存できます。利用可能な統合パートナーの詳細については、「AWS CloudTrail Lake Integrations」を参照してください。

CloudTrail コンソールで Lake サンプルクエリを表示する

CloudTrail コンソールには、独自クエリの作成を開始するために役立つ、サンプルクエリが多数用意されています。

クエリを作成または編集する

CloudTrail のクエリは SQL で作成されます。クエリは、CloudTrail Lake の [Editor] (エディタ) タブで、SQL でクエリを最初から記述するか、保存されたクエリ、またはサンプルクエリを開いて編集することによって構築できます。

クエリ結果を S3 バケットに保存する

クエリの実行後に、クエリ結果をS3 バケットに保存できます。

保存されたクエリ結果のダウンロード

保存された CloudTrail Lake クエリ結果を含む CSV ファイルをダウンロードできます。

保存されたクエリ結果の検証

CloudTrail がクエリ結果を S3 バケットに配信した後、クエリ結果が変更、削除、または変更されなかったかどうかを判断するには、CloudTrail クエリ結果の整合性の検証を使用することができます。

CloudTrail Lake の詳細については、「AWS CloudTrail Lake の使用」を参照してください。

CloudTrail Lake のイベントデータストアとクエリには料金が発生します。イベントデータストアを作成する際に、イベントデータストアに使用する料金オプションを選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。Lake でクエリを実行すると、スキャンされたデータ量に基づいて料金が発生します。CloudTrail 料金の詳細については、 ユーザーガイドの「AWS CloudTrail の料金」および「CloudTrail Lake のコスト管理」を参照してください。

CloudTrail Lake ダッシュボード

CloudTrail Lake ダッシュボードを使用して、アカウント内のイベントデータストアのイベントトレンドを確認できます。CloudTrail Lake には、次のタイプのダッシュボードが用意されています。

  • マネージドダッシュボード - マネージドダッシュボードを表示して、管理イベント、データイベント、または Insights イベントを収集するイベントデータストアのイベントトレンドを確認できます。これらのダッシュボードは自動的に利用可能になり、CloudTrail Lake によって管理されます。CloudTrail は 14 種類のマネージドダッシュボードを提供しています。マネージドダッシュボードは手動で更新できます。これらのダッシュボードのウィジェットを変更、追加、削除することはできませんが、ウィジェットを変更したり、更新スケジュールを設定したりする場合は、マネージドダッシュボードをカスタムダッシュボードとして保存できます。

  • カスタムダッシュボード - カスタムダッシュボードでは、任意のイベントデータストアタイプのイベントをクエリできます。カスタムダッシュボードには最大 10 個のウィジェットを追加できます。カスタムダッシュボードを手動で更新することも、更新スケジュールを設定することもできます。

  • Highlights ダッシュボード - Highlights ダッシュボードを有効にして、アカウントのイベントデータストアによって収集された AWS アクティビティの概要を一目で確認します。Highlights ダッシュボードは CloudTrail によって管理されており、アカウントに関連するウィジェットが含まれています。Highlights ダッシュボードに表示されるウィジェットは、アカウントごとに異なります。これらのウィジェットには、検出された異常なアクティビティや異常が表示される可能性があります。例えば、Highlights ダッシュボードには、[合計クロスアカウントアクセスウィジェット] を含めることができます。このウィジェットは、異常なクロスアカウントアクティビティが増加しているかどうかを示します。CloudTrail は 6 時間ごとに Highlights ダッシュボードをアップデートします。ダッシュボードには、前回のアップデートからのデータのうち最後の 24 時間分が表示されます。

各ダッシュボードは 1 つ以上のウィジェットで構成され、各ウィジェットは SQL クエリを表します。

詳細については、「CloudTrail Lake ダッシュボード」を参照してください。

CloudTrail 証跡

証跡とは、指定した Amazon S3 バケットにイベントを配信できる設定のことです。Amazon CloudWatch Logs および Amazon EventBridge を使用して、証跡のイベントを配信および分析することもできます。

証跡は、CloudTrail 管理イベント、データイベント、ネットワークアクティビティイベント、および Insights イベントをログに記録できます。

AWS アカウントのマルチリージョンとシングルリージョンの両方の証跡を作成できます。

マルチリージョン証跡

マルチリージョン証跡を作成すると、CloudTrail は AWS アカウント 内のすべての有効になっている AWS リージョン についてイベントを記録し、指定した S3 バケットに CloudTrail イベントログファイルを配信します。ベストプラクティスとして、マルチリージョン証跡を作成することをお勧めします。マルチリージョン証跡は、すべての有効になっているリージョンのアクティビティをキャプチャするからです。CloudTrail コンソールを使用して作成する証跡はすべてマルチリージョン証跡になります。AWS CLI を使用することで、単一リージョンをマルチリージョンの証跡へと変換することができます。詳細についてはマルチリージョン証跡とオプトインリージョンを理解するコンソールでの証跡の作成、および単一リージョンの証跡からマルチリージョンの証跡への変換を参照してください。

単一リージョンの証跡

単一リージョンの証跡を作成すると、CloudTrail はそのリージョンにのみイベントを記録します。次に、指定した Amazon S3 バケットに CloudTrail イベントログファイルが渡されます。AWS CLI を使用する際は、単一のリージョンの証跡のみを作成することができます。追加で単一の証跡を作成した場合、同じ S3 バケットまたは別のバケットに CloudTrail イベントログファイルを配信する証跡を持つことができます。これは、AWS CLI または CloudTrail API を使用して証跡を作成するときのデフォルトのオプションです。詳細については、「AWS CLI で証跡を作成、更新、管理する 」を参照してください。

注記

どちらのタイプの証跡でも、任意のリージョンから Amazon S3 バケットを指定できます。

AWS Organizations で組織を作成した場合は、その組織内のすべての AWS アカウントにおけるすべてのイベントをログに記録する組織の証跡を作成できます。組織の証跡は、すべての AWS リージョンまたは現在のリージョンに適用できます。組織の証跡は管理アカウントまたは委任された管理者アカウントで作成する必要があり、組織への適用として指定されている場合は、組織内のすべてのメンバーアカウントに自動的に適用されます。メンバーアカウントは組織の証跡を表示できますが、これを変更または削除することはできません。デフォルトでは、メンバーアカウントは Amazon S3 バケット内にある組織の証跡のログファイルにアクセスできません。

デフォルトでは、CloudTrail コンソールで証跡を作成すると、イベントログファイルとダイジェストファイルは KMS キーで暗号化されます。[SSE-KMS 暗号化] を有効にしない場合、イベントログファイルとダイジェストファイルは Amazon S3 サーバー側の暗号化 (SSE) を使用して暗号化されます。ログファイルは任意の期間にわたってバケットに保存できます。また、Amazon S3 ライフサイクルのルールを定義して、自動的にログファイルをアーカイブまたは削除することもできます。ログファイルの配信と確認に関する通知が必要な場合は、Amazon SNS 通知を設定できます。

CloudTrail は、ログファイルを 1 時間に複数回、約 5 分ごとに発行します。これらのログファイルには、CloudTrail をサポートするアカウントのサービスからの API コールが含まれています。詳細については、「CloudTrail のサポートされているサービスと統合」を参照してください。

注記

CloudTrail は、通常、API コールから平均 5 分以内にログを配信します。この時間は保証されません。詳細については、「AWS CloudTrail サービスレベルアグリーメント」をご覧ください。

証跡を不適切な設定 (S3 バケットに到達できない状態など) にすると、CloudTrail は 30 日間、S3 バケットへのログファイルの再配信を試みます。これらの配信試行イベントには標準の CloudTrail 料金が適用されます。証跡の不適切な設定による課金を避けるには、その証跡を削除する必要があります。

CloudTrail は、ユーザーまたは AWS のサービスによりユーザーに代わって直接行われたアクションをキャプチャします。例えば、CloudFormation CreateStack コールは、CloudFormation テンプレートの必要に応じて Amazon EC2、Amazon RDS、Amazon EBS またはその他のサービスへ追加の API コールが発生する場合があります。この動作は正常であり、想定されています。CloudTrail イベントの invokedby フィールドを使用して、AWS のサービスによってアクションが行われたかどうかを確認できます。

次の表は、証跡で実行できるタスクに関する情報を示しています。

タスク 説明

管理イベントのログ記録

読み取り専用、書き込み専用、またはすべての管理イベントをログに記録するように証跡を設定します。

データイベントのログを記録する

高度なイベントセレクタを使用して詳細なセレクタを作成し、関心のあるデータイベントのみをログに記録することができます。例えば、eventName フィールドでフィルタリングして特定の API コールのログ記録を含めたり除外することができ、これにより、コストを制御できます。詳細については、「高度なイベントセレクタを使用してデータイベントをフィルタする」を参照してください。

ネットワークアクティビティイベントのログ記録

ネットワークアクティビティイベントを記録するように証跡を設定します。高度なイベントセレクタを設定して、eventNameerrorCode、および vpcEndpointId フィールドをフィルタリングし、関心のあるデータイベントのみをログ記録することができます。

Insights イベントのログを記録する

管理 API コールに関連する異常なアクティビティを特定して応答できるように、インサイトイベントを記録するように証跡を設定します。

Insights イベントには追加料金が適用されます。証跡とイベントデータストアの両方で Insights を有効にすると、それぞれ個別に課金されます。詳細については、AWS CloudTrail の料金を参照してください。

Insights イベントの表示

証跡で CloudTrail Insights を有効にした後、CloudTrail コンソールまたは AWS CLI を使用して最大 90 日間 Insights イベントを表示できます。

Insights イベントのダウンロード

証跡で CloudTrail Insights を有効にすると、過去 90 日間までの証跡の Insights イベントを含む CSV ファイルまたは JSON ファイルをダウンロードできます。

証跡イベントを CloudTrail Lake にコピーする

既存の証跡イベントを CloudTrail Lake イベントデータストアにコピーして、証跡に記録されたイベントのポイントインタイムスナップショットを作成できます。

Amazon SNS トピックを作成してサブスクライブする

バケットへのログファイルの配信に関する通知を受信するにはトピックを受信登録します。Amazon SNS は、Amazon Simple Queue Service でのプログラムによる通知を含む複数の方法で通知できます。

注記

すべてのリージョンのログファイル配信に関する SNS 通知を受信するときは、証跡の SNS トピックを 1 つのみ指定します。すべてのイベントをプログラムで処理する場合は、「CloudTrail Processing Library の使用」を参照してください。

ログファイルの表示

S3 バケットからログファイルを検索してダウンロードします。

CloudWatch Logs を使用したイベントのモニタリング

CloudWatch Logs にイベントを送信するように証跡を設定できます。CloudWatch Logs を使用して、アカウントで特定の API コールとイベントをモニタリングできます。

注記

マルチリージョン証跡を、イベントを CloudWatch Logs ロググループに送信するように設定すると、CloudTrail は、すべてのリージョンから単一のロググループにイベントを送信します。

SSE-KMS 暗号化を有効にする

KMS キーを使用してログファイルとダイジェストファイルを暗号化すると、CloudTrail データのセキュリティをさらに強化できます。

ログファイル整合性の有効化

ログファイルの整合性の検証により、CloudTrail によって配信されてからログファイルが変更されていないことを確認できます。

他の AWS アカウントアカウントとのログファイルの共有

アカウント間でログファイルを共有することができます。

複数のアカウントからのログの集約

複数のアカウントからのログファイルを単一のバケットに集約できます。

パートナーソリューションの使用

CloudTrail と統合されたパートナーソリューションで CloudTrail 出力を分析します。パートナーソリューションでは、変更の追跡、トラブルシューティング、セキュリティ分析などの幅広い機能セットが提供されます。

証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「AWS CloudTrail の料金」を参照してください。Amazon S3 の料金に関する詳細については、「Amazon S3 の料金」を参照してください。

CloudTrail Insights イベント

AWS CloudTrail Insights は、CloudTrail 管理イベントを継続的に分析することで、AWS ユーザーが API コール率および API エラー率に関連付けられた異常なアクティビティを特定し、対応するのに役立ちます。CloudTrail Insights は、ベースラインとも呼ばれる API コール量と API エラー率の通常のパターンを分析し、コール量や API エラー率が通常のパターン外にある場合に Insights イベントを生成します。API コール率に関する Insights イベントは、write 管理 API に対して生成されます。一方、API エラー率に関する Insights イベントは、readwrite の両方の管理 API に対して生成されます。

CloudTrail 証跡とイベントデータストアのデフォルトでは、Insights イベントはログに記録されません。証跡またはイベントデータストアを設定して、Insights イベントをログに記録するようにする必要があります。詳細については、「CloudTrail コンソールを使用した Insights イベントのログ記録」および「AWS CLI を使用した Insights イベントの記録」を参照してください。

Insights イベントには追加料金が適用されます。証跡とイベントデータストアの両方で Insights を有効にすると、それぞれ個別に課金されます。詳細については、AWS CloudTrail の料金を参照してください。

証跡の Insights イベントとイベントデータストアの表示

CloudTrail は証跡とイベントデータストアの両方で Insights イベントをサポートしていますが、Insights イベントを表示およびアクセスする方法にはいくつかの違いがあります。

証跡の Insights イベントの表示

証跡で Insights イベントを有効にしており、CloudTrail が異常なアクティビティを検出した場合、Insights イベントが証跡のための宛先 S3 バケットにある異なるフォルダまたはプレフィックスに記録されます。CloudTrail コンソールで Insights イベントを表示すると、インサイトのタイプとインシデント期間も確認できます。詳細については、「コンソールを使用して証跡の Insights イベントを表示する」を参照してください。

証跡で CloudTrail Insights を初めて有効にした後、証跡で Insights イベントを有効にしてから CloudTrail が Insights イベントの配信を開始するまで、最大 36 時間かかる場合があります (その間に異常なアクティビティが検出された場合)。

イベントデータストアの Insights イベントの表示

CloudTrail Lake で Insights イベントを記録するには、Insights イベントをログ記録する送信先イベントデータストアと、Insights を有効にして管理イベントをログ記録するソースイベントデータストアが必要です。詳細については、「コンソールで Insights イベントのイベントデータストアを作成する」を参照してください。

ソースイベントデータストアで CloudTrail Insights を初めて有効にした後、CloudTrail が Insights イベントの配信を開始するまで、最大 7 日かかる場合があります (その間に異常なアクティビティが検出された場合)。

ソースイベントデータストアで CloudTrail Insights を有効にしており、CloudTrail が異常なアクティビティを検出した場合、CloudTrail は送信先イベントデータストアに Insights イベントを配信します。その後、Insights イベントに関する情報を取得するために宛先のイベントデータストアにクエリを実行したり、オプションとしてクエリ結果を S3 バケットに保存したりできます。詳細については、「CloudTrail コンソールを使用してトレイルを編集する」および「CloudTrail コンソールにサンプルクエリを表示する」を参照してください。

送信先イベントデータストアの Insights イベントを可視化するために、[Insights イベント] ダッシュボードを表示することができます。Lake ダッシュボードの詳細については、「CloudTrail Lake ダッシュボード」を参照してください。

CloudTrail チャネル

CloudTrail は次の 2 つのタイプのチャネルをサポートしています。

CloudTrail Lake と AWS の外部のイベントソースを統合するためのチャネル

CloudTrail Lake は、チャネルを使用して、CloudTrail と連携している外部パートナーまたは独自のソースから、AWS 以外のイベントを CloudTrail Lake に取り込みます。チャネルを作成するときは、チャネルソースから送信されるイベントを保存するイベントデータストアを 1 つまたは複数選択します。送信先イベントデータストアがアクティビティイベントをログ記録するように設定している間は、必要に応じてチャネルの送信先イベントデータストアを変更できます。外部パートナーからのイベント用のチャネルを作成するときは、パートナーまたはソースアプリケーションにチャネル ARN を提供します。チャネルにアタッチされたリソースポリシーにより、ソースはチャネルを介してイベントを送信できます。詳細については、「AWS CloudTrail API リファレンス」の「AWS 外のイベントソースとの統合を作成する」および「CreateChannel」を参照してください。

サービスにリンクされたチャネル

AWS サービスは、サービスにリンクされたチャネルを作成して、ユーザーに代わって CloudTrail イベントを受信できます。サービスにリンクされたチャンネルを作成する AWS サービスは、チャンネルの高度なイベントセレクターが設定され、チャンネルをすべてのリージョンに適用するのか、現在のリージョンに適用するのかを指定します。

CloudTrail コンソール または AWS CLI を使用して、AWS のサービスが作成した CloudTrail サービスにリンクされたチャネルに関する情報を表示できます。