Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

AWS CloudTrail による Amazon EC2 および Amazon EBS の API コールのログ記録

Amazon EC2 および Amazon EBS は AWS CloudTrail と統合されています。このサービスは、Amazon EC2 および Amazon EBS 内でユーザーやロール、または AWS のサービスによって実行されたアクションを記録するサービスです。CloudTrail は、 コンソールからのコールや、 API オペレーションへのコード呼び出しを含む、Amazon EC2 および Amazon EBS のすべての API コールをイベントとしてキャプチャします。証跡を作成する場合は、Amazon EC2 や Amazon EBS のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの作成元の IP アドレス、リクエストの実行者、リクエストの実行日時などの詳細を調べて、Amazon EC2 および Amazon EBS に対してどのようなリクエストが行われたかを判断できます。

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

CloudTrail での Amazon EC2 と Amazon EBS に関する情報

CloudTrail は、アカウント作成時に AWS アカウントで有効になります。Amazon EC2 および Amazon EBS でアクティビティが発生すると、そのアクティビティは [Event history (イベント履歴)] に AWS の他のサービスのイベントと共に CloudTrail イベントとして記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、「CloudTrail イベント履歴でのイベントの表示」を参照してください。

Amazon EC2 または Amazon EBS のイベントなど、AWS アカウントのイベントの継続的な記録用に、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべてのリージョンに適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した Amazon S3 バケットにログファイルが配信されます。さらに、より詳細な分析と AWS ログで収集されたデータに基づいた行動のためにその他の CloudTrail サービスを設定できます。詳細については、以下のトピックを参照してください。

Amazon EC2 および Amazon EBS のアクションはすべて CloudTrail によって記録されます。また、これらのアクションは「Amazon EC2 API Reference」で説明されています。たとえば、RunInstancesDescribeInstances、または CreateImage アクションへの呼び出しにより、CloudTrail ログファイルのエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。この ID 情報は以下のことを確認するのに役立ちます。

  • リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。

  • リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用して送信されたか.

  • リクエストが、別の AWS サービスによって送信されたかどうか。

詳細については、「CloudTrail userIdentity 要素」を参照してください。

Amazon EC2 および Amazon EBS のログファイルエントリの概要

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信できる設定です。CloudTrail ログファイルには、1 つ以上のログエントリが含まれます。イベントは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API 呼び出しの順序付けられたスタックトレースではないため、特定の順序では表示されません。

次のログファイルレコードは、ユーザーがインスタンスを終了したことを示しています。

{ "Records":[ { "eventVersion":"1.03", "userIdentity":{ "type":"Root", "principalId":"123456789012", "arn":"arn:aws:iam::123456789012:root", "accountId":"123456789012", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"user" }, "eventTime":"2016-05-20T08:27:45Z", "eventSource":"ec2.amazonaws.com", "eventName":"TerminateInstances", "awsRegion":"us-west-2", "sourceIPAddress":"198.51.100.1", "userAgent":"aws-cli/1.10.10 Python/2.7.9 Windows/7botocore/1.4.1", "requestParameters":{ "instancesSet":{ "items":[{ "instanceId":"i-1a2b3c4d" }] } }, "responseElements":{ "instancesSet":{ "items":[{ "instanceId":"i-1a2b3c4d", "currentState":{ "code":32, "name":"shutting-down" }, "previousState":{ "code":16, "name":"running" } }] } }, "requestID":"be112233-1ba5-4ae0-8e2b-1c302EXAMPLE", "eventID":"6e12345-2a4e-417c-aa78-7594fEXAMPLE", "eventType":"AwsApiCall", "recipientAccountId":"123456789012" } ] }

EC2 Instance Connect を介して接続するユーザーをAWS CloudTrail で監査する

EC2 Instance Connect を介してインスタンスに接続するユーザーを AWS CloudTrail で監査します。

AWS CloudTrail コンソールを使用して EC2 Instance Connect 経由で SSH アクティビティを監査するには

  1. AWS CloudTrail コンソール (https://console.aws.amazon.com/cloudtrail/) を開きます。

  2. 正しいリージョンを使用していることを確認します。

  3. ナビゲーションペインで [Event history (イベント履歴)] を選択します。

  4. [Filter (フィルター)] で、[Event source (イベントソース)]、[ec2-instance-connect.amazonaws.com] の順に選択します。

  5. (オプション) [Time range (時間範囲)] で、時間範囲を選択します。

  6. [Refresh events (イベントの更新)] アイコンを選択します。

  7. SendSSHPublicKey API コールに対応するイベントがページに表示されます。矢印を使用してイベントを展開します。ユーザー名、SSH 接続を行うために使用した AWS アクセスキー、ソース IP アドレスなどの詳細が表示されます。

  8. すべてのイベント情報を JSON 形式で表示するには、[View event (イベントの表示)] を選択します。[requestParameters] フィールドに、SSH 接続を行うために使用されたターゲットインスタンス ID、OS ユーザー名、およびパブリックキーが表示されます。

    { "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEFGONGNOMOOCB6XYTQEXAMPLE", "arn": "arn:aws:iam::1234567890120:user/IAM-friendly-name", "accountId": "123456789012", "accessKeyId": "ABCDEFGUKZHNAW4OSN2AEXAMPLE", "userName": "IAM-friendly-name", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-09-21T21:37:58Z"} } }, "eventTime": "2018-09-21T21:38:00Z", "eventSource": "ec2-instance-connect.amazonaws.com", "eventName": "SendSSHPublicKey ", "awsRegion": "us-west-2", "sourceIPAddress": "123.456.789.012", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": { "instanceId": "i-0123456789EXAMPLE", "osUser": "ec2-user", "SSHKey": { "publicKey": "ssh-rsa ABCDEFGHIJKLMNO01234567890EXAMPLE" } "responseElements": null, "requestID": "1a2s3d4f-bde6-11e8-a892-f7ec64543add", "eventID": "1a2w3d4r5-a88f-4e28-b3bf-30161f75be34", "eventType": "AwsApiCall", "recipientAccountId": "0987654321" }

    CloudTrail イベントを S3 バケット内に収集するように AWS アカウントを設定している場合は、プログラムで情報をダウンロードして監査できます。詳細については、AWS CloudTrail User Guideの「CloudTrail ログファイルの取得と表示」を参照してください。