Amazon CloudTrail 入门教程 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon CloudTrail 入门教程

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

Prerequisites

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

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

    如果您还没有 Amazon Web Services 账户 ,请完成以下步骤创建一个。

    注册 Amazon Web Services 账户

    1. 打开 https://portal.aws.amazon.com/billing/signup

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

      在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

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

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

在您创建 Amazon 账户时,将在该账户上启用 CloudTrail。当任何支持 CloudTrail 的 Amazon 服务中发生活动时,该活动将记录在 CloudTrail 事件中,并与其他 Amazon 服务事件一起保存在 Event history(事件历史记录)中。换言之,您可以在创建跟踪之前查看、搜索和下载您 Amazon 账户中的最新事件,但创建跟踪对于长期记录和审计您的 Amazon 账户活动而言非常重要。与跟踪不同,Event history(事件历史记录)仅显示在过去 90 天内发生的事件。

  1. 使用您为进行 CloudTrail 管理配置的 IAM 用户登录 Amazon Web Services Management Console。访问 https://console.aws.amazon.com/cloudtrail/home/,打开 CloudTrail 控制台。

  2. 在控制面板中查看您的 Amazon 账户中发生的最近事件的信息。最近的事件应为 ConsoleLogin 事件,显示您刚刚登录到 Amazon Web Services Management Console。

  3. 要查看有关某个事件的更多信息,请展开它。

  4. 在导航窗格中,选择事件历史记录。您会看到一个筛选的事件列表,最新的事件显示在最前面。事件的默认筛选条件是只读的,设置为 false。您可以选择筛选条件右上角的 X 以清除该筛选条件。

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

  6. 您可以采用 CSV 或 JSON 格式的文件进行下载来保存事件历史记录。下载事件历史记录可能需要几分钟。

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

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

虽然 CloudTrail 控制台的 Event history(事件历史记录)中提供的事件可用于查看近期活动,但它们限于近期活动,而并不揽括 CloudTrail 可能记录的所有可能事件。此外,您在控制台中查看的事件限制为您登录的 Amazon 区域。要创建您 Amazon 账户中活动的持续记录以捕获所有 Amazon 区域的信息,请创建跟踪。默认情况下,在 CloudTrail 控制台中创建跟踪时,此跟踪会记录所有区域中的事件。推荐的最佳实践是记录您账户中的所有区域的事件。

对于第一个跟踪,我们建议您创建一个跟踪记录所有 Amazon 区域中的所有管理事件,而不记录任何数据事件。管理事件的示例包含安全事件(如 IAM CreateUserAttachRolePolicy 事件)、资源事件(如 RunInstancesCreateBucket),等等。作为在 CloudTrail 控制台中创建跟踪的一部分,您将创建一个 Amazon S3 存储桶(将在其中存储跟踪的日志文件)。

注意

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

  1. 使用您为进行 CloudTrail 管理配置的 IAM 用户登录 Amazon Web Services Management Console。访问 https://console.aws.amazon.com/cloudtrail/home/,打开 CloudTrail 控制台。在 Region (区域) 选择器中,选择要在其中创建跟踪的 Amazon 区域。这是跟踪的主区域。

    注意

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

  2. 在 CloudTrail 服务主页、Trails(跟踪)页面或 Dashboard(控制面板)页面的 Trails(跟踪)部分上,选择 Create trail(创建跟踪)。

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

  4. 保留 Amazon Organizations 组织跟踪的默认设置。除非您在 Organizations 中配置了账户,否则此选项将不能进行更改。

  5. 对于 Storage location(存储位置,选择 Create new S3 bucket(创建 S3 存储桶)以创建存储桶。在创建存储桶时,CloudTrail 会创建并应用所需的存储桶策略。为您的存储桶提供名称,例如 my-bucket-for-storing-cloudtrail-logs

    为了更轻松地查找日志,在现有存储桶中创建新文件夹(又称为前缀)来存储您的 CloudTrail 日志。在 Prefix(前缀)字段中输入前缀。

    注意

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

  6. 清除此复选框可禁用 Log file SSE-KMS encryption(日志文件 SSE-KMS 加密)。默认情况下,您将使用 SSE-S3 加密法加密日志文件。有关此设置的更多信息,请参阅使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据

  7. Additional settings(其他设置)中保留默认设置。

  8. 此时,请勿将日志发送到 Amazon CloudWatch Logs。

  9. Tags (标签) 中,将一个或多个自定义标签(键值对)添加到跟踪中。标签可帮助您识别 CloudTrail 跟踪和其他资源,如包含 CloudTrail 日志文件的 Amazon S3 存储桶。例如,您可以附加名称为 Compliance、值为 Auditing 的标签。

    注意

    尽管您可以在 CloudTrail 控制台中创建跟踪时向其添加标签,并且可以创建一个 Amazon S3 存储桶以将日志文件存储在 CloudTrail 控制台中,但是您无法从 CloudTrail 控制台将标签添加到 Amazon S3 存储桶。有关查看和更改 Amazon S3 存储桶属性(包括向存储桶添加标签)的更多信息,请参阅 Amazon S3 用户指南

    完成标签创建后,选择 Next(下一步)。

  10. Choose log events(选择日志事件)页面中,选择要记录的事件类型。对于此跟踪,请保留默认值 Management events(管理事件)。在 Management events(管理事件)区域中,如果尚未选择,则选择以记录 Read(读取)和 Write(写入)两类事件。将 Exclude Amazon KMS events(排除 Amazon KMS 事件)和 Exclude Amazon RDS Data API events(排除 Amazon RDS 数据 API 事件)的复选框留空,以记录所有事件。

  11. 保留 Data events(数据事件)和见解事件的默认设置。此跟踪不会记录任何数据或 CloudTrail 见解事件。选择 Next (下一步)

  12. Review and create(审核和创建)页面上,审核您为跟踪选择的设置。对相关部分选择 Edit(编辑)以返回并进行更改。在准备好创建跟踪时,选择 Create trail(创建跟踪)。

  13. Trails(跟踪)页面会在表中显示您的新跟踪。请注意,跟踪设置为 Multi-region trail(多区域跟踪),并且默认情况下为跟踪打开了日志记录。

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

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

注意

CloudTrail 通常会在 API 调用后平均大约 15 分钟内传输日志。此时间并不能得到保证。有关更多信息,请参阅 Amazon CloudTrail 服务等级协议

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

    注意

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

  2. 在跟踪对应的行中,选择 S3 存储桶的值(在此示例中为 aws-cloudtrail-logs-08132020-mytrail)。

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

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

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

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

    您还可能注意到在美国东部(俄亥俄)区域的日志文件中未看到的内容。具体来说,您将不会看到任何控制台登录事件,即使您知道您已登录控制台。这是因为控制台登录和 IAM 事件是全局服务事件,它们通常记录到特定的 Amazon 区域中。在这种情况下,它们记录在美国东部(弗吉尼亚北部),并可在文件夹 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:后续步骤计划

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

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

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

    注意

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

  • 在您的跟踪中记录 CloudTrail 见解事件。通过持续分析 CloudTrail 管理事件,CloudTrail 见解可帮助您识别和应对与 write API 调用相关的异常或不寻常活动。CloudTrail 见解使用数学模型来确定账户的 API 和服务事件活动的正常级别。它可识别正常模式之外的行为,生成见解事件,并将这些事件传送到为跟踪记录选择的 S3 存储桶中的 /CloudTrail-Insight 文件夹。有关 CloudTrail 见解的更多信息,请参阅 记录跟踪的见解事件

    注意

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

  • 设置 CloudWatch Logs 警报,以便在发生特定事件时提醒您。CloudWatch Logs 允许您监控和接收由 CloudTrail 捕获的特定事件的警报。例如,您可以监控关键的安全和网络相关管理事件,例如安全组更改失败的 Amazon Web Services Management Console 登录事件或者对 IAM 策略的更改。有关更多信息,请参阅 使用 Amazon CloudWatch Logs 监控 CloudTrail 日志文件

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