[ELK] Elasticsearch 보안기능(TLS통신, RBAC, 계정 기능) 설정하기

[ELK] Elasticsearch 보안기능(TLS통신, RBAC, 계정 기능) 설정하기

참고 자료 : https://www.elastic.co/kr/blog/getting-started-with-elasticsearch-security

  • Elasticsearch 에서 보안 기능을 활성화 하기 위해서는 TLS 인증서 설정이 필요하다.

1. Elasticsearch TLS 설정

  1. elasticsearch-certutil로 인증서 생성

    • RPM으로 elasticsearch를 설치한 기준으로 /usr/share/elasticsearch/bin 디렉토리 내 해당 파일이 있다.

    • ./elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 "" 명령어를 실행하여 TLK 파일 생성

  2. /etc/elasticsearch/elasticsearch.yml 파일에 TLS 관련 설정 추가

    • Elasticsearch Master, Data 노드에 전부 다 동일하게 설정해며 앞서 생성한 elastic-certificates.p12 파일도 모든 노드에 다 설정해야 한다.

    • 설정 정보

    • elasticsearch 기동에 문제가 발생한다면 elastic-certificates.p12 파일 위치 확인이 필요하다.
  3. Elastic Search 재기동 systemctl restart elasticsearch

  4. Elasticsearch 클러스터 비밀번호 생성

    • elasticsearch-setup-passwords는 built in 계정에 대한 패스워드를 설정하는 프로그램이다. 패스워드 변경 전 Cluster 의 상태를 확인하기 때문에 Cluster 내 마스터 노드 설정 확인이 필요하다.

    • ./elasticsearch-setup-passwords auto 로 기본 계정(elastic, kibana 등)에 대한 패스워드를 자동으로 생성한다.

      해당 패스워드는 조회나 kibana 설정에 필요하니 별도로 기록해야한다.

    • elastic 계정에 대한 패스워드 설정 후 Node 상태 확인 결과

       

2. Kibana 계정 설정

  1. /etc/elasticsearch/kibana.yml 파일에 kibana 계정 추가

    앞서 elasticsearch-setup-passwords에서 생성한 kibana 계정의 패스워드를 입력한다.

  2. kibana 재기동 systemctl restart kibana

     

3. Kibana 접속 후 RBAC(Role Based Access Control) 관리

  1. http://KIBANA_HOST:5601 접속 후 elastic 계정으로 접속

    • elastic 계정의 패스워드는 앞서 elasticsearch-setup-passwords에서 생성한 패스워드 입력
  2. 좌측 하단 'Management' 메뉴에서 'Security' -> 'Users', 'Roles' 메뉴 접속

    • 'Roles' 메뉴에서 Elasticsearch 관련 권한(read, monitoring 등)을 생성하고

    • 'Users' 메뉴에서 해당 권한을 포함한 신규 계정을 생성하면 됨

       

4. Metricbeat 설정

  • metricbeat 를 활용하여 elasticsearch에 데이터를 수집하고 있다면 metricbeat 내에 계정 설정도 필요하다.

    • /etc/metricbeat/metricbeat.yml 파일 내 output.elasticsearch에 이전에 생성한 계정 정보 추가

    • protocol 정보에 "http" 를 입력하지 않으면 401 Unauthorized 에러가 발생핸다.

       

다른 카테고리의 글 목록

ELK 카테고리의 포스트를 톺아봅니다