엘라스틱서치 보안설정하기

·2022년 11월 6일
0

삽질

목록 보기
10/11

엘라스틱서치에 데이터를 잔득 넣어놨는데, 데이터가 조회가 안되는 일이 발생했다.

...랜섬웨어 공격당했던데?

누구든 봐도 상관없는 데이터였지만, 랜섬웨어로 데이터가 날라가는건(....) 안된다;

docker-compose.yaml

그래서 보안설정이 디폴트로 들어가있는 v8로 변경했다.

version: '3.3'
  
services:
  data:
    image: elasticsearch:8.4.3
    container_name: elasticsearch
    environment:
      - cluster.name=es-docker-cluster
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
      - bootstrap.memory_lock= true
      - xpack.security.enabled= true
      - xpack.license.self_generated.type=basic
    ports:
      - 9200:9200
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
    networks:
      - elastic

  kibana:
    image: kibana:8.4.3
    environment:
      ELASTICSEARCH_UTL : http://elasticsearch:9200
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
      ELASTICSEARCH_USERNAME: ID
      ELASTICSEARCH_PASSWORD: PASSWORD
    ports:
      - 5601:5601
    networks:
      - elastic

volumes:
  elasticsearch-data:
    driver: local

networks:
  elastic:
    driver: bridge

그러면 아래처럼 로컬에서도 접근이 불가능해진다.

비밀번호 설정하기...

인증서를 만든다거나 다양한 방식이 있었는데, 그냥 난 아이디 비밀번호로 접근하기로 했다(ㅎㅎ..)

  1. 도커 컨테이너로 접근 docker exec -it elasticsearch bash
  2. 비밀번호 자동설정 /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

이렇게 하면 여러가지 정보가 나오는데, 이 중 elastic에 있는 것으로 로그인을 하면 접근이 가능해진다.

그리고 비밀번호를 바꾸거나, 새롭게 적용하려면 아래 명령어를 쓰면 된다.

  • /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
    • 이건 엘라스틱서치 비번 내맘대로 바꾸기
  • /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana -i
    • 이건 키바나 비번 내맘대로 바꾸기

그렇지만 로그인창이 떠있는 것으로 접근을 한다면 DSL Query를 사용할 때, 어떻게 해야할지 찾아봤는데...?

로그인창이 없어도 접근 엄청 잘된다 ! !

근데 템플릿이 잘 안들어간다(...) 보안설정때문에 그런 것 같은데(...)

그래서 그냥 REST API로 꾸겨넣었다

PUT http://localhost:9200/_template/address

근데 이거 레거시라네(허참...) 나중에 고쳐놔야겠다 ㅠㅠ

자주 쓰는 path

http://localhost:9200/_cat/indices?v
http://localhost:9200/_template/address?pretty
http://localhost:9200/address/_count
http://localhost:9200/address/_search?pretty


참고한 문서

Elasticsearch Connectiong
Elasticsearch IP Filter <- 원래 이거로 하려고 했더니, 라이센스 결제를 해야만 쓸 수 있더라(ㅋㅋ)
ELK STACK 보안설정
ELK docker-compose.yaml 설정방법

profile
물류 서비스 Backend Software Developer

0개의 댓글