首页 > 解决方案 > 如何授予对 IAM 角色/用户的访问权限以在 AWS Elasticsearch 中创建角色?

问题描述

AWS Elasticsearch 细粒度访问控制使用 Open Distro Elasticsearch 安全性。使用此功能授权可以在 Elasticsearch 内部处理。https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/users-roles/#create-roles

AWS 文档建议使用 Open Distro Elasticsearch 文档,以使用安全性 Rest API,例如创建角色或读取角色。

您可以使用 Kibana 或 REST API 中的 _opendistro/_security 操作为细粒度访问控制创建新角色。有关更多信息,请参阅 Open Distro for Elasticsearch 文档。 https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html

Elasticsearch 中有一些角色,我们可以使用这些角色来控制 IAM 用户/角色的授权权限。这是通过将 IAM 用户添加到用户列表或将 IAM 角色添加到后端角色来使用角色映射来完成的。

我将我的 IAM 角色添加到 Elasticsearch 后端角色中,并且能够在以下 API 中执行,

PUT /my_index
PUT /_template/template_for_my_index

但是当我在 API 下执行时,我得到了以下响应。

PATCH /_opendistro/_security/api/rolesmapping/my_role_inside_elasticsearch
{'statusCode': 200, 'headers': {'Access-Control-Allow-Origin': '*'}, 'isBase64Encoded': False, 'body': '{"status":"FORBIDDEN","message":"No permission to access REST API: User arn:aws:iam::123456789:role/myIamRole with Open Distro Security Roles [all_access] does not have any role privileged for admin access. No ssl info found in request."}'}

我尝试将 IAM 角色添加到 Elasticsearch all_access 以及我自己的具有 * 权限(所有权限)的 Elasticsearch 角色中。

如何授予对 IAM 角色/用户的访问权限以在 AWS Elasticsearch 中创建角色?

注意:IAM 角色和 Elasticsearch 角色是不同的。

标签: amazon-web-servicessecurityelasticsearchrestelasticsearch-opendistro

解决方案


要向 IAM 用户/角色授予访问 opendsitro api 的权限,您必须授予 IAM 实体类似于主用户的权限。您有两种选择:

  1. 通过 aws opensearch cli/console 将该 IAM 实体设置为新的主用户。
  2. 将 IAM 用户/角色映射到all_accesssecurity_manager因此将其添加为其他主用户。

注意:对于 IAM 用户,arn 需要在 下添加users,而对于 IAM 角色,arn 需要backend_roles在角色映射部分下添加。

更多详细信息:https ://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-more-masters

您能否澄清您是否能够成功地将 IAM 用户/角色映射到all_access?你的问题并不清楚。


推荐阅读