elasticsearch,amazon-ec2,kibana,autoscaling,Amazon Web Services,elasticsearch,Amazon Ec2,Kibana,Autoscaling" /> elasticsearch,amazon-ec2,kibana,autoscaling,Amazon Web Services,elasticsearch,Amazon Ec2,Kibana,Autoscaling" />

Amazon web services 确保AWS Elasticsearch最佳实践

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

我目前正在从事一个网络项目。我们正在尝试使用弹性搜索。我们所有的网络项目和其他工具目前托管在亚马逊。 我们只是为弹性搜索、日志存储和kibana创建了一个EC2实例。之后,我们配置了弹性搜索。我们正在成功地使用弹性搜索。 但是,使用弹性搜索和我们的Web API进行通信的方式存在问题。 我们的服务器可以自动扩展,因此我们对IP安全性配置了如下弹性搜索

因此,我们目前正在窒息,因为自动缩放。IPs不断变化。我们如何配置弹性搜索以从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",
            ...
          ]
        }
      }
    }
  ]
}

您最好创建一个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框架,但当我使用基于角色的访问策略时,我无法将日志写入弹性搜索服务。