CloudTrail イベントを AWS CLI で表示する - AWS CloudTrail

CloudTrail イベントを AWS CLI で表示する

重要

2021 年 11 月 22 日、AWS CloudTrail は、証跡を使用してグローバルサービスイベントをキャプチャする方法を変更します。この変更後、CloudFront によって作成されたイベント、IAM、および AWS STS は、それらが作成されたリージョン、米国東部 (バージニア北部) リージョン (us-east-1) に記録されます。これにより、CloudTrail によるこれらのサービスの扱いは他の AWS グローバルサービスの処理と一致します。

米国東部 (バージニア北部) 以外でグローバルサービスイベントを受信するには、米国東部 (バージニア北部) 以外のグローバルサービスイベントを使用するシングルリージョン証跡を、必ずマルチリージョン証跡に変換してください。また、lookup-events API コールのリージョンも更新してください。CLI コマンドの例など、ルックアップイベントの更新の詳細については、このセクション後半の 属性でイベントを参照する を参照してください。

aws cloudtrail lookup-events コマンドを使用して、過去 90 日間の CloudTrail イベントを参照できます。lookup-events コマンドには以下のオプションがあります。

  • --max-results

  • --start-time

  • --lookup-attributes

  • --next-token

  • --generate-cli-skeleton

  • --cli-input-json

これらのオプションについては、このトピックで説明されています。AWS コマンドラインインターフェースの使用に関する一般的な情報については、「AWS Command Line Interface ユーザーガイド」を参照してください。

前提条件

  • AWS CLI コマンドを実行するには、AWS CLI をインストールする必要があります。詳細については、「AWS Command Line Interface のインストール」を参照してください。

  • AWS CLI バージョンが 1.6.6 以上であることを確認します。CLI のバージョンを確認するには、コマンドラインで aws --version を実行します。

  • AWS CLI セッションのアカウント、リージョン、およびデフォルトの出力形式を設定するには、aws configure コマンドを使用します。詳細については、「AWS コマンドラインインターフェイスの設定」を参照してください。

注記

CloudTrail の AWS CLI コマンドでは、大文字と小文字が区別されます。

コマンドラインのヘルプを取得する

lookup-events のコマンドライン ヘルプを表示するには 、次のコマンドを入力します。

aws cloudtrail lookup-events help

イベントの参照

最新 10 件のイベントを表示するには、次のコマンドを入力します。

aws cloudtrail lookup-events

返されるイベントは、次に示す架空のサンプルのようになります。このサンプルは読みやすい形式にしてあります。

{ "NextToken": "kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juy3CIZW8=", "Events": [ { "EventId": "0ebbaee4-6e67-431d-8225-ba0d81df5972", "Username": "root", "EventTime": 1424476529.0, "CloudTrailEvent": "{ \"eventVersion\":\"1.02\", \"userIdentity\":{ \"type\":\"Root\", \"principalId\":\"111122223333\", \"arn\":\"arn:aws:iam::111122223333:root\", \"accountId\":\"111122223333\"}, \"eventTime\":\"2015-02-20T23:55:29Z\", \"eventSource\":\"signin.amazonaws.com\", \"eventName\":\"ConsoleLogin\", \"awsRegion\":\"us-east-2\", \"sourceIPAddress\":\"203.0.113.4\", \"userAgent\":\"Mozilla/5.0\", \"requestParameters\":null, \"responseElements\":{\"ConsoleLogin\":\"Success\"}, \"additionalEventData\":{ \"MobileVersion\":\"No\", \"LoginTo\":\"https://console.aws.amazon.com/console/home", \"MFAUsed\":\"No\"}, \"eventID\":\"0ebbaee4-6e67-431d-8225-ba0d81df5972\", \"eventType\":\"AwsApiCall\", \"recipientAccountId\":\"111122223333\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }

出力内の参照関連フィールドの説明については、このドキュメントで後述する「参照の出力フィールド」セクションを参照してください。CloudTrail イベント内のフィールドの説明については、CloudTrail レコードの内容 を参照してください。

返されるイベントの数を指定する

返されるイベントの数を指定するには、次のコマンドを入力します。

aws cloudtrail lookup-events --max-results <integer>

<integer> のデフォルト値は 10 です。有効な値は 1 から 50 です。次の例では、1 件の結果が返されています。

aws cloudtrail lookup-events --max-results 1

時間範囲でイベントを参照する

イベントは過去 90 日間の記録から参照できます。時間範囲を指定するには、次のコマンドを入力します。

aws cloudtrail lookup-events --start-time <timestamp> --end-time <timestamp>

--start-time <timestamp> を指定すると、指定された時刻以降に発生したイベントのみが返されます。指定された開始時刻が指定された終了時刻よりも後である場合は、エラーが返されます。

--end-time <timestamp> を指定すると、指定された時刻以前に発生したイベントのみが返されます。指定された終了時刻が指定された開始時刻よりも前である場合は、エラーが返されます。

デフォルトの開始時刻は、過去 90 日間のうち、データが利用できる最も早い日付です。デフォルトの終了時刻は、現在の時刻に最も近いイベント発生時刻です。

有効な <timestamp> 形式

--start-time 属性と --end-time 属性では、UNIX 時刻値か、有効な同等値が受け付けられます。

次に示すのは、有効な形式の例です。日、月、年の値は、ハイフンまたはスラッシュで区切られます。スペースが存在する場合は、二重引用符を使用する必要があります。

1422317782 1422317782.0 01-27-2015 01-27-2015,01:16PM "01-27-2015, 01:16 PM" "01/27/2015, 13:16" 2015-01-27 "2015-01-27, 01:16 PM"

属性でイベントを参照する

属性でフィルタリングするには、次のコマンドを入力します。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=<attribute>,AttributeValue=<string>

lookup-events コマンドに対し、属性キーと値のペアを 1 つだけ指定できます。次に示すのは、AttributeKey の値です。値名では大文字と小文字が区別されます。

  • AccessKeyId

  • EventId

  • EventName

  • EventSource

  • ReadOnly

  • ResourceName

  • ResourceType

  • ユーザーネーム

属性参照の例

次のサンプルコマンドは、米国東部 (バージニア北部) リージョン (us-east-1) のイベントを返します。これにより、コンソールログインイベントを表示できます。ConsoleLogin を設定に適した値に置き換えます。

aws cloudtrail --region us-east-1 lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin

次のコマンド例では、AccessKeyId の値が AKIAIOSFODNN7EXAMPLE であるイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=AccessKeyId,AttributeValue=AKIAIOSFODNN7EXAMPLE

次のコマンド例では、指定した CloudTrail EventId のイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventId,AttributeValue=b5cc8c40-12ba-4d08-a8d9-2bceb9a3e002

次のコマンド例では、EventName の値が RunInstances であるイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances

次のコマンド例では、EventSource の値が iam.amazonaws.com であるイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=iam.amazonaws.com

次のコマンド例では、書き込みイベントが返されます。GetBucketLocationDescribeStream などの読み取りイベントは除外されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ReadOnly,AttributeValue=false

次のコマンド例では、ResourceName の値が CloudTrail_CloudWatchLogs_Role であるイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=CloudTrail_CloudWatchLogs_Role

次のコマンド例では、ResourceType の値が AWS::S3::Bucket であるイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::S3::Bucket

次のコマンド例では、Username の値が root であるイベントが返されます。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root

次の結果ページを指定する

lookup-events コマンドの次の結果ページを取得するには、次のコマンドを入力します。

aws cloudtrail lookup-events <same parameters as previous command> --next-token=<token>

<token> の箇所に入る値は、前のコマンドの出力の最初のフィールドから取得されます。

コマンド内で --next-token を使用する場合は、前のコマンドと同じパラメータを使用する必要があります。例えば、次のコマンドを実行したとします。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root

次の結果ページを取得したい場合、コマンドは次のようになります。

aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root --next-token=kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juy3CIZW8=

JSON 入力をファイルから取得する

一部の AWS サービスの AWS CLI には、--generate-cli-skeleton および --cli-input-json という 2 つのパラメータがあります。ユーザーは、これらを使用して JSON テンプレートを生成し、そのテンプレートを変更して、--cli-input-json パラメータへの入力として使用することができます。このセクションでは、これらのパラメータを aws cloudtrail lookup-events で使用する方法について説明します。より一般的な情報については、「CLI Skeleton および CLI Input JSON パラメータの生成」を参照してください。

JSON 入力をファイルから取得して CloudTrail イベントを参照するには
  1. 次の例のように、lookup-events の出力をファイルにリダイレクトして、--generate-cli-skeleton で使用するための入力テンプレートを作成します。

    aws cloudtrail lookup-events --generate-cli-skeleton > LookupEvents.txt

    生成されるテンプレートファイル (この場合、LookupEvents.txt) は次のようになります。

    { "LookupAttributes": [ { "AttributeKey": "", "AttributeValue": "" } ], "StartTime": null, "EndTime": null, "MaxResults": 0, "NextToken": "" }
  2. テキストエディタを使用し、必要に応じて JSON を変更します。JSON 入力には、指定された値のみが含まれている必要があります。

    重要

    空の値や Null 値は、使用する前にテンプレートからすべて削除する必要があります。

    次の例では、時間範囲と、返される結果の最大数を指定しています。

    { "StartTime": "2015-01-01", "EndTime": "2015-01-27", "MaxResults": 2 }
  3. 編集したファイルを入力として使用するには、次の例のように、構文 --cli-input-json file://<filename> を使用します。

    aws cloudtrail lookup-events --cli-input-json file://LookupEvents.txt
注記

--cli-input-json と同じコマンドラインで、他の引数を使用することもできます。

参照の出力フィールド

イベント

指定された参照属性と時間範囲に基づく参照イベントのリストです。イベントリストは時刻でソートされ、最新のイベントが最初に表示されます。各エントリには、参照リクエストに関する情報と、取得された CloudTrail イベントの文字列表現が含まれます。

以下のエントリは、各参照イベント内のフィールドです。

CloudTrailEvent

返されたイベントのオブジェクト表現を含んだ JSON 文字列です。返される各要素については、「 Record Body Contents」を参照してください。

EventId

返されたイベントの GUID を含んだ文字列です。

EventName

返されたイベントの名前を含んだ文字列です。

EventSource

リクエストの宛先となった AWS サービスです。

EventTime

イベントの日時です (UNIX 時刻形式)。

リソース

返されたイベントによって参照されるリソースのリストです。各リソースエントリは、リソースタイプとリソース名を指定します。

ResourceName

イベントによって参照されるリソースの名前を含んだ文字列です。

ResourceType

イベントによって参照されるリソースのタイプを含んだ文字列です。リソースタイプを特定できない場合は、null が返されます。

ユーザー名

返されたイベントに対するアカウントのユーザー名を含んだ文字列です。

NextToken

前の lookup-events コマンドから次の結果ページを取得するための文字列です。トークンを使用するには、パラメータが元のコマンドと同じである必要があります。NextToken エントリが出力に表示されない場合、返す結果はそれ以上存在しません。