假设弹性搜索在AWS上的角色

时间:2017-05-12 16:01:44

标签: amazon-web-services elasticsearch kibana

我有一些lambda函数从AWS向我的Elastic搜索集群发送日志,它运行良好。 Lambda函数具有以下作用:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "es:ESHttpPost",
      "Resource": "arn:aws:es:*:<ACCOUNT_ID>:*"
    }
  ]
}

但是现在我想在ec2实例上设置我自己的弹性搜索,所以我可以和Kibana一起安装X-Pack。

如何让我的lambda函数将日志发布到我的自定义弹性搜索?

提前多多感谢

1 个答案:

答案 0 :(得分:3)

由于您将在ec2计算机上运行自己的elasticsearch实例,并且希望从lambda启用访问,因此您不需要任何IAM访问策略。

如果您的lambda函数在默认配置(无VPC)下运行,则它可以访问Internet。因此,它必须访问的任何URL都必须是公共的。您必须将公共IP分配给您的EC2实例,并公开端口9200或通过您的安全组中的任何一个。

我不推荐这种方法,因为它将你的弹性搜索公开给全世界。

您需要从VPC运行lambda函数,并启用对lambda将运行的子网的CIDR范围的elasticsearch集群的访问。

要使Kibana工作,您需要在安全组中添加另一条规则,以便从例如选择的IP地址访问端口9200。你的工作场所。