我收到以下日志消息:
com.amazonaws.services.s3.model.AmazonS3Exception:指定的键 不存在。(服务:亚马逊S3;状态代码:404;错误代码: 没有这样的钥匙;请求 ID:
request_id
;S3 扩展请求 ID:extended_request_id
(
是否可以通过request_id
和extended_request_id
获取请求的参数(在本例中为 S3 密钥和存储桶(?
请求 ID 在网络上以x-amz-request-id
形式接收,并设置为Request ID
S3 访问日志中的。
这不会提供有关请求参数的详尽信息,具体取决于您要查找的内容,但它将显示存储桶和密钥 - 当然,您必须知道要查看哪个存储桶的日志。
有关请求的更多详细信息,可能会在 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。