You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda生成的CloudWatch日志查询脚本遇GetQueryResults权限拒绝,如何修正IAM策略

解决CloudWatch Logs GetQueryResults权限拒绝问题

你遇到的核心问题是IAM策略的资源范围未覆盖CloudWatch Logs查询任务本身的ARN,仅配置日志组资源会导致GetQueryResults请求被拒绝。以下是完整的权限说明和可行的策略配置:

所需的完整权限及资源范围

对应你脚本的四个操作,需配置的权限和匹配资源如下:

  • logs:StartQuery:目标Lambda日志组的ARN(示例:arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/your-function-name:*)
  • logs:GetQueryResults:CloudWatch查询任务的ARN(格式:arn:aws:logs:REGION:ACCOUNT-ID:query:*)
  • logs:GetLogRecord:日志记录的ARN(格式:arn:aws:logs:REGION:ACCOUNT-ID:log-record:*)
  • logs:GetLogEvents:目标日志组下所有日志流的ARN(示例:arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/your-function-name:*)

正确的IAM策略示例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:StartQuery",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/your-function-name:*"
        },
        {
            "Effect": "Allow",
            "Action": "logs:GetQueryResults",
            "Resource": "arn:aws:logs:us-east-1:123456789012:query:*"
        },
        {
            "Effect": "Allow",
            "Action": "logs:GetLogRecord",
            "Resource": "arn:aws:logs:us-east-1:123456789012:log-record:*"
        }
    ]
}

关键注意事项

  • 替换策略中的REGION、ACCOUNT-ID和your-function-name为你的实际信息,遵循最小权限原则,避免过度授权。
  • GetQueryResults的资源必须指定查询任务的ARN范围——每次StartQuery生成的查询ID对应独立的资源,仅指定日志组会导致权限匹配失败,这也是你当前报错的直接原因。
  • 如果需要覆盖所有Lambda日志组,可将日志组资源改为arn:aws:logs:REGION:ACCOUNT-ID:log-group:/aws/lambda/*:*,但仅在必要时使用。

内容的提问来源于stack exchange,提问作者Xophmeister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:30:50