2016.01.28
AWS ElasticSearch Service の認証にIAM Roleを使う [aws-auth-proxy編]
下記の記事の続編です。
- AWS ElasticSearch Service の認証にIAM Roleを使う [PHP編]
- AWS ElasticSearch Service の認証にIAM Roleを使う [Python編]
PHP編とPython編を書いたのですが、いろんな言語で開発していると、言語毎に流儀が違って、つらいです。
なので、AWS の認証情報を付与してくれるだけの簡単なProxyないかと思って調べたらありました。
coreos/aws-auth-proxy: HTTP proxy that signs requests for upstream AWS endpoints
こんな感じで、ローカルホストでProxyを立てておくと、localhost:9200 にアクセスするだけで、AWSのElasticSearchに接続できます。
# aws elasticsearch example
./aws-auth-proxy \
-access-key=xxx \
-secret-key=xxxx \
-service-name=es \
-region-name=<your-aws-region> \
-upstream-host=<your-aws-elastic-search-endpoint> \
-upstream-scheme=https \
-listen-address=":9200"
Kibanaとかを使おうと思うと、どうしてもIPアドレスを開けないといけないと思うのですが、aws-auth-proxyを使えば、IP開けなくても大丈夫です。
まだ2週間くらい前にできたレポジトリのようですが、coreos が開発してるってのがなんとなく安心なのと、go なので 1バイナリを配布すれば使えるので、便利そうです。
似たようなものに、Nginxモジュールの AWS 認証 プロキシもありました。
anomalizer/ngx_aws_auth – C
S3のProxyとして使う例しか書いてなかったので、ElasticSearchでも使えるかは分かりません。