首页 > 解决方案 > 在 AWS 上访问 ElasticSearch API

问题描述

AWS 建议使用其 SDK(例如boto3)或命令行工具来配置 ElasticSearch 集群。

但是,某些 ElasticSearch API 端点未在 AWS API 中公开(例如_cat/shards)。甚至一些 AWS 支持文档(例如关于集群重新平衡的文档)似乎直接向集群 API 发出请求。

问题是:此类请求需要使用 AWS4Auth 进行身份验证(在我的设置中,只有某些 IAM 角色有权写入 ElasticSearch)——甚至 AWS 也建议不要手动创建签名的 HTTP 请求,因为这太痛苦了。

我的问题是:我是否需要针对我的 ES 集群手动创建签名的 HTTP 请求才能对其进行管理,还是有一种我错过的更简单的方法?

标签: amazon-web-serviceselasticsearch

解决方案


我最终在AWS ElasticSearch的请求签名中找到了这个 AWS 文档。它清楚地表明,预期的方法是使用脚本,使用语言选择的 HTTP 客户端。

正如 Marcin 在他的回答中提到的那样,aws-requests-auth是在 Python 中简化这一点的一种选择


推荐阅读