我正在尝试从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"
}
}
}
]
}
答案 0 :(得分:1)
您是否正在签署对ES实例的请求?根据{{3}}
要调用Elasticsearch API,您必须签署自己的请求。