从Lambda函数访问AWS Elasticsearch

时间:2020-04-18 20:04:03

标签: node.js amazon-web-services elasticsearch aws-lambda

我正在尝试从Lambda函数访问我的AWS Elasticsearch。

使用无服务器框架和基于IP的访问策略,我已经能够在本地实现此目标。

对于已部署的lambda函数,我尝试在访问策略中使用Lambda函数角色的ARN和Lambda函数的ARN(在控制台中查看该功能时,位于右上角)。

可悲的是,我仍然遇到以下错误: User: anonymous is not authorized to perform: es:ESHttpPost

这是我的AWS访问策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn-of-lambda-function-role"
      },
      "Action": "es:*",
      "Resource": "my-resource-arn"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "my-resource-arn",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "my-ip"
        }
      }
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

您是否正在签署对ES实例的请求?根据{{​​3}}

要调用Elasticsearch API,您必须签署自己的请求。