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 프록시를 사용했습니다.
이 튜토리얼은 매우 유용합니다.
참고 URL : https://stackoverflow.com/questions/9956062/authentication-in-elasticsearch
'Nice programing' 카테고리의 다른 글
Travis CI의 기능과 사용시기 이해 (0) | 2020.10.19 |
---|---|
IE와의 javascript document.getElementsByClassName 호환성 (0) | 2020.10.19 |
ES6 게터 / 세터 (화살표 기능 포함) (0) | 2020.10.19 |
Apache Spark 웹 UI에서 "단계 건너 뜀"은 무엇을 의미합니까? (0) | 2020.10.19 |
MultipleActiveResultSets = 참 또는 다중 연결? (0) | 2020.10.19 |