Logstash를 구성할 때, 암호와 같은 민감한 설정을 지정해야 할 수 있습니다. 하지만 이러한 정보를 구성 파일에 텍스트 형식으로 작성하는 것은 보안상 큰 위험을 초래할 수 있습니다. 특히 프로덕션 환경에서 슈퍼유저의 비밀번호나 중요한 1. 인증 정보가 노출되면 시스템에 심각한 위협을 가할 수 있습니다.
Logstash Keystore 를 사용하여 이러한 문제를 해결할 수 있습니다. Logstash Keystore에 값을 추가하면, 이후 Logstash의 conf 파일에서 해당 값을 직접 입력하는 대신, 저장된 키를 참조하여 사용할 수 있습니다.
Logstash keystore에 대한 접근을 보호하려면 LOGSTASH_KEYSTORE_PASS라는 환경 변수에 비밀번호를 저장하십시오. 이 변수를 설정한 후 Logstash 키스토어를 생성하면 키스토어가 비밀번호로 보호됩니다. 이는 환경 변수가 실행 중인 Logstash 인스턴스에서 접근할 수 있어야 한다는 의미입니다. 또한, 키스토어 명령(add, list, remove 등)을 실행해야 하는 모든 사용자에게 이 환경 변수가 올바르게 설정되어 있어야 합니다.
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
bin/logstash-keystore create
RPM 또는 DEB 패키지 설치에서 Logstash를 실행할 때, 환경 변수는 /etc/sysconfig/logstash에서 로드됩니다.
You might need to create /etc/sysconfig/logstash. This file should be owned by root with 600 permissions. The expected format of /etc/sysconfig/logstash is ENVIRONMENT_VARIABLE=VALUE, with one entry per line.
1. Logstash Keystore 암호를 저장할 파일 생성
$ sudo vi /etc/sysconfig/logstash
LOGSTASH_KEYSTORE_PASS= logstash_1234!

2. Logstash Keystore 암호를 저장할 파일 chmod 설정
sudo chmod 755 /etc/sysconfig/logstash

$ sudo -E ./logstash-keystore --path.settings logstash.yml 이 있는 경로 create
keystore 장소
keystore는 Logstash의 path.settings 디렉토리에 위치해야 합니다. 이 디렉토리는 logstash.yml 파일이 포함된 디렉토리와 동일합니다. 키스토어에 대해 작업을 수행할 때는 keystore 명령에 대해 path.settings를 설정하는 것이 권장됩니다.
set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
set -o history
sudo -E /usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create
1. Keystore 생성 (또는 덮어쓰기)
bin/logstash-keystore create
/usr/share/logstash/bin/logstash-keystore --path.settings /etc/logstash create
2. Elasticsearch의 인증 자격 증명과 같은 민감한 값을 저장하려면 add 명령을 사용하십시오.
bin/logstash-keystore add ES_USER ES_PWD
프롬프트가 표시되면 각 키에 대한 값을 입력하십시오.
키 값은 ASCII 문자로 제한됩니다. 여기에는 숫자, 문자 및 몇 가지 특수 기호가 포함됩니다.
keystore에 정의된 키 목록을 표시하려면 :
bin/logstash-keystore list
키를 제거하려면:
bin/logstash-keystore remove ES_USER ES_PWD
keystore 삭제하기
sudo service logstash stop
keystore 파일 삭제하기
sudo rm /etc/logstash/logstash.keystore
sudo systemctl start logstash
https://velog.io/@limsubin/Logstash-keystore%EB%A5%BC-%EC%A0%81%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90
https://stackoverflow.com/questions/67047714/how-can-i-get-logstash-keystore-to-find-its-password
"Logstash를 구성할 때 비밀번호와 같은 민감한 설정이나 구성을 지정해야 할 수 있습니다. 이러한 값을 보호하기 위해 파일 시스템 권한에 의존하는 대신, Logstash 키스토어를 사용하여 설정 값에 사용할 비밀 값을 안전하게 저장할 수 있습니다.
환경 변수
echo $HOME
http 서버 -> https
로그스태시 사용자 만들기
Logstash는 인덱스 템플릿을 관리하고, 인덱스를 생성하며, 생성한 인덱스에 문서를 작성하고 삭제할 수 있어야 합니다.
Logstash의 인증 크리덴셜을 설정하려면:
Kibana의 관리 > 역할 UI 또는 역할 API를 사용하여 logstash_writer 역할을 생성합니다. 클러스터 권한에는 manage_index_templates와 monitor를 추가합니다. 인덱스 권한에는 write, create, create_index를 추가합니다.
인덱스 생애 주기 관리(Index Lifecycle Management)를 사용할 계획이라면 클러스터 권한에 manage_ilm을 추가하고, 인덱스 권한에는 manage와 manage_ilm을 추가합니다.
POST _security/role/logstash_writer
{
"cluster": ["manage_index_templates", "monitor", "manage_ilm"],
"indices": [
{
"names": [ "logstash-*" ],
"privileges": ["write","create","create_index","manage","manage_ilm"]
}
]
}
logstash_internal 사용자 를 생성하고 logstash_writer 역할을 할당합니다. 사용자는 Kibana의 관리 > 사용자 UI 또는 사용자 API를 통해 생성할 수 있습니다.
POST _security/user/logstash_internal
{
"password" : "x-pack-test-password",
"roles" : [ "logstash_writer"],
"full_name" : "Internal Logstash User"
}
생성한 logstash_internal 사용자로 Logstash가 인증되도록 설정합니다. Logstash .conf 파일에서 각 Elasticsearch 플러그인에 대해 자격 증명을 별도로 구성합니다. 예를 들어:
output {
elasticsearch {
...
user => logstash_internal
password => x-pack-test-password
}
}
'제품 > ELK' 카테고리의 다른 글
| ES|QL 쿼리 (0) | 2025.02.09 |
|---|---|
| 로그스태시 - RDBMS 데이터를 Elasticsearch에 넣기 (0) | 2025.01.27 |
| 타임스탬프 (0) | 2024.10.15 |
| 인제스트 파이프라인 (0) | 2024.10.01 |
| [Logstash] 멀티라인 이벤트 처리하기 (0) | 2024.08.12 |