AWS CloudTrail
ユーザーガイド (Version 1.0)

CloudTrail の概念

このセクションでは、CloudTrail に関連する概念について簡単に説明します。

CloudTrail イベントとは

CloudTrail イベントは、AWS アカウントのアクティビティのレコードです。このアクティビティは、CloudTrail によってモニタリングされたユーザー、ロール、またはサービスによって実行されるアクションとすることができます。CloudTrail イベントは、AWS マネジメントコンソール、AWS SDK、コマンドラインツール、およびその他の AWS のサービスを通じて行われた API アカウントアクティビティおよび API 以外のアカウントアクティビティの両方の履歴を提供します。CloudTrail には、2 種類の記録可能なイベント (管理イベント、データイベント) があります。デフォルトでは、証跡にはすべての管理イベントが記録されますが、データイベントは記録されません。

管理イベントとデータイベントではいずれも、同じ CloudTrail JSON ログ形式が使用されます。managementEvent フィールドの値によってそれらのイベントを識別できます。

注記

CloudTrail はすべての AWS サービスを記録しているわけではありません。一部の AWS のサービスでは、すべての API およびイベントのログ記録が有効になるとは限りません。証跡のすべての管理イベントおよびデータイベントのログ記録を設定しても、記録可能なすべての AWS イベントでログが作成されることはありません。サポート対象外のサービスについて詳しくは、「CloudTrail でサポートされていないサービス」を参照してください。特定のサービスで記録されている API の詳細情報については、「CloudTrail サポートされるサービスと統合」で該当サービスのドキュメントを参照してください。

管理イベントとは

管理イベントでは、AWS アカウントのリソースで実行される管理オペレーションについての洞察が得られます。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。管理イベントには、次のようなものがあります。

  • セキュリティグループの設定 (例: IAM AttachRolePolicy API オペレーション)。

  • デバイスの登録 (例: Amazon EC2 CreateDefaultVpc API オペレーション)。

  • データをルーティングするルールの設定 (例: Amazon EC2 CreateSubnet API オペレーション)。

  • ログ記録の設定 (例: AWS CloudTrail CreateTrail API オペレーション)。

管理イベントは、アカウントで発生する非 API イベントを含む場合もあります。たとえば、ユーザーがアカウントにサインインすると、CloudTrail は ConsoleLogin イベントをログに記録します。詳細については、「CloudTrail によってキャプチャされる API 以外のイベント」を参照してください。CloudTrail が AWS のサービスについてログに記録する管理イベントの一覧については、「CloudTrail サポートされるサービスと統合」を参照してください。

データイベントとは

データイベントでは、リソース上またはリソース内で実行されたリソースオペレーションについての洞察が得られます。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。データイベントには、次のようなものがあります。

  • Amazon S3 オブジェクトレベルの API アクティビティ (例: GetObjectDeleteObjectPutObject API オペレーション)。

  • AWS Lambda 関数の実行アクティビティ (Invoke API)。

証跡の作成時、デフォルトでは、データイベントは無効になっています。CloudTrail データイベントを記録するには、証跡にアクティビティを収集する、サポート対象のリソースまたはリソースタイプを明示的に追加する必要があります。詳細については、「証跡の作成」および「データイベント」を参照してください。

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

CloudTrail イベント履歴とは

CloudTrail イベント履歴は、過去 90 日間の CloudTrail イベントの表示、検索、およびダウンロードが可能な記録を提供します。この履歴を使用して、AWS、 SDK、コマンドラインツール、およびその他の AWS のサービスから、AWS マネジメントコンソール の AWS アカウントで実行されたアクションの可視性を得ることができます。CloudTrail コンソールでイベント履歴の表示をカスタマイズするには、表示する列を選択します。

証跡とは

証跡は、Amazon S3 バケット、CloudWatch Logs、および CloudWatch イベント への CloudTrail イベントの配信を可能にする設定です。証跡を使用して、配信する CloudTrail イベントのフィルタリング、AWS KMS キーを使用した CloudTrail イベントログファイルの暗号化、ログファイル配信のための Amazon SNS 通知の設定を行うことができます。証跡の作成と管理の詳細については、「お使いの AWS アカウントにおける証跡の作成」を参照してください。

組織の証跡とは

組織の証跡とは、組織内のマスターアカウントとすべてのメンバーアカウントの CloudTrail イベントを同じ Amazon S3 バケット、CloudWatch Logs、CloudWatch イベント に配信できるようにする設定です。組織の証跡を作成すると、組織のための統一されたイベントログ記録戦略を定義するのに役立ちます。

組織の証跡を作成すると、自分の組織に属するすべての AWS アカウントに、指定した名前の証跡が作成されます。メンバーアカウントで CloudTrail アクセス許可を持つユーザーは、AWS アカウントから AWS CloudTrail コンソールにログインしたとき、または describe-trails などの AWS CLI コマンドを実行したときにこの証跡 (証跡 ARN を含む) を表示することができます (ただし、AWS CLI を使用する場合、メンバーアカウントは名前ではなく、組織の記録に ARN を使用する必要があります)。ただし、メンバーアカウントのユーザーには、組織の証跡の削除、ログ記録のオン/オフの切り替え、記録するイベントの種類の変更、または組織の証跡の変更を行うための十分なアクセス許可がありません。AWS Organizations の詳細については、「組織 の用語と概念」を参照してください。組織の証跡を作成して作業する方法の詳細については、「組織の証跡の作成」を参照してください。

CloudTrail の管理方法

CloudTrail コンソール

CloudTrail サービスは、AWS CloudTrail コンソールで使用および管理できます。コンソールには、次のように多くの CloudTrail タスクを実行するためのユーザーインターフェースがあります。

  • AWS アカウントの最近のイベントとイベント履歴の表示。

  • イベントの過去 90 日のフィルタリングされたファイルまたは完全なファイルのダウンロード。

  • CloudTrail 証跡の作成と編集。

  • 以下を含む、CloudTrail 証跡の設定。

    • Amazon S3 バケットの選択。

    • プレフィックスの設定。

    • CloudWatch Logs への配信の設定。

    • 暗号化のための AWS KMS キーの使用。

    • ログファイル配信のための Amazon SNS 通知の有効化。

2019 年 4 月 12 日以降、証跡は、イベントをログに記録する AWS リージョンでのみ表示することができます。すべての AWS リージョンのイベントをログに記録する証跡を作成すると、すべての AWS リージョンのコンソールに表示されます。単一の AWS リージョン内のイベントのみをログ記録する証跡を作成した場合は、その AWS リージョン内でのみ、それを表示および管理できます。

AWS マネジメントコンソール の詳細については、「AWS マネジメントコンソール」を参照してください。

CloudTrail CLI

AWS Command Line Interface は、CloudTrail を操作するためにコマンドラインから使用できる統合ツールです。詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。CloudTrail CLI コマンドの完全なリストについては、「使用できるコマンド」を参照してください。

CloudTrail API

コンソールと CLI に加えて、CloudTrail RESTful API も使用できます。API を使用すれば、CloudTrail を直接プログラムすることができます。詳細については、「AWS CloudTrail API Reference」を参照してください。

AWS SDK

CloudTrail API を使用する代わりに、いずれかの AWS SDK を使用することもできます。各 SDK は、各種のプログラミング言語とプラットフォームに対応したライブラリやサンプルコードで構成されています。SDK は、CloudTrail へのアクセス権限をプログラムによって作成するのに役立ちます。たとえば、SDK では、暗号を使用してリクエストに署名したり、エラーを管理したり、リクエストを自動的に再試行したりできます。詳細については、「Amazon Web Services のツール」ページを参照してください。

CloudTrail へのアクセスを制御する方法

AWS Identity and Access Management は、Amazon Web Services (AWS) カスタマーがユーザーやユーザー許可を管理できるウェブサービスです。IAM を使用すれば、AWS CloudTrail にアクセスする必要があるすべての従業員に、個別のユーザーを作成できます。ご自身にも IAM ユーザーを作成することにより、IAM ユーザーに管理者特権を与え、それらの IAM ユーザーをお客様の全作業で使用することができます。お客様のアカウントにアクセスする人に対して個別 IAM ユーザーを作成することにより、IAM ユーザーそれぞれに一意の認証情報を設定することができます。さらに、各 IAM ユーザーにそれぞれ異なるアクセス権限を付与することもできます。必要な場合には、いつでも IAM ユーザーのアクセス権限を変更、または無効にすることができます。詳細については、「CloudTrail のユーザーアクセス権限のコントロール」を参照してください。

管理イベントとデータイベントをログに記録する方法

デフォルトでは、証跡は AWS アカウントのすべての管理イベントをログに記録し、データイベントは記録しません。データイベントをログ記録するには、証跡を作成または更新します。証跡設定に一致するイベントだけが、Amazon S3 バケットおよび Amazon CloudWatch Events に加え、オプションで Amazon CloudWatch Logs ロググループに配信されます。イベントが証跡の設定と一致しない場合、イベントはログに記録されません。詳細については、「証跡のデータイベントと管理イベントのログ記録」を参照してください。

CloudTrail でモニタリングを実行する方法

CloudWatch Logs および CloudTrail

Amazon CloudWatch は、メトリクスを収集して追跡し、Amazon Web Services (AWS) リソースと、AWS で実行されているアプリケーションをモニタリングするウェブサービスです。Amazon CloudWatch Logs は、ログデータのモニタリングに使用できる CloudWatch の機能です。CloudTrail を CloudWatch Logs と統合すれば、AWS アカウント内の API アクティビティを含んだイベントを、CloudWatch Logs ロググループに送信できます。CloudWatch Logs に送信された CloudTrail イベントと、ユーザーが定義したにメトリックスフィルタに基づいて、アラームをトリガーすることもできます。CloudWatch アラームでは、メトリックスフィルタによって抽出されたログストリームイベントに基づいて、通知を送信したり、モニタリング対象のリソースに変更を加えるよう設定することもできます。また、CloudWatch Logs を使用して CloudTrail イベントを追跡しながら、オペレーティングシステム、アプリケーション、またはその他の AWS サービスから CloudWatch Logs に送信されたイベントを追跡することもできます。詳細については、「Amazon CloudWatch Logs を使用して CloudTrail のログファイルをモニタリングする」を参照してください。

CloudTrail のリージョン内動作とグローバル動作

証跡は 1 つのリージョンに適用することもできますし、すべてのリージョンに適用することもできます。ベストプラクティスとしては、使用する AWS パーティション内のすべてのリージョンに適用される証跡を作成してください。これは、CloudTrail コンソールで証跡を作成する場合のデフォルトの設定です。

注記

証跡を有効にすることは、証跡を作成し、CloudTrail イベントログファイルの Amazon S3 バケットへの配信を開始することを意味します。CloudTrail コンソールでは、証跡を作成する際にログ記録が自動的に有効になります。

証跡をすべてのリージョンに適用することの利点

すべてのリージョンに適用される証跡には、次のような利点があります。

  • 証跡の設定が、すべてのリージョンに一貫性を持って適用されます。

  • すべてのリージョンの CloudTrail イベントを、1 つの S3 バケットで受信できます。またオプションで、CloudWatch Logs ロググループにも配信できます。

  • すべてのリージョンの証跡設定を 1 つの場所から管理できます。

  • 新しいリージョンからのイベントをすぐに受信できます。新しいリージョンが起動された場合、CloudTrail は元の証跡と同じ設定を使用して、新しいリージョンの証跡を自動的に作成します。

  • あまり使用しないリージョンの証跡を作成して、異常なアクティビティをモニタリングできます。

証跡をすべてのリージョンに適用した場合に起こること

証跡をすべてのリージョンに適用した場合、CloudTrail はユーザーが特定のリージョンで作成した証跡を使用して、アカウント内のその他のすべてのリージョンに、同じ設定の証跡を作成します。

その結果、次のことが起こります。

  • CloudTrail は、すべてのリージョンのアカウントアクティビティのログファイルを、ユーザーが指定した 1 つの Amazon S3 バケットに配信します。オプションで指定された場合は、CloudWatch Logs ロググループにも配信します。

  • 証跡用の Amazon SNS トピックを設定した場合は、すべてのリージョンのログファイル配信に関する SNS 通知が、1 つの SNS トピックに送信されます。

  • ログファイルの整合性検証を有効にした場合は、その証跡のすべてのリージョンで有効になります。詳細については、CloudTrail ログファイルの整合性の検証 を参照してください。

1 リージョンに対する複数の証跡

開発者、セキュリティ担当者、IT 監査者など、関連するユーザーグループが複数ある場合は、1 つのリージョンに対して複数の証跡を作成できます。これにより、各グループがログファイルの独自のコピーを受け取れるようになります。

CloudTrail では、リージョンごとに 5 つの証跡がサポートされます。すべてのリージョンに適用される証跡は、すべてのリージョンで 1 つの証跡としてカウントされます。

次に示すのは、1 つのリージョンに 5 つの証跡を使用する場合の例です。

  • 米国西部 (北カリフォルニア) リージョン に、そのリージョンだけに適用される証跡を 2 つ作成する。

  • 米国西部 (北カリフォルニア) リージョン に、すべてのリージョンに適用される証跡を 2 つ作成する。

  • アジアパシフィック (シドニー) リージョン に、すべてのリージョンに適用される証跡を 1 つ作成する。この証跡は、米国西部 (北カリフォルニア) リージョン の証跡としても存在します。

すべてのリージョンの証跡一覧は、CloudTrail コンソールの [証跡] ページで確認できます。詳細については、「証跡の更新」を参照してください。CloudTrail の料金については、「AWS CloudTrail 料金表」を参照してください。

AWS Security Token Service (AWS STS) と CloudTrail

AWS STS は、グローバルエンドポイントを持つとともに、リージョン固有のエンドポイントもサポートしているサービスです。エンドポイントとは、ウェブサービスリクエストのエントリポイントとなる URL のことす。たとえば、https://cloudtrail.us-west-2.amazonaws.com は、AWS CloudTrail サービスの 米国西部 (オレゴン) リージョンのエントリポイントです。リージョンのエンドポイントは、アプリケーションのレイテンシーを低減するのに役立ちます。

AWS STS のリージョン固有エンドポイントを使用した場合、そのリージョンの証跡は、そのリージョンで発生した AWS STS イベントのみを配信します。たとえば、エンドポイント sts.us-west-2.amazonaws.com を使用している場合、us-west-2 の証跡は、us-west-2 から発生した AWS STS イベントのみを配信します。AWS STS のリージョンエンドポイントの詳細については、IAM ユーザーガイド の「AWS リージョンでの AWS STS のアクティブ化と非アクティブ化」を参照してください。

AWS リージョンエンドポイントの完全なリストについては、AWS General Reference の「AWS リージョンとエンドポイント」を参照してください。グローバル AWS STS エンドポイントからのイベントの詳細については、「グローバルサービスイベントについて」を参照してください。

グローバルサービスイベントについて

ほとんどのサービスの場合、イベントはアクションが発生したリージョンで記録されます。AWS Identity and Access Management (IAM)、AWS STS、Amazon CloudFront、Route 53 などのグローバルサービスの場合、イベントはグローバルサービスが含まれた任意の証跡に配信され、発生した場所は 米国東部 (バージニア北部) リージョン であるとログに記録されます。

グローバルサービスイベントを重複して受信しないようにするには、次の点に注意してください。

  • デフォルトでは、グローバルサービスイベントは CloudTrail コンソールを使用して作成された証跡に配信されます。イベントは、その証跡のバケットに配信されます。

  • 単一のリージョンの証跡が複数ある場合は、証跡を設定し、グローバルサービスイベントがそれらの証跡の 1 つのみに配信されるようにすることを検討します。詳細については、「グローバルサービスイベントのログ記録の有効化と無効化」を参照してください。

  • 証跡の設定をすべてのリージョンのログ記録から単一のリージョンのログ記録に変更すると、その証跡に対してグローバルサービスイベントのログ記録は自動的に無効になります。同様に、証跡の設定を単一のリージョンのログ記録からすべてのリージョンのログ記録に変更すると、その証跡に対してグローバルサービスイベントのログ記録は自動的に無効になります。

    証跡に対するグローバルサービスイベントのログ記録の変更の詳細については、「グローバルサービスイベントのログ記録の有効化と無効化」を参照してください。

例:

  1. 証跡は CloudTrail コンソールで作成します。デフォルトでは、この証跡はグローバルサービスイベントをログに記録します。

  2. 単一リージョンの証跡を複数作成したとします。

  3. 単一リージョンの証跡について、グローバルサービスを含める必要はありません。グローバルサービスイベントは、1 つ目の証跡に対して配信されます。詳細については、「AWS Command Line Interface での証跡の作成と更新」を参照してください。

注記

AWS CLI、AWS SDK、または CloudTrail API を使用して証跡を作成または更新する場合は、証跡に対してグローバルサービスイベントを含むか、除外するよう選択できます。CloudTrail コンソールからグローバルサービスイベントのログ記録を設定することはできません。

CloudTrail とその他の AWS モニタリングサービスの関連

CloudTrail は、AWS ですでに提供されているモニタリング機能に、別のディメンションを追加するものです。ユーザーがすでに使用しているログ記録機能 (Amazon S3 や Amazon CloudFront のサブスクリプション用など) を変更したり、それらに取って代わるものではありません。Amazon CloudWatch は、パフォーマンスのモニタリングとシステムの正常性に特化した機能です。一方 CloudTrail は、API アクティビティに特化しています。CloudTrail では、システムのパフォーマンスや正常性に関するレポートは提供されませんが、CloudTrail を CloudWatch アラームとともに使用すれば、特定のアクティビティについて通知を受け取ることができます。

パートナーソリューション

ロギングと分析に関するサードパーティースペシャリストのいる AWS パートナーからは、CloudTrail の出力を使用するソリューションが提供されています。詳細については、AWSCloudTrail から CloudTrail の詳細ページにアクセスしてください。