2023-02-22 · 8

AWS 云服务日志(CloudWatch 与 CloudTrail)

cloudawscloudwatchcloudtrail

这篇文章发布已超过两年,内容可能已过时。

AWS 云服务日志

  • 按资源分类的日志
    • EC2 创建/删除、S3 存储日志、数据库日志、无服务器资源日志、容器日志等…
    • 各资源均可通过 CloudWatch 查看与汇总。
    • 借助 CloudWatch agent 可以扩展 EC2 日志做统一分析。
  • 网络流量日志
    • 虚拟网络 VPC Flow 日志
    • 为每个 VPC 创建并管理流日志
  • 资源事件日志
    • 管理通过 AWS SDK、CLI 产生的 API 日志
    • 可追踪调用 API 的 IP 地址与用户账号
  • 费用事件日志
    • 使用云服务时按资源/标签查看费用
    • 超出预设金额时发送警告邮件

什么是 AWS CloudWatch?

  • Amazon CloudWatch 实时监控 AWS 资源以及运行在 AWS 上的应用。你可以用 CloudWatch 收集并跟踪指标——针对资源和应用可度量的变量。
  • CloudWatch 首页会自动展示所有在用 AWS 服务的指标。还可以创建自定义仪表盘,展示自有应用的指标或自选指标集合。
  • 可以创建告警来监视指标并发送通知,或在越过阈值时自动调整被监控资源。例如监控 EC2 实例的 CPU 使用率和磁盘读写,据此判断是否需要启动更多实例来应对负载,或停掉利用率低的实例。
  • 借助 CloudWatch 可以掌握全系统的资源利用率、应用性能与运行状态。

AWS CloudWatch 使用方法

这是 AWS CloudWatch 的主界面,可以在这里做各种日志配置。我们在 Alarms → Billing 里设置一个预算告警。

点击 Create alarm 创建告警。

Metric name 是名称,Currency 是货币,Statistic 是统计量,Period 是周期。周期设得太短会增加 CloudWatch 的费用,要设置得恰当。

为了便于理解,界面翻译成了韩语。设定支出阈值,并选择超过阈值告警还是低于阈值告警。

选择告警后点击创建新主题,填写主题名称和接收邮件的地址,然后点 Create topic。之后需要相同主题时可以直接复用这个名字。

这里配置自动扩缩过程中费用起伏的告警状态(本次实操不使用)。之后一路下一步,最后填好名称和描述即可。

确认创建成功。因为我设的周期是一天,数据还没积累,所以显示数据不足;过一天信息就会累积起来。AWS CloudWatch 到此为止。

什么是 AWS CloudTrail?

AWS CloudTrail 是帮助实现 AWS 账户运营与风险审计、治理与合规的 AWS 服务。用户、角色或 AWS 服务执行的操作都会作为事件记录到 CloudTrail 中,包括在 AWS 管理控制台、AWS CLI 以及 AWS SDK/API 中执行的操作。

AWS CloudTrail 概览

  • 支持账户管理、合规、运营与风险审计的服务
  • 参考记录的信息,可以审查用户、角色、服务执行过的操作
  • 汇集 AWS 上所有行为的事件,可用于分析、追踪资源变更等

AWS CloudTrail 事件类型

  • 管理事件:提供对账户资源执行的管理操作信息
  • 数据事件:提供在资源上执行的资源操作信息
  • Insights 事件:记录账户中发生的异常活动

AWS CloudTrail 工作方式

AWS CloudTrail 在创建 AWS 账户时即被启用。账户中的活动会记录为 CloudTrail 事件,可在 AWS 控制台的 Event History 中查看。

AWS CloudTrail 可配置为把事件保存到指定的 S3 存储桶,也可以通过 AWS CloudWatch Logs 与 Events 传送并分析 Trail 事件。

  • 应用于所有区域的 Trail
    • 创建全区域 Trail 后,CloudTrail 会在各区域记录事件,并把日志文件发送到指定 S3 桶。新增区域会自动纳入并记录。
  • 应用于单个区域的 Trail
    • 创建单区域 Trail 后,CloudTrail 只记录该区域的事件,然后把日志文件发送到指定的 S3 桶。

默认情况下 CloudTrail 日志文件使用 S3 SSE(服务端加密)加密,也可以选择用 AWS Key Management Service(AWS KMS)密钥加密。

CloudTrail 工作流

查看账户的事件历史

  • 在 CloudTrail 控制台或通过 AWS CLI,可以查看和搜索最近 90 天记录的事件。

下载事件

  • 可以下载包含账户最近最多 90 天 CloudTrail 事件的 CSV 或 JSON 文件。

下载已保存的查询结果

  • 可以下载包含已保存 CloudTrail Lake 查询结果的 CSV 文件

创建 trail

  • CloudTrail 可以通过 trail 把日志文件发送到 Amazon S3 桶。
  • 在控制台创建 trail 时默认应用于所有区域。
  • trail 会记录 AWS 分区内所有区域的事件,并把日志文件发送到指定 S3 桶。

创建并订阅 Amazon SNS 主题

  • 订阅主题后,日志文件送达桶时可以收到通知。
  • Amazon SNS 可以通过多种方式通知用户,包括经由 Amazon Simple Queue Service 的编程方式。

查看日志文件

  • 可以通过 Amazon S3 检索日志文件。

管理用户权限

  • 借助 AWS Identity and Access Management(IAM),可以管理哪些用户有权创建、配置或删除 trail、启动和停止日志记录、以及访问存放日志文件的 S3 桶。

通过 CloudWatch Logs 监控事件

  • 可以把 trail 配置为向 CloudWatch Logs 发送事件。
  • 借助 CloudWatch Logs 可以监控账户中是否发生了特定 API 调用与事件。

记录管理事件与数据事件

  • 将 trail 配置为记录只读、只写或全部管理与数据事件。

日志加密与完整性校验

  • 日志文件加密为日志提供了额外的安全层。
  • 启用完整性校验后,可以确认 CloudTrail 发送日志文件后文件未被篡改。

启用 CloudTrail Lake

  • CloudTrail Lake 支持对事件执行精细的 SQL 查询。
  • 事件聚合到事件数据存储中——它是基于高级事件选择器所选标准的不可变事件集合。
  • 事件数据可在事件数据存储中保留最长 7 年。
  • CloudTrail Lake 是帮助进行安全调查与故障排除的审计方案的一部分。

把 trail 事件复制到 CloudTrail Lake

  • 可以把现有 trail 事件复制到事件数据存储,为已记录事件创建时间点快照。

把 CloudTrail Lake 查询结果保存到 S3 桶

  • 执行查询时可以把结果保存到 S3 桶。

与其他 AWS 账户共享日志文件

  • 日志文件可以跨账户共享。

汇总多个账户的日志

  • 可以把多个账户的日志文件汇总到单个桶中。

什么是 Trail?

Trail

是把 CloudTrail 事件送达 Amazon S3 桶、CloudWatch Logs 与 CloudWatch Events 的配置。通过 Trail 可以筛选要投递的事件、用 AWS KMS 密钥加密事件日志文件,并为文件投递配置 Amazon SNS 通知。

CloudTrail 实操

简单实操一下 CloudTrail。

如上图进入 CloudTrail → Trails,点击 Create trail。

如前所述,CloudTrail 会把区域内发生的事件保存到 S3 桶,这一步就是创建要用的 S3 桶。Log file validation 以后单独整理。下面的 CloudWatch Logs 选项是问要不要把这个 CloudTrail 同时记录到 CloudWatch。之后一路 next 完成 Create trail。

可以确认创建成功。去 S3 也能看到刚才创建的桶。

可以看到生成了存放日志的 AWSLogs 文件夹,里面的日志也记录得很完整。


原文(韩语): tistory — 发布于 2023-02-22,已迁移至本博客。本翻译由 AI 协助完成。

评论

删除这条评论?

相关文章

AWS 云服务日志(CloudWatch 与 CloudTrail) · 나봄하랑