【发布时间】:2016-10-08 01:13:37
【问题描述】:
我正在尝试使用 Elasticsearch 为连接到 Alexa Skills Kit 的 Lambda 函数存储数据。 Lambda 在没有 Elasticsearch 的情况下也能正常工作,但 ES 提供了急需的模糊匹配。
我能够从 Lambda 访问它的唯一方法是启用 Elasticsearch 全局访问,但这是一个非常糟糕的主意。我还能够通过开放访问策略或 IP 地址策略从我的计算机进行访问。有没有办法通过 Lambda 进行只读访问并通过 IP 进行读写?
在 IAM 上,我授予了我的 Lambda 角色 AmazonESReadOnlyAccess。在 ES 方面我尝试了这个,但它只适用于 IP 地址:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::NUMBER:root",
"arn:aws:iam::NUMBER:role/lambda_basic_execution"
]
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:NUMBER:domain/NAME/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:us-east-1:NUMBER:domain/NAME/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "MY IP"
}
}
}
]
}
这个forum post 提出了同样的问题,但没有得到回答。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-elasticsearch