AWS CloudTrail による Amazon EC2 および Amazon EBS の API 呼び出しのログ記録 - Amazon Elastic Compute Cloud

AWS CloudTrail による Amazon EC2 および Amazon EBS の API 呼び出しのログ記録

Amazon EC2 および Amazon EBS は、Amazon EC2 および Amazon EBS のユーザー、ロール、または AWS サービスによって実行されたアクションの記録を提供するサービスである AWS CloudTrail と統合されます。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 ユーザーガイドを参照してください。

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

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

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

すべての Amazon EC2 アクションと Amazon EBS 管理アクションは CloudTrail によってログが記録されます。これらは、「Amazon EC2 API リファレンス」にドキュメント化されています。たとえば、RunInstancesDescribeInstances、または CreateImage アクションへの呼び出しにより、CloudTrail ログファイルのエントリが生成されます。

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

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

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

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

詳細については、「CloudTrail userIdentity エレメント」を参照してください。

Amazon EC2 と Amazon EBS のログファイルエントリについて

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail ログファイルには、1 つ以上のログエントリがあります。イベントは任意の発生元からの 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" } ] }

AWS CloudTrail を使用して、EC2 Instance Connect 経由で接続するユーザーを監査する

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

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 ユーザーガイドの「CloudTrail ログファイルの取得と表示」を参照してください。