首页 > 解决方案 > AWS Elasticsearch 生成 api-key

问题描述

我使用 AWS CDK 在 AWS 中创建了一个弹性搜索服务。本来想用 IAM 来访问的,但是在 node 里做的方式太可怕了,所以我转而通过 api-key 来 auth。

如果我遵循elasticsearch docs,我会收到以下错误: AuthenticationException(401, '{"Message":"Your request: \'/_security/api_key\' is not allowed."}')

我认为这是由于我的默认用户没有访问_securityAPI 的正确权限,但是我该如何创建所述 api-key?

标签: elasticsearchamazon-iamaws-cdkapi-keyaws-elasticsearch

解决方案


来自评论:

安全 API 是 x-pack 的一部分,AWS Elasticserach 服务尚不支持。如果我们需要在 AWS 中使用它,则可以选择将其用作AWS MarketPlace的 SAAS。但是,还有其他选项可以保护 AWS Elasticsearch:

  • 使用 cognito 来保护弹性,为具有身份池和 iam 角色的用户提供细粒度的控制。这里有一些细节。
  • 基于 IP 的资源策略。只要客户端在网络 AWS/非 AWS 内,带有条件的“*”委托人就会限制在 cidr 范围内。任何人都可以访问,同一 ip cidr 范围内的用户没有细粒度的访问权限。
  • IAM 身份验证:提供细粒度控制,需要通过角色(也可以是单独的 cognito)或用户凭据的 AWS 凭证,以使用 v4 签名对 http 请求进行签名。如果我们手动对http请求进行签名,我们可以使用aws4-sign,我们只需要aws4.sign在nodejs http请求选项之外,传递,service,region和body到method选项。与此处的示例类似,服务为es. 为弹性包装此签名的几个库是aws-es-connectionhttp-aws-es

推荐阅读