亚马逊云上Kibana的细粒度权限

3

背景

连线

我在AWS Elasticsearch服务上有一个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

期望的限制

只有admin组在使用Kibana查看数据时才能访问特定索引模式。受限索引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调用_plugin/kibana/api/saved_objects/?type=index-pattern&per_page=10000403错误,无法查看任何数据。

1个回答

1
我无法使用AWS Elasticsearch解决它。
但是,我能够在EC2上使用Open Distro for Elasticsearch获得所需的结果。还写了一篇有关此事的详细博客文章

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接