AWS CloudTrail
用户指南 (版本 1.0)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS CloudTrail 入门教程

如果您刚开始使用 AWS CloudTrail,本教程可帮助您了解如何使用其功能。在本教程中,您将在 CloudTrail 控制台中查看您最近的 AWS 账户活动并检查一个事件。然后,您创建跟踪,这是对存储在 Amazon S3 存储桶中的管理事件活动的持续记录。与事件历史记录不同,这种持续记录不限于 90 天,它记录所有 AWS 区域中的事件,并可帮助您随时间推移满足安全性和审计需求。

先决条件

在开始之前,您必须完成以下前提条件和设置:

  • 如果您还没有 AWS 账户,请创建一个。

    如果您没有 AWS 账户,请通过以下步骤创建一个账户。

    注册 AWS

    1. 打开 http://www.amazonaws.cn/,然后选择 Create an AWS Account

    2. 按照屏幕上的说明进行操作。

  • 创建用于管理 CloudTrail 的 IAM 用户有关更多信息,请参阅 授予 CloudTrail 管理权限

步骤 1:在事件历史记录中查看 AWS 账户活动

在您创建 AWS 账户时,即针对该账户启用了 CloudTrail。当任何支持 CloudTrail 的 AWS 服务中发生活动时,该活动将记录在 CloudTrail 事件中,并与其他 AWS 服务事件一同保存在事件历史记录中。换言之,您可以在创建跟踪之前查看、搜索和下载您 AWS 账户中的最新事件,但创建跟踪对于长期记录和审计您的 AWS 账户活动而言极其重要。与跟踪不同, Event history (事件历史记录) 仅限于近期事件。

  1. 使用您为进行 CloudTrail 管理配置的 IAM 用户登录 AWS 管理控制台。通过以下网址打开 CloudTrail 控制台:https://console.amazonaws.cn/cloudtrail/home/

  2. 在控制面板中查看您的 AWS 账户中发生的最近事件的信息。其中一个事件应为 ConsoleSignin 事件,显示您刚刚登录到 AWS 管理控制台。

    
      显示近期事件的 CloudTrail 控制面板
  3. 要查看有关某个事件的更多信息,请展开它。

    
      显示有关事件的展开信息的 CloudTrail 控制面板
  4. 在导航窗格中,选择事件历史记录。您会看到一个筛选的事件列表,最新的事件显示在最前面。事件的默认筛选条件是只读的,设置为 false。您可以通过选择删除图标清除该筛选条件。

    
      突出显示“只读”筛选条件的 CloudTrail 事件历史记录页面
  5. 不使用默认筛选条件时,会显示多得多的事件。您可以通过多种方式筛选事件。例如,要查看所有控制台登录事件,您可以选择事件名称筛选条件,并指定 ConsoleLogin。筛选条件的选择取决于您。

    
      删除了默认筛选条件的 CloudTrail 事件历史记录页面,显示筛选选项的部分列表
  6. 您可以采用 CSV 或 JSON 格式的文件进行下载来保存事件历史记录。

    
      显示下载选项的 CloudTrail 事件历史记录页面

有关更多信息,请参阅 使用 CloudTrail 事件历史记录查看事件

步骤 2:创建您的第一个跟踪

虽然 CloudTrail 控制台的“事件历史记录”视图中提供的事件可用于查看近期活动,但它们限于近期活动,而并不揽括 CloudTrail 可能记录的所有可能事件。此外,您在控制台中查看的事件限制为您登录的 AWS 区域。要创建您 AWS 账户中活动的持续记录以捕获所有 AWS 区域的信息,请创建跟踪。对于第一个跟踪,我们建议您创建下面的跟踪:它记录所有 AWS 区域中的所有管理事件,但不记录任何数据事件。管理事件的示例包含安全事件(如 IAM CreateUserAttachRolePolicy 事件)、资源事件(如 RunInstancesCreateBucket),等等。作为在 CloudTrail 控制台中创建跟踪的一部分,您将创建一个 Amazon S3 存储桶(将在其中存储跟踪的日志文件)。

注意

本教程假定您创建您的第一个跟踪。根据您的 AWS 账户中已有的跟踪数量以及如何配置这些跟踪,以下步骤可能会或也可能不会产生费用。此外,CloudTrail 将日志文件存储在 Amazon S3 存储桶中。有关定价的更多信息,请参阅 AWS CloudTrail 定价Amazon S3 定价

  1. 使用您为进行 CloudTrail 管理配置的 IAM 用户登录 AWS 管理控制台。通过以下网址打开 CloudTrail 控制台:https://console.amazonaws.cn/cloudtrail/home/。在区域选择器中,选择要在其中创建跟踪的 AWS 区域。这是跟踪的主区域。

    注意

    主区域是一个唯一的 AWS 区域,在此区域中,您可以在创建跟踪之后查看和更新跟踪,即使此跟踪记录所有 AWS 区域中的事件也不例外。

  2. 在导航窗格中,选择 Trails。在 Trails (跟踪) 页面上,选择立即开始使用。如果您没有看到该选项,请选择 Create Trail (创建跟踪)

  3. Trail name (跟踪名称) 中,为您的跟踪提供一个名称,如 My-Management-Events-Trail。作为最佳实践,请使用可快速识别跟踪用途的名称。在这种情况下,您正在创建的跟踪将记录管理事件。

  4. Management Events (管理事件) 中,确保 Read/Write events (读/写事件) 设置为 All (全部)

  5. Data Events (数据事件) 中,请勿进行任何更改。此跟踪不会记录任何数据事件。

  6. 存储位置中,在创建新的 S3 存储桶中选择。在 S3 存储桶中,为您的存储桶提供名称,例如 my-bucket-for-storing-cloudtrail-logs

    注意

    Amazon S3 存储桶的名称必须具有全局唯一性。有关更多信息,请参阅Amazon S3 存储桶命名要求

  7. 选择 Create

步骤 3:查看您的日志文件

创建第一个跟踪后的 15 分钟内,CloudTrail 将第一组日志文件传送到跟踪的 Amazon S3 存储桶。您可以查看这些文件并了解它们包含的信息。

  1. 在导航窗格中,选择 Trails。在 Trails (跟踪) 页面上,查找您刚创建的跟踪的名称(在本例中为 My-Management-Events-Trail)。

    注意

    请确保仍使用为进行 CloudTrail 管理配置的 IAM 用户登录。否则,您可能没有足够的权限在 CloudTrail 控制台中查看跟踪以及查看包含该跟踪的日志文件的 Amazon S3 存储桶。

  2. 在该跟踪对应的行中,找到 S3 存储桶的值(在此示例中为 my-bucket-for-storing-cloudtrail-logs)。选择这个组。

  3. Amazon S3 控制台在日志文件的顶层打开并显示该存储桶。由于您已创建的跟踪会记录所有 AWS 区域中的事件,因此显示屏将打开至显示每个区域文件夹的级别。Amazon S3 存储桶在此级别的导航层次结构为 bucket-name/AWSLogs/AWS-account-id/CloudTrail。选择要在其中查看日志文件的 AWS 区域的文件夹。例如,如果您希望查看 美国东部(俄亥俄州) 区域的日志文件,请选择 us-east-2

    
      跟踪的 Amazon S3 存储桶,显示 AWS 区域中日志文件的结构
  4. 将存储桶文件夹结构导航至您要查看该地区的活动日志的年、月和日。在这一天会有多个文件。文件的名称以您的 AWS 账户 ID 开头,而以扩展名 .gz 结尾。例如,如果您的账户 ID 是 123456789012,您将看到文件名称类似于: 123456789012_CloudTrail_us-east-2_20190610T1255abcdeEXAMPLE.json.gz。

    要查看这些文件,您可以下载它们,解压缩,然后在纯文本编辑器或 JSON 文件查看器中查看它们。有些浏览器还支持直接查看 .gz 和 JSON 文件。我们建议您使用 JSON 查看器,因为它可以更轻松地分析 CloudTrail 日志文件中的信息。

    当您开始浏览文件内容时,您可能开始想了解您看到的内容。CloudTrail 记录在发生事件时在该 AWS 区域中遇到活动的每个 AWS 服务的事件。换句话说,不同 AWS 服务的事件仅根据时间混合在一起。要详细了解特定 AWS 服务使用 CloudTrail 记录的内容,包括该服务的 API 调用的日志文件条目的示例,请参阅 CloudTrail 支持的服务的列表,并阅读该服务的 CloudTrail 集成主题。您还可以通过查看 CloudTrail 日志事件参考 详细了解 CloudTrail 日志文件的内容和结构。

    您还可能注意到 美国东部(俄亥俄州) 的日志文件中未看到的内容。具体来说,您将不会看到任何控制台登录事件,即使您知道您已登录控制台。这是因为控制台登录和 IAM 事件是全局服务事件并记录到特定的 AWS 区域中。在这种情况下,它们记录到 美国东部(弗吉尼亚北部) 中,这对应于文件夹 us-east-1。导航到该文件夹,并导航到您感兴趣的年、月和日。浏览日志文件并查找如下所示的 ConsoleLogin 事件:

    { "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Mary_Major", "accountId": "123456789012", "userName": "Mary_Major" }, "eventTime": "2019-06-10T17:14:09Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.67", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true", "MobileVersion": "No", "MFAUsed": "No" }, "eventID": "2681fc29-EXAMPLE", "eventType": "AwsConsoleSignIn", "recipientAccountId": "123456789012" }

    您将注意到,此日志文件条目告诉您的内容不仅仅是已登录的 IAM 用户的身份 (Mary_Major)、她登录的日期和时间以及登录已成功。您还可以了解她从中登录的 IP 地址、她使用的计算机的操作系统和浏览器软件,以及她未使用多重身份验证。

步骤 4:后续步骤计划

现在,您有一个跟踪,您有权访问您 AWS 账户中的事件和活动的持续记录。这种持续记录有助于您满足 AWS 账户的会计和审计需求。但是,使用 CloudTrail 和 CloudTrail 数据,您可以完成多得多的任务。

  • 为您的跟踪数据增加额外的安全性。当您创建跟踪时,CloudTrail 会自动应用特定的安全级别。但是,您可以使用其他一些步骤来帮助您确保数据安全。

  • 创建跟踪以记录数据事件。 如果在一个或多个 Amazon S3 存储桶中添加、检索和删除对象时,或者在调用一个或多个 AWS Lambda 函数时,您有兴趣记录事件,则这些是数据事件。在本教程前面创建的管理事件跟踪不会记录这些类型的事件。您可以专门创建一个单独的跟踪,以记录您的部分或全部 Amazon S3 和 Lambda 资源的数据事件。有关更多信息,请参阅 数据事件

    注意

    记录数据事件将收取额外费用。有关更多信息,请参阅 AWS CloudTrail 定价

  • 设置 CloudWatch Logs 警报以便在特定事件发生时提示您。CloudWatch Logs 允许您监控并接收由 CloudTrail 捕获的特定事件的警报。例如,您可以监控关键的安全和网络相关的管理事件,如失败的 AWS 控制台登录事件由于授权失败而失败的 API 调用对 Amazon EC2 实例的更改。有关更多信息,请参阅 使用 Amazon CloudWatch Logs 监控 CloudTrail 日志文件

  • 使用分析工具确定 CloudTrail 日志中的趋势。 尽管事件历史记录中的筛选条件可帮助您查找近期活动中的特定事件或事件类型,但它不提供搜索更长时间段内的活动的功能。要进行更深入和更复杂的分析,您可以使用 Amazon Athena。有关更多信息,请参阅 Amazon Athena 用户指南中的查询 AWS CloudTrail Logs