我有一些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函数将日志发布到我的自定义弹性搜索?
提前多多感谢
答案 0 :(得分:3)
由于您将在ec2计算机上运行自己的elasticsearch实例,并且希望从lambda启用访问,因此您不需要任何IAM访问策略。
如果您的lambda函数在默认配置(无VPC)下运行,则它可以访问Internet。因此,它必须访问的任何URL都必须是公共的。您必须将公共IP分配给您的EC2实例,并公开端口9200或通过您的安全组中的任何一个。
我不推荐这种方法,因为它将你的弹性搜索公开给全世界。
您需要从VPC运行lambda函数,并启用对lambda将运行的子网的CIDR范围的elasticsearch集群的访问。
要使Kibana工作,您需要在安全组中添加另一条规则,以便从例如选择的IP地址访问端口9200。你的工作场所。