0 votes
1 view
in AWS by (18.2k points)

I know this issue has been already discussed before, Yet I feel my question is a bit different.

I'm trying to figure out how am I to enable access to the Kibana over the self-managed AWS elastic search which I have in my AWS account.

Could be that what am I about to say here is inaccurate or complete nonsense. I am pretty novice in the whole AWS VPC wise section and to ELK stuck.

Architecture: Here is the "Architecture":

I have a VPC.

Within the VPC I have several subnets.

Each server sends it's data to the elastic search using log stash which runs on the server itself. For simplicity, let's assume I have a single server.

The elastic search https URL which can be found in the Amazon console is resolved to an internal IP within the subnet that I have defined.

Resources:

I have found the following link which suggests using one of two option:

https://aws.amazon.com/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service-domain/

Solutions:

Option 1: resource-based policy

Either to allow resource-based policy for elastic search by introducing condition which specifies a certain IP address.

This was discussed in the following thread but unfortunately did not work for me.

The proper access policy for Amazon Elastic Search Cluster

When I try to implement it in the Amazon console, Amazon notifies me that because I'm using Security group, I should resolve it by using security group.

Security group rules:

I tried to set a rule which allows my personal computer(Router) public IP to access Amazon elastic search ports or even opening all ports to my public IP.

But that didn't work out. I would be happy to get a more detailed explanation to why but I'm guessing that's because the elastic search has only internal IP and not public IP and because it is encapsulated within the VPC I am unable to access it from outside even if I define a rule for a public IP to access it.

Option 2: Using proxy

I decline to use this solution unless I have no other choice.

I'm guessing that if I set another server with public and internal IP within the same subnet and VPC as that of the elastic search, and use it as a proxy, I would then be able to access this server from the outside by defining the same rules to them it's newly created security group. Like the article suggested.

Sources:

I found out of the box solution that someone already made for this issue using a proxy server in the following link:

Using either executable or docker container.

https://github.com/abutaha/aws-es-proxy

Option 3: Other

Can you suggest another solution? Is it possible to use Amazon Load balancer or Amazon API gateway to accomplish this task?

I just need proof of concept, not something which goes into the production environment.

Bottom line:

I need to be able to access Kibana from the browser in order to be able to search elastic search indexes.

1 Answer

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...