ios - 来自 ios 应用程序的 AWS Elasticsearch

标签 ios rest amazon-web-services

我正在使用 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

如有任何帮助,我们将不胜感激。

最佳答案

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

阅读此链接的更多信息:Secure API Access with Amazon Cognito Federated Identities, Amazon Cognito User Pools, and Amazon API Gateway

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

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

关于ios - 来自 ios 应用程序的 AWS Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48637664/

相关文章:

node.js - 存储和使用 JWT 和 key

amazon-web-services - 从实例内查询 EC2 标签

ios - 删除 NSManagedObjectContext

ios - 找不到库 -lAdIdAccess ios

ios - 如何使用 UNNotificationPresentationOptions

rest - 所有构建类型的最后 10 天的 TEAMCITY REST API 列表

java - 配置 Jersey 1.x 项目以生成 swagger 文档

amazon-web-services - 安全组 sg-0da667222da8a6eb2 似乎不属于与输入子网相同的 VPC

python - SparkContext 错误 - 找不到文件/tmp/spark-events 不存在

ios - 不同设备屏幕尺寸