亚马逊AWS官方博客

Tag: 张贝贝

在 AWS 中国区对 Amazon Elasticsearch Kibana 进行身份认证的解决方案

Kibana 是一种流行的开源可视化工具,专为与 Elasticsearch 结合使用而设计。Amazon ES 为每个 Amazon ES 域默认安装 Kibana。目前ES内置的Kibana不支持IAM,对于Kibana的访问控制主要有两个方面:在VPC内访问可以通过安全组进行控制,在VPC外访问可以通过结合Amazon Cognito的UserPool和IdentityPool来进行身份验证或者使用基于IP的策略。
由于中国区目前还不支持Cognito UserPool,因此需要在VPC外进行公开访问只能通过基于IP的策略来进行控制。但无论在大型企业还是在小型创业公司,把每一个需要访问ES Kibana的员工的客户端IP加入ES 策略中都是很不合理的。因此我们可以用一个Nginx服务器作为中间代理,将这台Nginx的IP加入Kibana的访问策略中,客户端通过Nginx的反向代理来访问Kibana,而关于身份验证的部分在Nginx上实现。

认证授权专题(五) : API Gateway + Custom Authorizer 精细化权限控制

大多数移动应用或者 Web 应用都有自己的用户身份认证体系。用户的身份信息存储在应用的自有数据库中, API Gateway定义的不同的资源操作,需要根据应用的用户身份判断是否允许该用户访问这些不同的操作. 例如,一个 bookstore app, 资源URI有/books, /books/{usesrid}, 具体的操作有/books/get, books/{userid}/get, books/{userid}/post等等。 在这个应用中,如果用户的身份为admin,则该用户可以执行所有操作。对于身份为user的用户,则只能访问 /books/{userid}下的所有操作。对于这样的基于用户身份进行API级别的权限控制需求,需要通过自定义授权函数,通过应用的身份认证系统获取用户身份,基于用户身份以及当前执行的操作相结合,在自定义授权函数中判断用户是否有权限执行操作,并构建相应的权限策略返回给 API Gateway。