通过 AWS 请求 ID 获取请求参数



我收到以下日志消息:

com.amazonaws.services.s3.model.AmazonS3Exception:指定的键 不存在。(服务:亚马逊S3;状态代码:404;错误代码: 没有这样的钥匙;请求 ID:request_id;S3 扩展请求 ID:extended_request_id(

是否可以通过request_idextended_request_id获取请求的参数(在本例中为 S3 密钥和存储桶(?

请求 ID 在网络上以x-amz-request-id形式接收,并设置为Request IDS3 访问日志中的。

这不会提供有关请求参数的详尽信息,具体取决于您要查找的内容,但它将显示存储桶和密钥 - 当然,您必须知道要查看哪个存储桶的日志。

有关请求的更多详细信息,可能会在 CloudTrail 日志中找到。默认情况下,CloudTrail 不会捕获对象级别请求,因此您需要启用此功能。 请求 ID 也应显示在这些日志中。

据我所知,扩展请求 ID(也称为x-amz-id-2(仅在内部为您跟踪内容时用于 AWS 支持。 这两个值都不包含敏感信息。 扩展 ID 可能是较大的随机数,也可以是加密的,但如果它是加密的,则没有记录的解密方法。 文档称其为"特殊令牌"。 有关支持上下文的更多详细信息,请参见此处。

总之,没有简短/简单的"查找"方法,但如上所述,这是可能的。

如果您转到 CloudWatch Log Insights,则可以运行查询:

fields @requestId, @message, @timestamp | filter @message like /"requestID":"REQUEST_ID"/

您可能会看到类似以下内容的建议:

fields @timestamp, @message
| filter @message like /REQUEST_ID/

这有效,但通过持续测试,它将开始用您完成的搜索填充您的搜索结果,因此第一种方法更好。

截至 2023 年 5 月开始,以下 cloudwatch 查询对我有用

fields @timestamp, @message
| filter webaclId = "arn:aws:wafv2:us-east-1:829107270802:global/webacl/xxxxxxx/7ad609ef-bb73-356c-b93d-15faf5d79a43"
| filter httpRequest.requestId = "t9S3k2h6BS328NC36nRKkrMEOP7XNfdk62GnSen1quoxEiTahXoGHA=="

只需将您的 webaclID 替换为您的 waf ID 和您要查找的请求 ID。

最新更新