Nice programing

Elasticsearch의 인증

nicepro 2020. 10. 19. 12:47
반응형

Elasticsearch의 인증


Elasticsearch에서 보안 액세스를 어떻게 정의합니까? elasticsearch-head 플러그인이 있지만 액세스에는 보안이 필요하지 않습니다.


이 답변에 언급 된 플러그인은 더 이상 적극적으로 지원되지 않습니다.


Elasticsearch에는 기본 제공 액세스 제어가 없습니다. 따라서 역방향 프록시를 설정하고 (여기에 nginx를 설정하는 방법에 대한 블로그 게시물 ), https://github.com/Asquera/elasticsearch-http-basic 과 같은 타사 elasticsearch 플러그인 중 하나를 사용하거나 공식 보안 플러그인 Shield .


<shamelessPlug>

미안하지만 HTTP 수준에서 엉성한 정규식으로 쿼리를 캡처하려는 모든 플러그인과 프록시에 대해 심각한 의구심이 있습니다.

쓰기를 수행 할 수있는 가능한 모든 ES 구문을 정규식으로 처리 하시겠습니까? 인덱스로 어떻게 필터링합니까? 인덱스 별칭은 어떻습니까? 다중 인덱스 쿼리?

액세스 제어를 수행하는 유일한 방법은 ElasticSearch가 쿼리를 구문 분석 한 후입니다. 이것이 바로 Shield가하는 일입니다!

나는 정확히 이것을 수행 하는 MIT 라이센스 플러그인 ( readonly-rest-plugin )을 작성했습니다.

다음과 같은 방법으로 요청을 일치시킬 수 있습니다.

  • ✔️ 호스트 이름, IP 및 IP (Netmask 포함)

  • ✔️ 인덱스 (와일드 카드 지원) 및 인덱스 별칭이 확인됩니다.

  • ✔️ HTTP 기본 인증

또한 Kibana 인증에 대한 일등급 지원이 있습니다. :)

</shamelessPlug>


Elasticsearch에는 이제 보안 플러그인 http://www.elasticsearch.org/blog/shield-know-security-coming-soon/ 이 있습니다 .


업데이트 : 이것은 꽤 잘 작동하며 (대부분의 기능에 대해) 무료이며 오픈 소스입니다 : https://github.com/floragunncom/search-guard

참고 : 이 문서에 언급 된 플러그인은 더 이상 유지 관리되지 않습니다.


아마도 이것이 도움이 될 것입니다 : https://github.com/salyh/elasticsearch-security-plugin

이 플러그인은 별도의 모듈로 Elasticsearch에 http / rest 보안 기능을 추가합니다. Netty 대신 임베디드 Tomcat 7이 http / rest 요청을 처리하는 데 사용됩니다.

현재 사용자 기반 인증 및 권한 부여를 위해 Kerberos 및 NTLM은 타사 라이브러리 와플을 통해 지원됩니다 (Windows 서버에서만). UNIX 서버의 경우 Kerberos는 타사 라이브러리 tomcatspnegoad를 통해 지원됩니다 (모든 kerberos 구현에서 작동합니다. 인증을 위해 Active Directory 및 일반 LDAP이 지원됨).

Kerberos / NTLM 없이도이 플러그인을 사용할 수 있지만 호스트 기반 인증 만 사용할 수 있습니다.


Elasticsearch에서 보안을 활성화하는 유일한 방법은 플러그인 X-Pack을 사용하는 것입니다.

https://www.elastic.co/guide/en/x-pack/current/xpack-introduction.html

이것은 다목적 플러그인이며 모니터링을 사용하고 필요에 따라 경고 및 알림을 구성 할 수도 있으므로 보안 목적에 적합합니다.

이미 높은 평가를 받고 있기 때문에 Elasticsearch는 로그인을 위해 계속이 작업을 진행할 것이라고 확신합니다.


Kibana3에서 기본 인증을 사용하려면 다음은 내 솔루션입니다.

https://github.com/fangli/kibana-authentication-proxy

basicAuth ES 백엔드뿐만 아니라 클라이언트 용 GoogleOAuth 및 BasicAuth도 지원합니다. 그것이 당신을 위해 작동한다면 별을 줘, 감사합니다.


Shield를 사용해보십시오 . 인증 및 권한이 있습니다. 지금은 라이센스가 필요합니다. 사람들이 유사한 오픈 소스 플러그인을 만드는 데 오래 걸리지 않을 것입니다.


저는 ElasticSearch의 초보자이지만 X-Pack 플러그인이 여기에 답으로 나타나야한다고 생각합니다 : https://www.elastic.co/guide/en/x-pack/current/index.html

X-Pack이 이제 인증을 포함하여 ElasticSearch (및 훨씬 더) 보안을위한 사실상의 표준이라는 것을 이해합니다.


이 문제에 대한 특정 솔루션과 관련하여 다른 답변에서 언급했듯이 리버스 프록시 접근 방식의 간단한 구현 인 다음을 발견했습니다.

https://gist.github.com/jpluscplusm/9227777

주의 사항으로 Elasticsearch에서 적어도 일부는 nginx를 최적의 솔루션으로 간주하지 않는 것 같지만 인증 요구 사항 (RBAC, 사용자 수, 인덱스 수, 액세스 목록 수정 빈도)의 세부 사항에 따라 달라집니다. ). 일부 사용자 (나 자신 포함)의 경우 첫 번째 예만으로도 충분합니다.

http://www.elasticsearch.org/blog/restricting-users-kibana-filtered-aliases/

요구 사항 세부 사항이 nginx에서 충족되지 않는 경우 다음과 같이 작동 할 수 있습니다. https://github.com/lukas-vlcek/node.es


ElasticSearch는 일종의 데이터베이스 서비스이기 때문에 어쨌든 공개적으로 노출되는 것을 원하지 않을 것입니다.

나는 플러그인을 믿지 않아서 nginx 프록시를 사용했습니다.

이 튜토리얼은 매우 유용합니다.

http://www.minvolai.com/blog/2014/08/Setting-up-a-Secure-Single-Node-Elasticsearch-server-behind-Nginx/Setting-up-a-Secure-Single-Node-Elasticsearch- 서버 비하인드 Nginx /

참고 URL : https://stackoverflow.com/questions/9956062/authentication-in-elasticsearch

반응형