将日志收集到 CloudWatch
了解日志组和日志流如何收集服务数据。
将日志收集到 CloudWatch 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
CloudWatch Logs 的作用
Amazon CloudWatch Logs 是一项托管服务,用于收集、存储和搜索 AWS 资源及应用程序产生的日志数据。日志不再只是存放在单个服务器上,不会因实例终止而丢失,而是会流入一个集中且持久的位置。对于安全工程师来说,集中管理正是关键所在:看不见的内容,就无法检测或调查。
日志组
日志组是用于存放相关日志数据并定义共享设置的容器。通常,一个日志组代表一个应用程序或服务,例如 /aws/lambda/my-function。从安全角度看,最重要的有两项设置:保留期,用于控制日志在自动删除前保存多长时间;以及可选的 KMS 密钥,用于加密静态数据。
日志流
在日志组中,日志流是来自单个来源的一系列事件,例如一个 EC2 实例或一个 Lambda 调用环境。事件会带有时间戳和消息。按日志流拆分来源,可以将不同来源分开,这样您既能将所有内容逻辑上归入同一个日志组,又能追踪活动的具体来源。
统一 CloudWatch 代理
EC2 实例和本地服务器不会自动发送日志。主机上安装的统一 CloudWatch 代理可以将操作系统日志、应用程序日志和自定义日志文件发送到 CloudWatch Logs。它还会收集虚拟机监控程序无法查看的额外指标,例如内存和磁盘使用情况。该代理需要一个授予其写入日志权限的 IAM 角色。
原生服务集成
许多 AWS 服务无需任何代理即可直接记录到 CloudWatch。Lambda 会写入函数输出,VPC Flow Logs 可以指定日志组,Route 53 可以记录 DNS 查询。CloudTrail 除了 S3 之外,也可以将事件传送到 CloudWatch Logs。了解哪些来源无需代理、哪些来源需要代理,是考试中的常见考点。
保留期与成本
默认情况下,日志组会永久保留数据,这会在不知不觉中增加费用。您可以为每个日志组设置保留期,范围从一天到十年。安全和合规要求通常需要长期保留审计记录,而嘈杂的调试日志则可以快速过期。平衡这两点,才能同时满足审计人员和财务团队的要求。
加密日志数据
CloudWatch Logs 默认会加密静态数据,但您可以将客户托管的 KMS 密钥与日志组关联,以实现更严格的控制。这样,您可以通过密钥策略精确管理谁能够读取日志,并生成可审计的密钥使用记录。包含凭证或 PII 的敏感日志尤其适合采用这种方式。
aws logs associate-kms-key \
--log-group-name /aws/lambda/payments \
--kms-key-id arn:aws:kms:us-east-1:111122223333:key/abcd-1234订阅筛选器
订阅筛选器会将匹配的日志事件近乎实时地传送到其他目标,例如 Lambda、Kinesis Data Streams 或 Amazon OpenSearch。安全团队可以利用它在事件到达后立即将日志转发到 SIEM 或集中式日志账户,而不是稍后批量导出。它让 CloudWatch Logs 变成了实时数据管道。
将日志导出到 S3
对于长期、低成本的存档,您可以将日志数据导出到 Amazon S3。S3 提供更低廉的存储、将数据转入 Glacier 的生命周期规则,以及用于确保不可变性的对象锁定。常见做法是在 CloudWatch 中短期保留日志以便快速搜索,同时将日志导出到受严格限制的 S3 存储桶,作为长达数年的合规记录。
CloudWatch Logs Insights
CloudWatch Logs Insights 是一种专门用于交互式搜索日志组的查询语言。您可以在不导出数据的情况下,对海量日志进行筛选、聚合和排序。在调查过程中,您可以用它快速回答诸如哪个 IP 触发了最多错误等问题,因此它通常是深入分析前使用 Athena 的快速第一步。
保护数据管道
日志管道本身也是攻击目标。仅向 CloudWatch 代理角色授予 logs:CreateLogStream 和 logs:PutLogEvents 权限,绝不要授予过于宽泛的权限。保护日志组,防止攻击者删除日志来掩盖活动,并尽快将关键日志转发到单独的账户。完全由您掌控的日志,才是值得信任的证据。
快速检查
检验您对 CloudWatch Logs 收集机制的掌握程度。
回顾
CloudWatch Logs 会将日志数据集中到由日志流组成的日志组中。EC2 和本地环境中的主机需要统一代理,而许多服务则支持原生集成。设置保留期来控制成本,为敏感数据关联KMS 密钥,并使用订阅筛选器或S3 导出将数据发送到 SIEM 或进行存档。锁定数据管道,才能保持证据的可信度。
常见问题解答
「将日志收集到 CloudWatch」课时是免费的吗?
是的 — 「将日志收集到 CloudWatch」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「将日志收集到 CloudWatch」这节课中我会学到什么?
了解日志组和日志流如何收集服务数据。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「将日志收集到 CloudWatch」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 将日志收集到 CloudWatch
- 安全事件的指标筛选器
- 创建警报和通知
- 检测根账户使用情况