簡體   English   中英

如何對Elasticsearch進行多用戶認證

[英]How to authenticate Elasticsearch with multiple users

我們正在嘗試在 AWS 獨立租戶(客戶)之上創建管理 Elastic,並將每個租戶分配給不同的索引。

每個客戶都會有他們的用戶名/密碼或類似的令牌等。

我們在 AWS 上設置托管 ES 並與原生 Elastic sdk HighRestClient 集成

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>7.10</version>
</dependency>

一切正常,我們從 Java 代碼執行的所有操作,如創建索引/管理/搜索等。

這段代碼模擬了此處描述的基本身份驗證https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/_basic_authentication.html

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
        new UsernamePasswordCredentials(settings.getEsUserName(), settings.getEsUserPass()));
restClientBuilder.setHttpClientConfigCallback(builder -> builder.setDefaultCredentialsProvider(credentialsProvider));

現在我們為每個客戶創建不同的索引,這沒問題,但問題是現在我們所有的客戶都將擁有相同的用戶名/密碼。

是否有可能以某種方式對多個用戶執行此操作,有多個用戶名/密碼?

因此,每個用戶只能與通過密碼驗證的索引進行交互。

我看到了這個案例 - https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html#fgac-walkthrough-basic

據我了解,他們正在談論 Kibana 用戶的多租戶。

我是否遺漏了什么,是否有可能以不同的方式實現我們的目標?

您在這里混淆了兩個概念。 您可以參考以下概念並確定最適合您的用例。

細粒度的訪問控制為您提供內部數據庫身份驗證機制,您可以通過該機制創建多個用戶(擁有自己的用戶名/密碼)並將角色/操作組附加到這些用戶 - 因此每個用戶都可以擁有不同的權限。 此后,可以為每個客戶提供不同的用戶名/密碼。

租戶是 Kibana 系統中存在的一個概念(啟用了上述安全性),其中租戶可用於存儲與 Kibana 相關的對象,例如儀表板和可視化。 有兩個默認租戶 - 所有用戶共享的global租戶和每個客戶獨有的private租戶。 您可以創建自己的自定義租戶,並將其配置為由一組用戶訪問,以便這些用戶可以共享 kibana 相關對象。

更多關於租戶的信息: https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/multi-tenancy/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM