amazon-web-services - 如何授予对 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 角色是不同的。
解决方案
要向 IAM 用户/角色授予访问 opendsitro api 的权限,您必须授予 IAM 实体类似于主用户的权限。您有两种选择:
- 通过 aws opensearch cli/console 将该 IAM 实体设置为新的主用户。
- 将 IAM 用户/角色映射到
all_access
并security_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
?你的问题并不清楚。
推荐阅读
- c - 解释 mutrace 输出
- scala - 关于Scala协方差的一些问题
- java - 提供在使用 mongoDB 时在 $project 中指定字段顺序的方法
- cypress - 在 cypress.io 的同一测试中访问两个不同的超级域
- windows - 在现有文件之上创建新文件
- c++ - 更改 std::set 以按 T 类型查找项目
- python - 使用级别值过滤熊猫 df
- c++ - 使用 C++ 将完整的以太网数据包发送到特定 ip
- javascript - 如何在固定导航栏下方制作可滚动的div
- c++ - 在 Windows 上将 filesystem::path 转换为 char*