AWS ElasticSearch/Kibana Proxy to access your AWS ES cluster.
This is the solution for accessing your cluster if you have configured access policies for your ES domain
Install the eb
Elastic Beanstalk CLI. Set your AWS auth credentials for the CLI (read their documentation).
Edit .elasticbeanstalk
to match your EB environment. Usually this means changing the branch-default.deployment.environment
value to match the EB app name.
Then run:
make deploy
Install the npm module
npm install -g aws-es-kibana
Set AWS credentials
export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXX
Run the proxy (do not include the http
or https
from your cluster-endpoint
or the proxy won't function)
aws-es-kibana <cluster-endpoint>
Where cluster-endpoint can be either a URL (i.e. https://search-xxxxx.us-west-2.es.amazonaws.com) or a hostname (i.e. search-xxxxx.us-west-2.es.amazonaws.com). Alternatively, you can set the AWS_PROFILE environment variable
AWS_PROFILE=myprofile aws-es-kibana <cluster-endpoint>
Example with hostname as cluster-endpoint:
If you are familiar with Docker, you can run aws-es-kibana
within a Docker container
You can pull the official container for use
docker pull santthosh/aws-es-kibana:latest
(or) Build the image
docker build -t aws-es-kibana .
Run the container (do not forget to pass the required environment variables)
docker run -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -p 127.0.0.1:9200:9200 aws-es-kibana -b 0.0.0.0 <cluster-endpoint>
Adopted from this gist. Thanks @nakedible-p