【问题标题】:Granular permission in Kibana on AWSKibana on AWS 中的精细权限
【发布时间】:2019-03-28 21:51:01
【问题描述】:

背景

接线

我在 AWS Elasticsearch Service 上有一个 Elasticsearch 集群。它启用了 Kibana 端点。 Cognito 提供基于用户组的 AWS 角色。

Cognito 组和 AWS 角色

AWS Cognito 为组 viewer 设置的 AWS 角色是 arn:aws:iam:123:role/kibana-viewer。

AWS Cognito 为组 admin 设置的 AWS 角色是 arn:aws:iam:123:role/kibana-admin。

所需的限制

在使用 Kibana 查看数据时,只有 admin 组应该有权访问特定的索引模式。有限索引 Elasticsearch 模式是secret-*。

viewer 组应该不能够通过 Kibana 访问 secret-*。

问题

如何仅阻止角色 arn:aws:iam:123:role/kibana-viewer 访问 AWS Elasticsearch 集群中的 secret-* 索引模式?

我尝试过的

第一次尝试

在访问策略中设置如下语句:

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam:123:role/kibana-viewer"
  },
  "Action": "es:*",
  "Resource": "arn:aws:es:my-region:123:domain/my-domain/*"
}

viewer 能够访问索引secret-1。

第二次尝试

将上述Resource设置为arn:aws:es:my-region:123:domain/my-domain/secret-*,viewer无法登录,原因如下:

User: x:x:x::xx:x is not authorized to perform: es:ESHttpGet

第三次尝试

设置两个语句:

{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam:123:role/kibana-viewer"
  },
  "Action": "es:ESHttpGet",
  "Resource": "arn:aws:es:my-region:123:domain/my-domain/secret-*"
},
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam:123:role/kibana-viewer"
  },
  "Action": "es:ESHttpGet",
  "Resource": "arn:aws:es:my-region:123:domain/my-domain/*"
}

viewer 可以登录 Kibana,但由于 API 调用 403 错误 _plugin/kibana/api/saved_objects/?type=index-pattern&per_page=10000 而看不到任何数据。

【问题讨论】:

    标签: amazon-web-services permissions kibana


    【解决方案1】:

    我无法使用 AWS Elasticsearch 解决它。

    但是,我能够在 EC2 上使用 Open Distro for Elasticsearch 获得所需的结果。还写了detailed blog post about it。

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2017-03-04
      • 2011-05-20
      • 2015-03-26
      相关资源
      最近更新 更多