使用 Amazon CloudTrail 记录 Amazon EC2 和 Amazon EBS API 调用 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

要了解有关 CloudTrail 的更多信息,请参阅 Amazon CloudTrail 用户指南

CloudTrail 中的 Amazon EC2 和 Amazon EBS 信息

在您创建 Amazon Web Services 账户时,将在该账户上启用 CloudTrail。当 Amazon EC2 和 Amazon EBS 中发生活动时,该活动将记录在 CloudTrail 事件中,并与其他 Amazon Web Service 事件一同保存在事件历史记录中。您可以在 Amazon Web Services 账户 中查看、搜索和下载最新事件。有关更多信息,请参阅使用 CloudTrail 事件历史记录查看事件

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

所有 Amazon EC2 操作和 Amazon EBS 管理操作都由 CloudTrail 记录,并记录在 Amazon EC2 API Reference 钟。例如,调用 RunInstancesDescribeInstancesCreateImage 操作会在 CloudTrail 日志文件中生成条目。

每个事件或日记账条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容:

  • 请求是使用根用户凭证还是 IAM 用户凭证发出的。

  • 请求是使用角色还是联合用户的临时安全凭证发出的。

  • 请求是否由其他 Amazon Web Service 发出。

有关更多信息,请参阅 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" } ] }

使用 Amazon CloudTrail 审计通过 EC2 Instance Connect 连接的用户

使用 Amazon CloudTrail 审计通过 EC2 Instance Connect 连接到实例的用户。

使用 Amazon CloudTrail 控制台审计通过 EC2 Instance Connect 的 SSH 活动
  1. 从 Amazon CloudTrail 打开 https://console.amazonaws.cn/cloudtrail/ 控制台。

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

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

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

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

  6. 选择刷新事件图标。

  7. 该页面显示与 SendSSHPublicKey API 调用对应的事件。使用箭头展开一个事件以查看其他详细信息,例如,用于建立 SSH 连接的用户名和 Amazon 访问密钥以及源 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" }

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