将 Amazon Quick 日志投递至 Amazon S3:审计与长期留存指南

将 Amazon Quick 日志投递至 Amazon S3:审计与长期留存指南

💡 原文中文,约14500字,阅读约需35分钟。
📝

内容提要

本文介绍如何将Amazon QuickSight日志持续投递至S3,用于审计与长期留存。支持五类日志(聊天、反馈、用量、索引、文件同步),通过CloudWatch Logs V2 delivery实现,无需创建Log Group。提供CloudFormation和AWS CLI两种部署方式,涵盖权限配置、加密、排障及清理步骤,并强调安全合规与最小权限原则。

🔎

延伸解读

日志类型与触发频率差异

五类日志的发布频率差异显著:聊天和反馈日志可快速验证,而用量、索引和文件同步日志依赖实际功能调用或内容变更。例如,INDEX_USAGE_LOGS仅在来源变化时发布,不保证每天有记录;KB_FILE_SYNC_LOGS在每次同步时按文档产生记录。理解这些差异有助于区分“尚无业务事件”和“投递异常”,避免误判。

字段默认不写入的注意事项

官方文档中标记为*的字段(如latency、time_to_first_token等)默认不会写入日志。如需这些字段,必须在CreateDelivery时通过record-fields显式指定,并同时包含该日志类型的必填字段。这提醒读者在规划日志分析需求时,需提前确认所需字段是否默认可用,否则可能影响后续分析。

安全与合规的关键考量

CHAT_LOGS和FEEDBACK_LOGS可能包含用户输入或业务上下文,启用投递前应完成数据分类、隐私评估和访问控制设计。建议对Bucket及日志读取权限实施最小权限原则,按日志类型配置S3 Lifecycle,生产环境使用Customer Managed KMS Key,并确认数据驻留和隐私要求。这些措施有助于满足审计与合规需求。

Q&A

如何将 Amazon QuickSight 日志投递到 S3?

可以通过 CloudWatch Logs V2 delivery 功能,将 Amazon QuickSight 的日志直接投递到 S3。支持五类日志:聊天、反馈、用量、索引和文件同步。部署方式有 CloudFormation 和 AWS CLI 两种,无需创建 Log Group。

Amazon QuickSight 支持哪些日志类型?

支持五类日志:CHAT_LOGS(聊天交互)、FEEDBACK_LOGS(用户反馈)、AGENT_HOURS_LOGS(Agent 和 Research 使用时长)、INDEX_USAGE_LOGS(索引存储用量)、KB_FILE_SYNC_LOGS(知识库文件同步结果)。

使用 CloudFormation 部署日志投递时,需要注意什么?

需要注意:Bucket 名称必须全局唯一,默认名称可能冲突,需修改 BucketNamePrefix;模板不会使用或修改现有 Bucket;删除 Stack 时不会删除 Bucket 和日志对象(DeletionPolicy: Retain);模板不会创建 IAM 角色或 KMS Key,权限需单独管理。

手动部署日志投递需要哪些 IAM 权限?

需要 quicksight:AllowVendedLogDeliveryForResource、logs:PutDeliverySource、logs:CreateDelivery 等 CloudWatch Logs 投递相关权限,以及 s3:ListBucket、s3:GetBucketPolicy、s3:PutBucketPolicy 用于配置 Bucket Policy。

如何验证日志投递是否成功?

分两步:配置验证,使用 describe-deliveries 等命令确认 5 个 Source、1 个 Destination、5 条 Delivery 存在;数据验证,触发对应业务事件(如聊天、反馈、同步等),然后在 S3 中检查是否有日志对象生成。

为什么没有收到 INDEX_USAGE_LOGS 日志?

INDEX_USAGE_LOGS 仅在 Knowledge Base 或 Space 来源发生创建、更新、同步或删除等变化时才会发布事件,不保证每天都有记录。若需重建当前状态,应按 source_arn 选择最新事件。

如何清理日志投递配置?

按顺序删除:先删除 Delivery(delete-delivery),再删除 Source(delete-delivery-source),最后在 Destination 不再被使用时删除 Destination(delete-delivery-destination)。删除前可用 describe-deliveries 查看 Delivery ID。

使用 SSE-KMS 加密时,KMS Key Policy 需要如何配置?

必须使用 Customer Managed Key,并在 KMS Key Policy 中允许服务主体 delivery.logs.amazonaws.com 使用 kms:Encrypt、kms:Decrypt、kms:ReEncrypt*、kms:GenerateDataKey*、kms:DescribeKey 操作,并添加 aws:SourceAccount 和 aws:SourceArn 条件。

🏷️

标签

➡️

继续阅读