2016.01.28
AWS ElasticSearch Service の認証にIAM Roleを使う [Python編]
AWS ElasticSearch Service の認証にIAM Roleを使う [PHP編] の続き、
Python編です。
Python でどうするのか、検索してみたところ、github の elasticsearch-py のライブラリレポジトリにて mathom がAWS の認証機能を追加するパッチつくったよー的な議論があって、最終的にマージされたようです。
なので、普通に elasticsearch-py でちょっと設定すれば使えるようです。
AWS ElasticSearch service · Issue #280 · elastic/elasticsearch-py
elasticsearch-py は、ElasticSearchのOfficial low-level clientとのことです。
今見ると、elasticsearch-py のドキュメントに、こんな感じで使えるよって書いてありました。
Python Elasticsearch Client — Elasticsearch 2.2.0 documentation
from elasticsearch import Elasticsearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
host = 'YOURHOST.us-east-1.es.amazonaws.com'
awsauth = AWS4Auth(YOUR_ACCESS_KEY, YOUR_SECRET_KEY, REGION, 'es')
es = Elasticsearch(
hosts=[{'host': host, 'port': 443}],
http_auth=awsauth,
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)
print(es.info())
変更点も少なくて、ライブラリもそのまま使えていいですね。