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 CloudTrail のサービスによって実行されたアクションの記録を提供するサービスである 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 ユーザーガイドを参照してください。

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

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

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

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

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するために役立ちます。

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

  • リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

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

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

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

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントはあらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどの情報が含まれます。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. https://console.aws.amazon.com/cloudtrail/ で AWS 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 ログファイルの取得と表示」を参照してください。