Only anonymous user can read elasticsearch data by x-pack


Categories: Config
Tags: #Elasticsearch

x-pack으로 임의의 유저만 elasticsearch 데이터 read가 가능하고, 인증 받은 관리자만 데이터 수정 가능하게 만들기

Setup Elasticsearch 글을 따라 설치한 Elasticsearch는 인증 받지 못한 사용자가 REST API 를 통해 데이터 조작이 가능함. 그래서, 인증하지 않은 임의의 유저(Anonymous)는 read만 가능하고, 인증을 통하여서만 데이터 조작이 가능하도록 함.

x-pack 설치

$ sudo bin/elasticsearch-plugin install x-pack --batch

Anonymous user 접근 권한 설정

/etc/elasticsearch//usr/share/elasticsearch/config/에 있는 elasticsearch.yml 내 아래와 같은 정보를 추가

# create an anoynomous user to allow interaction without auth
xpack.security.authc:
  # 임의의 유저(유저 이름 anonymous)에 viewer라는 role을 줌.
  anonymous:
    username: anonymous
    roles: viewer
  # Disable default user 'elastic'
  accept_default_password: false

viewer에 대한 role은 /etc/elasticsearch/x-pack//usr/share/elasticsearch/config/x-pack/에 있는 roles.yml에서 read만 가능하게 아래와 같이 설정

viewer:
  run_as: [ 'anonymous' ] # 적용될 유저 이름
  cluster: [ "monitor" ] # 적용될 cluster들
  indices:
    - names: [ '*' ] # 허용 index를 패턴을 포함하여 정의 한다.
      privileges: [ 'read' ] # 권한은 read만 부여한다.
      query: '{"match_all": {}}' # 권한으로 열어줄 문서 목록을 쿼리로 정의한다.

관리자 계정 만들기

$ sudo bin/x-pack/users useradd {user id} -p {password} -r superuser

참고 자료

Comments