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

使用ASK CLI部署Lambda函数时遇AccessDeniedException问题求助

解决ASK CLI部署时Lambda创建的AccessDeniedException问题

你的问题核心出在IAM权限策略的资源ARN格式错误上,导致AWS无法识别允许操作的目标资源。下面是具体的修复步骤和原因解释:

问题根源

你提供的权限策略里,Resource字段存在两个关键疏漏:

  1. 缺少你的AWS账号ID(比如错误示例里的12345678),ARN必须包含账号ID才能精准定位到你的账户资源;
  2. 资源路径末尾没有添加通配符*,无法匹配以ask-开头的具体函数/角色名称。

比如你当前的Lambda资源写的是arn:aws:lambda:::function:ask-,正确格式应该是arn:aws:lambda:us-east-1:12345678:function:ask-*(替换成你的实际账号ID和部署区域)。

修复步骤

1. 更新IAM权限策略

将ASK_CLI_USER用户的权限策略替换为以下修正后的版本(记得把12345678换成你的AWS账号ID,us-east-1换成你部署Lambda的目标区域):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:CreateRole",
        "iam:GetRole",
        "iam:AttachRolePolicy",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::12345678:role/ask-*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "lambda:AddPermission",
        "lambda:CreateFunction",
        "lambda:GetFunction",
        "lambda:UpdateFunctionCode",
        "lambda:ListFunctions"
      ],
      "Resource": "arn:aws:lambda:us-east-1:12345678:function:ask-*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:FilterLogEvents",
        "logs:GetLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Resource": "arn:aws:logs:us-east-1:12345678:log-group:/aws/lambda/ask-*"
    }
  ]
}

2. 验证权限配置

进入IAM控制台找到ASK_CLI_USER用户:

  • 确认修正后的策略已经正确附加到该用户;
  • 检查是否存在其他**拒绝(Deny)**类型的策略,避免权限被覆盖。

3. 重新执行部署

在终端中重新运行ask deploy命令,此时IAM用户应该具备创建Lambda函数的权限了。

额外提示

  • 如果你不确定自己的AWS账号ID,可以在AWS控制台右上角的账号菜单中查看;
  • ASK CLI默认会在us-east-1区域创建Lambda函数,若需要部署到其他区域,要同步修改策略中的区域字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:17:02