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

如何将AWS OpenSearch Serverless连接到Lambda注入数据?遇403权限问题

解决AOSS PUT请求403权限错误问题

可能的原因及排查步骤

1. 确认403错误的来源

先通过CloudWatch日志定位错误发生的阶段:

  • API Gateway层面:查看API Gateway的访问日志,若错误来自自定义授权器,说明请求未通过API Gateway的授权验证。
  • Lambda执行层面:查看Lambda函数的运行日志,若错误是调用AOSS时抛出的,说明是Lambda执行角色的权限或AOSS资源策略限制。

2. 若错误来自Lambda调用AOSS

检查AOSS集合的资源策略

AOSS自身的资源策略会覆盖IAM权限,即使Lambda角色有全量AOSS权限,若集合策略拒绝访问仍会返回403:

  • 登录AWS控制台,找到目标AOSS集合,进入「资源策略」页面。
  • 添加或更新策略,允许Lambda执行角色的ARN访问该集合:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<account-id>:role/<lambda-execution-role-name>"
      },
      "Action": "aoss:*",
      "Resource": "arn:aws:aoss:<region>:<account-id>:collection/<collection-name>/*"
    }
  ]
}

验证Lambda执行角色权限

  • 登录IAM控制台,找到Lambda对应的执行角色,确认其权限策略中包含aoss:*且资源为*(或明确指定目标AOSS集合ARN)。
  • 若刚修改过Serverless配置,重新执行serverless deploy确保权限更新生效。

检查AOSS请求端点

确认Lambda中调用AOSS的端点格式正确,区域与Lambda部署区域一致,例如:

const endpoint = "https://<collection-id>.<region>.aoss.amazonaws.com";

3. 若错误来自API Gateway自定义授权器

检查授权器返回的政策文档

自定义授权器必须返回允许当前请求的IAM政策,确保政策中包含对POST /lambda路径的Invoke权限:

{
  "principalId": "user-id",
  "policyDocument": {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Action": "execute-api:Invoke",
        "Effect": "Allow",
        "Resource": "arn:aws:execute-api:<region>:<account-id>:<api-id>/<stage>/POST/lambda"
      }
    ]
  }
}
  • 确认授权器逻辑中,对当前用户的权限判断正确,返回的资源ARN与API Gateway的实际资源匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:52:19