收集 AWS CloudTrail 日志
本文档介绍了如何通过设置 Google Security Operations Feed 来收集 AWS CloudTrail 日志,以及日志字段如何映射到 Google SecOps Unified Data Model (UDM) 字段。
如需了解详情,请参阅 [将数据提取到 Google SecOps][1]。
典型部署包括 AWS CloudTrail 和配置为向 Google SecOps 发送日志的 Google SecOps Feed。您的部署可能与本文档中描述的典型部署不同。部署包含以下组件:
AWS CloudTrail:用于收集日志的平台。
AWS S3:用于存储日志的平台。
Google SecOps Feed:从 AWS S3 中提取日志并将日志写入 Google SecOps 的 Google SecOps Feed。
Google SecOps:用于保留和分析 AWS CloudTrail 日志的平台。
注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 AWS_CLOUDTRAIL
注入标签的解析器。
准备工作
请确保满足以下前提条件:
- AWS 账号
- 满足使用 AWS CloudTrail 的前提条件。如需了解详情,请参阅 AWS CloudTrail 设置。
- 部署架构中的所有系统都使用世界协调时间 (UTC) 时区
通过 SQS 从 S3 注入日志的基本步骤
本部分介绍了将 AWS CloudTrail 日志注入到 Google SecOps 实例的基本步骤。以下步骤介绍了如何使用 Amazon S3(以 Amazon SQS 作为 Feed 源类型)执行此操作。
配置 AWS CloudTrail 和 S3
在此过程中,您将配置 AWS CloudTrail 日志,使其写入 S3 存储桶。
- 在 AWS 控制台中,搜索 CloudTrail。
- 点击创建试验。
- 提供跟踪名称。
- 选择 Create new S3 bucket。您也可以选择使用现有的 S3 存储桶。
- 提供 AWS KMS 别名,或选择现有的 AWS KMS 密钥。
- 您可以将其他设置保留为默认值,然后点击下一步。
- 选择事件类型,根据需要添加数据事件,然后点击下一步。
- 在检查并创建中检查设置,然后点击创建轨迹。
- 在 AWS 控制台中,搜索 Amazon S3 Buckets。
- 点击新创建的日志存储桶,然后选择文件夹 AWSLogs。然后点击复制 S3 URI 并保存,以便在后面的步骤中使用。
设置标准 SQS 队列和 SNS
如果您使用 SQS 队列,则必须是标准队列,而不是 FIFO 队列。
- 启用 AWS CloudTrail 并将其配置为使用新的或现有的轨迹将日志传送到 S3 存储桶。
- 打开 AWS SNS 控制台,然后创建一个新的标准主题。为其命名,例如:CloudTrail-Notification-Topic。
使用 AWS SQS 控制台创建 SQS 队列,例如,CloudTrail-Notification-Queue,并更新其访问政策,以允许 SNS 主题 ARN 发送消息。如需详细了解如何创建 SQS 队列,请参阅 Amazon SQS 使用入门。
SQS 政策代码段示例:
{ "Version": "2012-10-17", "Id": `PolicyForSNS`, "Statement": [ { "Sid": "AllowSNS", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:CloudTrail-Notification-Queue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:REGION:ACCOUNT_ID:CloudTrail-Notification-Topic"} } } ] }
前往 SNS 主题 → 订阅 → 创建订阅,将协议设置为 SQS,并将端点设置为 SQS 队列的 ARN。
CloudTrail 本身不会将新日志推送到 SNS。如需启用通知,您可以使用管理事件的 CloudTrail 事件选择器,也可以使用 CloudTrail 与 CloudWatch Logs 的集成,然后创建 CloudWatch 事件规则,通过将 SNS 主题设置为目标来触发通知。如需了解详情,请参阅在 S3 存储桶中设置通知。
事件模式示例:
{ "source": ["aws.s3"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventName": ["PutObject"], "requestParameters": { "bucketName": [`CloudTrail-Notification-Topic`] } } }
确保 IAM 角色或政策允许 CloudWatch Events 发布到 SNS,并确保 SNS 允许向 SQS 发送消息。
配置 AWS IAM 用户
配置一个 AWS IAM 用户,Google SecOps 将使用该用户访问 SQS 队列(如果使用)和 S3 存储桶。
- 在 AWS 控制台中,搜索 IAM。
- 点击用户,然后在以下界面中点击创建用户。
- 提供用户名(例如 chronicle-feed-user),然后选择为用户提供对 AWS 管理控制台的访问权限。
- 选择 Attach existing policies directly,然后根据需要选择 AmazonS3ReadOnlyAccess 或 AmazonS3FullAccess。如果 Google SecOps 在读取日志后应清理 S3 存储分区,则将使用 AmazonS3FullAccess,以优化 AWS S3 存储费用。
- 作为上一步的建议替代步骤,您可以通过创建自定义政策进一步限制为仅可访问指定的 S3 存储桶。点击Create policy,然后按照 AWS 文档创建自定义政策。
- 应用政策时,请确保您已添加
sqs:DeleteMessage
。 如果 SQS 队列未附加sqs:DeleteMessage
权限,Google SecOps 将无法删除消息。所有消息都累积在 AWS 端,这会导致延迟,因为 Google SecOps 会反复尝试传输相同的文件。 - 点击下一步:标记。
- 添加任何所需标记,然后点击 Next: Review。
- 检查配置,然后点击 Create user。
- 创建用户后,前往安全凭据标签页,然后点击创建访问密钥。
- 选择 CLI,然后点击下一步:标记。
- 添加任何所需标记,然后点击创建访问密钥:查看。
- 复制已创建用户的访问密钥 ID 和私有访问密钥,以便在下一步中使用。
配置 KMS 密钥权限
需要使用 KMS 密钥来解密在服务器端加密的 CloudTrail 日志。AWS KMS 可为存储在 Amazon S3 中的敏感数据提供增强的加密和安全性。
- 在 AWS 控制台中,搜索 Key Management Service (KMS)。
- 点击创建密钥:下一步。
- 为密钥添加别名。根据需要,添加说明和标签。点击下一步:检查。
- 检查配置后,点击下一步。
- 选择应有权访问此密钥的关键用户,然后点击完成。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed > 添加新 Feed
- 内容中心 > 内容包 > 开始
如何设置 AWS CloudTrail Feed
- 点击 Amazon Cloud Platform 包。
- 在 AWS CloudTrail 日志类型中,指定以下值:
为以下字段指定值:
- 来源类型:Amazon SQS V2
- 队列名称:要从中读取数据的 SQS 队列名称
- S3 URI:存储桶 URI。
s3://your-log-bucket-name/
- 将
your-log-bucket-name
替换为您的 S3 存储桶的实际名称。
- 将
源删除选项:根据您的提取偏好设置选择删除选项。
文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
SQS 队列访问密钥 ID:一个包含 20 个字符的字母数字字符串形式的账号访问密钥。
SQS 队列私有访问密钥:一个包含 40 个字符的字母数字字符串形式的账号访问密钥。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 资源命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于相应 Feed 中所有事件的标签。
点击创建 Feed。
如需详细了解如何为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。
支持的 AWS CloudTrail 日志类型
AWS CloudTrail 解析器支持以下服务:
- apigateway.amazonaws.com
- appconfig.amazonaws.com
- autoscaling.amazonaws.com
- cloud9.amazonaws.com
- cloudsearch.amazonaws.com
- cloudshell.amazonaws.com
- cloudtrail.amazonaws.com
- config.amazonaws.com
- devicefarm.amazonaws.com
- ds.amazonaws.com
- dynamodb.amazonaws.com
- ec2-instance-connect.amazonaws.com
- ec2.amazonaws.com
- ecr-public.amazonaws.com
- ecr.amazonaws.com
- ecs.amazonaws.com
- eks.amazonaws.com
- elasticache.amazonaws.com
- elasticloadbalancing.amazonaws.com
- firehose.amazonaws.com
- guardduty.amazonaws.com
- health.amazonaws.com
- iam.amazonaws.com
- imagebuilder.amazonaws.com
- kinesis.amazonaws.com
- kinesisanalytics.amazonaws.com
- kinesisvideo.amazonaws.com
- kms.amazonaws.com
- lambda.amazonaws.com
- logs.amazonaws.com
- macie2.amazonaws.com
- monitoring.amazonaws.com
- network-firewall.amazonaws.com
- organizations.amazonaws.com
- quicksight.amazonaws.com
- ram.amazonaws.com
- rds.amazonaws.com
- resource-explorer-2.amazonaws.com
- resource-groups.amazonaws.com
- route53-recovery-readiness.amazonaws.com
- route53.amazonaws.com
- route53domains.amazonaws.com
- route53resolver.amazonaws.com
- s3-outposts.amazonaws.com
- s3.amazonaws.com
- s3express.amazonaws.com
- secretsmanager.amazonaws.com
- securityhub.amazonaws.com
- ses.amazonaws.com
- signin.amazonaws.com
- ssm.amazonaws.com
- sts.amazonaws.com
- waf-regional.amazonaws.com
- waf.amazonaws.com
- wafv2.amazonaws.com
如需详细了解字段映射和 UDM 映射,请参阅 AWS Cloudtrail 字段映射
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。