【问题标题】:AWS Elasticesearch from ios application来自 ios 应用程序的 AWS Elasticsearch
【发布时间】:2018-02-06 07:30:22
【问题描述】:

我正在使用 AWS ES 在我的 iOS 应用程序上进行搜索。到目前为止,我使用 Rest API 为应用程序提供搜索查询。该应用程序调用 Rest API 并且我的 python 服务器搜索以服务请求。我想去掉这个Rest API server,想直接实现iOS和AWS ES的交互。 AWS iOS SDK 不为 ES 提供服务。我该怎么办?

我已经查看了这些资源,但没有得到多少明确,

Elasticsearch access policy - allow read from clients and read/write from Node.js server

How to secure access to AWS Elasticsearch from a mobile application

任何帮助将不胜感激。

【问题讨论】:

    标签: ios rest amazon-web-services


    【解决方案1】:

    您可以利用 AWS Cognito、用户池和联合访问为您的一组用户提供对 AWS 资源的精细访问。

    通过此链接了解更多信息:Secure API Access with Amazon Cognito Federated Identities, Amazon Cognito User Pools, and Amazon API Gateway

    我不建议这样做,尤其是弹性搜索因为如果任何临时凭证(STS 令牌)存储在不安全的地方(不是钥匙串),用户将能够在您的弹性搜索集群上删除或创建索引,因为 AWS 不提供对弹性搜索本身公开的 API 的细粒度控制。

    要解决此问题,您可以使用 API Gateway 作为代理,仅访问您希望允许客户端能够搜索的索引的搜索端点。您确实不需要需要 Lambda 函数或中间的任何 EC2 实例来实现这一点。

    【讨论】:

    • 推荐的方式应该是什么?我应该继续目前的结构吗?什么是您这边的理想解决方案来达到这里的目的? @yeshodhan
    • 更新了答案。
    • +1 用于 API 网关解决方案。为自己创建一个自定义 SDK,在保护您的 ES 实例免受恶意活动的同时,为您提供所需的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多