如何防止在Elasticearch中意外写入和删除索引数据?

uemypmqf  于 2022-10-06  发布在  ElasticSearch
关注(0)|答案(2)|浏览(126)

如何防止用户谁有权访问kibana开发工具,作出任何无意中的更改,更新或删除在特定的索引。基本上,我正在寻找的是,特定索引的某种授权,以便只有授权的用户才能被授予读/写访问权限,任何其他用户应该只有R权限。

kdfy810k

kdfy810k1#

您可以在用户角色中定义读、写、删除等权限。权限可以分为集群权限和索引权限,如本页所述:

https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html

索引特权就是您要寻找的。

创建角色(例如,一个用于读写,一个用于只读)后,您只需将特定用户添加到这些角色。然后,ElasticSearch将检查用户尝试执行的每个操作的权限,并在需要时阻止这些操作。这是通过Elasticearch内部使用的HAS_PRIVICES API完成的。

以下是关于如何定义角色的指南:

https://www.elastic.co/guide/en/elasticsearch/reference/current/defining-roles.html

以下是与该主题相关的更多资源:

我希望我能帮到你。

zqdjd7g9

zqdjd7g92#

或者,使用基于IP的访问策略,您可以允许或拒绝操作(ES:ESHttpDelete、ES:ESHttpGet、ES:ESHttpHead、ES:ESHttpPost、ES:ESHttpPut、ES:ESHttpPatch)。尤其是如果您不想永久启用使用角色的微调访问策略,无论出于什么原因。尽管我确实喜欢它的微调功能来限制对字段的访问。

基于IP的访问策略示例,由ES Identity and Access Management更改

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "es:ESHttpDelete"
      ],
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "192.0.2.0/24"
          ]
        }
      },
      "Resource": "arn:aws:es:us-west-1:987654321098:domain/test-domain/*"
    }
  ]
}

相关问题