AWS CLI で最近の管理イベントを確認する - AWS CloudTrail

AWS CLI で最近の管理イベントを確認する

aws cloudtrail lookup-events コマンドを使用して、現在の AWS リージョン の過去 90 日間における CloudTrail 管理イベントを参照できます。aws cloudtrail lookup-events コマンドは、発生した AWS リージョン のイベントを表示します。

検索は、管理イベントの以下の属性に対応しています:

  • AWS アクセスキー

  • Event ID

  • イベント名

  • [イベントソース]

  • 読み取り専用

  • リソース名

  • リソースタイプ

  • [ユーザーネーム]

すべての属性はオプションです。

lookup-events コマンドには、以下のオプションがあります。

  • --max-items <integer> – コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で NextToken が提供されます。ページ分割を再開するには、後続コマンドの starting-token 引数で NextToken 値を指定します。AWS CLI の範囲外で NextToken レスポンス要素を直接使用しないでください。

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

  • --lookup-attributes<integer> — 検索属性のリストが含まれます。現在、リストに含めることができるアイテムは 1 つだけです。

  • --generate-cli-skeleton <string> – API リクエストを送信せずに JSON スケルトンを標準出力に出力します。値なしまたは値入力を指定した場合、--cli-input-json の引数として使用できる入力 JSON のサンプルを表示します。同様に、yaml-input を指定すると、--cli-input-yaml で使用できる入力 YAML のサンプルが出力されます。値出力が提供された場合、コマンド入力を検証し、そのコマンドの出力 JSON のサンプルを返します。生成された JSON スケルトンはAWS CLIのバージョン間で安定せず、下位互換性は保証されません。

  • --cli-input-json <string> – 指定された JSON 文字列から引数を読み取ります。JSON 文字列は、--generate-cli-skeletonパラメータで指定された形式に従います。コマンドラインで他の引数が指定されている場合、それらの値は JSON の値よりも優先されます。文字列は文字どおりに解釈されるため、JSON が提供する値を使用して任意のバイナリ値を渡すことはできません。これは --cli-input-yaml パラメータと一緒に指定することはできません。

AWS コマンドラインインターフェースの使用に関する一般的な情報については、「AWS Command Line Interface ユーザーガイド」を参照してください。

前提条件

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

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

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

注記

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

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

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

aws cloudtrail lookup-events help

イベントの参照

重要

検索リクエストのレートは、1 アカウント、1 リージョンあたり、1 秒間に2 回に制限されています。この制限を超えると、スロットリングエラーが発生します。

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

aws cloudtrail lookup-events --max-items 10

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

{ "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-items <integer>

有効な値は 1 から 50 です。次の例では、1 つのイベントが返されます。

aws cloudtrail lookup-events --max-items 1

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

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

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

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

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

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

すべてのタイムスタンプは UTC で表示されます。

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

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

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

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

  • AccessKeyId

  • EventId

  • EventName

  • EventSource

  • ReadOnly

  • ResourceName

  • ResourceType

  • Username

AttributeValue の最大長は 2,000 文字です。次の文字 (「_」、「 」、「,」、「\\n」) は、2,000 文字の制限のうちの 2 文字としてカウントされます。

属性参照の例

次のコマンド例では、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 で使用する方法について説明します。より一般的な情報については、「AWS CLI skeletons and input files」を参照してください。

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": "2023-11-01", "EndTime": "2023-12-12", "MaxResults": 10 }
  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 エントリが出力に表示されない場合、返す結果はそれ以上存在しません。