我目前正在开展一个网络项目。我们正在尝试使用弹性搜索。我们目前在亚马逊上托管的所有网络项目和其他工具。 我们只为Elastic搜索,Log Stash和kibana创建一个EC2实例。之后,我们配置了弹性搜索。我们成功地将弹性搜索用于我们的目的。 但是与弹性搜索和我们的Web API进行通信存在问题。 我们的服务器自动缩放,因此我们配置了弹性搜索IP安全性,如下所示。
因此,我们目前因为自动缩放而窒息。 IP不时变化。我们如何配置Elastic Search以便从我们的Web API服务器中使用?这种情况的最佳做法是什么?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:eu-west:1111111111:domain/xx-log/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"1.1.1.1",
"1.1.1.2",
"1.1.1.3",
...
]
}
}
}
]
}
答案 0 :(得分:0)
最好的办法是创建一个iam角色,然后在启动配置中将该角色设置为" IAM角色"。 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
然后使用允许AWS角色和某些特定IP访问弹性搜索域的策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNTNUMBER:role/ROLENAME"
},
"Action": [
"es:ESHttpGet",
"es:ESHttpHead",
"es:ESHttpPost",
"es:ESHttpPut"
],
"Resource": "arn:aws:es:ca-central-1:ACCOUNTNUMBER:domain/ELASTICSEARCHDOMAINNAME/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"es:ESHttpGet",
"es:ESHttpHead",
"es:ESHttpPost",
"es:ESHttpPut"
],
"Resource": "arn:aws:es:ca-central-1:ACCOUNTNUMBER:domain/ELASTICSEARCHDOMAINNAME/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "IPADDRESSHERE"
}
}
}
]
}