Amazon web services 确保AWS Elasticsearch最佳实践
我目前正在从事一个网络项目。我们正在尝试使用弹性搜索。我们所有的网络项目和其他工具目前托管在亚马逊。 我们只是为弹性搜索、日志存储和kibana创建了一个EC2实例。之后,我们配置了弹性搜索。我们正在成功地使用弹性搜索。 但是,使用弹性搜索和我们的Web API进行通信的方式存在问题。 我们的服务器可以自动扩展,因此我们对IP安全性配置了如下弹性搜索 因此,我们目前正在窒息,因为自动缩放。IPs不断变化。我们如何配置弹性搜索以从Web API服务器使用?针对这种情况的最佳做法是什么Amazon web services 确保AWS Elasticsearch最佳实践,amazon-web-services,elasticsearch,amazon-ec2,kibana,autoscaling,Amazon Web Services,elasticsearch,Amazon Ec2,Kibana,Autoscaling,我目前正在从事一个网络项目。我们正在尝试使用弹性搜索。我们所有的网络项目和其他工具目前托管在亚马逊。 我们只是为弹性搜索、日志存储和kibana创建了一个EC2实例。之后,我们配置了弹性搜索。我们正在成功地使用弹性搜索。 但是,使用弹性搜索和我们的Web API进行通信的方式存在问题。 我们的服务器可以自动扩展,因此我们对IP安全性配置了如下弹性搜索 因此,我们目前正在窒息,因为自动缩放。IPs不断变化。我们如何配置弹性搜索以从Web API服务器使用?针对这种情况的最佳做法是什么 { "V
{
"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",
...
]
}
}
}
]
}
您最好创建一个iam角色,然后在启动配置中将该角色设置为“iam角色” 然后使用允许AWS角色和某些特定IP访问您的elasticsearch域的策略
{
"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"
}
}
}
]
}
您最好创建一个iam角色,然后在启动配置中将该角色设置为“iam角色” 然后使用允许AWS角色和某些特定IP访问您的elasticsearch域的策略
{
"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"
}
}
}
]
}
您可以使用签名请求进行身份验证。向一组用户授予权限并使用为其生成的密钥。我可以在没有任何身份验证的情况下使用吗?我只想从我们的AWS环境中使用。是的。使用可以使用签名请求进行身份验证。向一组用户授予权限并使用为其生成的密钥。我可以在没有任何身份验证的情况下使用吗?我只想从我们的AWS环境中使用。是的。我应该为角色选择什么类型?当我打开IAM控制台时,有许多服务角色类型和权限。您是否有相关文档等?@orhun.begendi我通常会为运行的每个服务创建一个新角色。然后将该新角色分配给使用它的服务。我无法这样做。我想使用弹性搜索作为日志数据库。我使用的是serilog框架,但当我使用基于角色的访问策略时,我无法将日志写入弹性搜索服务。我应该为角色选择什么类型?当我打开IAM控制台时,有许多服务角色类型和权限。您是否有相关文档等?@orhun.begendi我通常会为运行的每个服务创建一个新角色。然后将该新角色分配给使用它的服务。我无法这样做。我想使用弹性搜索作为日志数据库。我使用的是serilog框架,但当我使用基于角色的访问策略时,我无法将日志写入弹性搜索服务。