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
次のコマンド例では、書き込みイベントが返されます。GetBucketLocation
や DescribeStream
などの読み取りイベントは除外されます。
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 イベントを参照するには
-
次の例のように、
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": "" }
-
テキストエディタを使用し、必要に応じて JSON を変更します。JSON 入力には、指定された値のみが含まれている必要があります。
重要 空の値や Null 値は、使用する前にテンプレートからすべて削除する必要があります。
次の例では、時間範囲と、返される結果の最大数を指定しています。
{ "StartTime": "2015-01-01", "EndTime": "2015-01-27", "MaxResults": 2 }
-
編集したファイルを入力として使用するには、次の例のように、構文
--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
エントリが出力に表示されない場合、返す結果はそれ以上存在しません。