SuperAPI AI 工具集

aws-cloudtrail

安全与审计

查看项目

更新于 10-15 12:33

技能介绍

用途

AWS CloudTrail 用于记录和审计 AWS 账户活动,可服务于合规、安全调查和运营故障排查。本技能面向以下场景:

  • 在所有 AWS 账户中启用组织范围的审计日志记录
  • 调查安全事件或未授权的 API 活动
  • 满足 SOC 2、HIPAA、PCI DSS 或 FedRAMP 等合规要求
  • 针对敏感的 AWS API 调用设置自动告警
  • 查询历史 AWS 活动以进行取证分析

主要能力

  • 创建组织跟踪(organization trail)、多区域跟踪,并启用日志文件验证
  • 使用 S3 存储日志,并配置桶策略、阻止公共访问、版本控制、服务端加密与生命周期策略
  • 配置高级事件选择器,细化管理事件与数据事件(如 S3 对象、Lambda 函数、DynamoDB 表)的捕获范围
  • 通过 CloudWatch Logs 指标过滤器与告警监控未授权 API 调用、Root 账户使用、未使用 MFA 的控制台登录、IAM 策略变更和安全组变更
  • 使用 Athena 对外部表查询 CloudTrail 日志,进行删除操作、异常 IP 登录、访问密钥使用模式、失败 API 调用与 KMS 密钥使用等分析
  • 使用 CloudTrail Lake 事件数据存储进行长期可查询存储
  • 验证日志文件完整性并检查跟踪状态
  • 通过 Terraform 配置跟踪

使用方式

资料中给出了完整的 CLI 操作流程:

  1. 为日志存储创建 S3 存储桶:
aws s3api create-bucket \
  --bucket org-cloudtrail-audit-logs \
  --region us-east-1
  1. 应用允许 CloudTrail 写入的桶策略(aws s3api put-bucket-policy,内容包含 AWSCloudTrailAclCheck 与 AWSCloudTrailWrite 两条 Statement)。
  2. 阻止公共访问:
aws s3api put-public-access-block \
  --bucket org-cloudtrail-audit-logs \
  --public-access-block-configuration \
  BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
  1. 启用版本控制:
aws s3api put-bucket-versioning \
  --bucket org-cloudtrail-audit-logs \
  --versioning-configuration Status=Enabled
  1. 启用服务端加密(使用 aws:kms 与 alias/cloudtrail-key)。
  2. 设置生命周期策略(90 天转 Glacier,2555 天过期)。
  3. 创建组织跟踪:
aws cloudtrail create-trail \
  --name org-audit-trail \
  --s3-bucket-name org-cloudtrail-audit-logs \
  --is-organization-trail \
  --is-multi-region-trail \
  --enable-log-file-validation \
  --kms-key-id arn:aws:kms:us-east-1:123456789012:alias/cloudtrail-key \
  --cloud-watch-logs-log-group-arn arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail:* \
  --cloud-watch-logs-role-arn arn:aws:iam::123456789012:role/CloudTrail-CWLogs-Role
  1. 开始记录:
aws cloudtrail start-logging --name org-audit-trail

事件选择器通过 aws cloudtrail put-event-selectors --trail-name org-audit-trail --advanced-event-selectors '...' 配置,选择器涵盖所有管理事件、敏感 S3 桶数据事件、Lambda 调用与 DynamoDB 数据事件。

告警方面,资料使用 aws logs put-metric-filter 与 aws cloudwatch put-metric-alarm 创建指标过滤器与告警,涵盖未授权 API 调用、Root 账户使用、未使用 MFA 的控制台登录、IAM 策略变更和安全组变更,告警动作指向 SNS 主题。

分析方面,资料提供 Athena 外部表 cloudtrail_logs 的建表语句,以及删除操作、异常 IP 控制台登录、访问密钥使用模式、失败 API 调用、KMS 密钥使用等查询;同时给出 CloudTrail Lake 事件数据存储的创建命令与 SQL 查询示例。

验证完整性:

aws cloudtrail validate-logs \
  --trail-arn arn:aws:cloudtrail:us-east-1:123456789012:trail/org-audit-trail \
  --start-time "2024-01-01T00:00:00Z" \
  --end-time "2024-01-31T23:59:59Z"

另提供 get-trail-status 与 describe-trails 检查状态与配置。Terraform 配置示例中定义了 aws_cloudtrail 资源及管理事件与敏感 S3 数据事件的高级事件选择器。

配置清单(Setup Checklist)

资料给出分类检查清单:

  • trail_configuration:组织跟踪、多区域、日志文件验证、KMS 加密、CloudWatch Logs 集成、S3 桶策略限制
  • s3_bucket_hardening:阻止公共访问、版本控制、服务端加密、生命周期策略、桶访问日志、对象锁定(如需要)
  • monitoring_and_alerting:未授权 API 调用指标过滤器、Root 账户告警、未使用 MFA 登录告警、IAM 策略变更告警、安全组与 NACL 变更告警、CloudTrail 配置变更告警、S3 桶策略变更告警
  • analysis:Athena 表、CloudTrail Lake 事件数据存储、高风险 API 模式定期审查、合规证据自动报告
  • operational:跟踪状态健康检查自动化、日志投递延迟监控、定期运行日志文件验证、跟踪配置变更 SNS 通知

最佳实践

  • 从管理账户启用组织范围跟踪以实现全面覆盖
  • 始终启用日志文件验证以检测篡改
  • 使用客户管理的 KMS 密钥加密日志并限制密钥使用
  • 使用高级事件选择器捕获敏感资源的数据事件,而不必记录所有内容
  • 集成 CloudWatch Logs 以实现实时指标过滤器与告警
  • 设置 Athena 或 CloudTrail Lake 以便在调查期间高效查询
  • 应用 S3 生命周期策略将旧日志转入 Glacier 并强制执行保留
  • 将跟踪本身(投递错误、配置变更)作为元控制进行监控
  • 定期验证日志完整性,作为合规证据收集的一部分
  • 使用最小权限 IAM 策略限制对 CloudTrail S3 桶与 KMS 密钥的访问

适用场景与限制

适用于 AWS 账户活动的审计、安全事件调查、合规取证与运营排查。资料未提供收费、价格、配额上限或平台差异等信息,相关细节暂未提供。