Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS CloudTrail 记录 Amazon EC2 和 Amazon EBS API 调用

Amazon EC2 和 Amazon EBS 与 AWS CloudTrail 服务集成在一起,该服务提供用户、角色或 AWS 服务在Amazon EC2 和 Amazon EBS 中所执行的操作的记录。CloudTrail 将对 Amazon EC2 和 Amazon EBS 的所有 API 调用均作为事件捕获,包括来自控制台的调用和对 API 的代码调用。如果您创建了跟踪,则可以使 CloudTrail 事件持续传送到 Amazon S3 存储桶(包括 Amazon EC2 和 Amazon EBS 的事件)。如果您不配置跟踪,则仍可在 CloudTrail 控制台的 Event history (事件历史记录) 中查看最新事件。通过使用 CloudTrail 收集的信息,您可以确定向 Amazon EC2 和 Amazon EBS发出的请求、从中发出请求的 IP 地址、发出请求的用户、发出请求的时间以及其他详细信息。

要了解有关 CloudTrail 的更多信息,请参阅 AWS CloudTrail User Guide

CloudTrail 中的 Amazon EC2 和 Amazon EBS 信息

在您创建 CloudTrail 账户时,即针对该账户启用了 AWS。当 Amazon EC2 和 Amazon EBS 中发生活动时,该活动将记录在 CloudTrail 事件中,并与其他 AWS 服务事件一同保存在 Event history (事件历史记录) 中。您可以在 AWS 账户中查看、搜索和下载最新事件。有关更多信息,请参阅使用 CloudTrail 事件历史记录查看事件

要持续记录 AWS 账户中的事件(包括 Amazon EC2 和 Amazon EBS 的事件),请创建跟踪。通过跟踪,CloudTrail 可将日志文件传送至 Amazon S3 存储桶。默认情况下,在控制台中创建跟踪时,此跟踪应用于所有区域。此跟踪在 AWS 分区中记录来自所有区域的事件,并将日志文件传送至您指定的 Amazon S3 存储桶。此外,您可以配置其他 AWS 服务,进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息,请参阅:

所有 Amazon EC2 和 Amazon EBS 操作均由 CloudTrail 记录下来并记载到 Amazon EC2 API Reference 中。举例来说,对 RunInstancesDescribeInstancesCreateImage 操作的调用会在 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. 打开 AWS CloudTrail 控制台 (https://console.aws.amazon.com/cloudtrail/)。

  2. 验证您是否位于正确的区域中。

  3. 在导航窗格中,选择事件历史记录

  4. 对于筛选条件,请选择事件源,然后选择 ec2-instance-connect.amazonaws.com

  5. (可选)对于时间范围,请选择一个时间范围。

  6. 选择刷新事件图标。

  7. 该页面显示与 SendSSHPublicKey API 调用对应的事件。使用箭头展开一个事件以查看其他详细信息,例如,用于建立 SSH 连接的用户名和 AWS 访问密钥以及源 IP 地址。

  8. 要以 JSON 格式显示完整事件信息,请选择查看事件requestParameters 字段包含用于建立 SSH 连接的目标实例 ID、操作系统用户名和公有密钥。

    { "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" }

    如果已将 AWS 账户配置为在 S3 存储桶中收集 CloudTrail 事件,您可以按编程方式下载和审核该信息。有关更多信息,请参阅 AWS CloudTrail User Guide 中的获取和查看 CloudTrail 日志文件