클라우드 환경 로그 MinIO 객체 저장소 기록 및 비정상 행위 모니터링
MinIO를 클라우드 환경에서 로그 기록 및 참조 활용을 위해 구성하고, 인증 및 접근 액세스 로그를 기록하고 수집하여 비정상 행위를 모니터링하는 방법입니다.
1. MinIO 구성
MinIO는 객체 저장소로서 간편하게 설치 및 운영이 가능합니다. MinIO를 설치하는 방법은 여러 가지가 있지만, 여기서는 Docker를 이용한 설치 방법을 설명합니다.
docker run -p 9000:9000 --name minio \
-e "MINIO_ROOT_USER=youraccesskey" \
-e "MINIO_ROOT_PASSWORD=yoursecretkey" \
-v /mnt/data:/data \
-v /mnt/config:/root/.minio \
quay.io/minio/minio server /data
2. 인증 및 접근 제어 설정
MinIO는 기본적으로 IAM 정책을 통해 접근 제어를 설정할 수 있습니다.
사용자 생성
mc admin user add myminio myuser mypassword
정책 생성
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
정책 적용
mc admin policy add myminio readwrite /path/to/policy.json
mc admin user policy set myminio readwrite user=myuser
3. 접근 로그 설정
MinIO는 서버 접근 로그를 파일로 기록하거나 중앙 로그 서버로 전송할 수 있습니다.
파일로 접근 로그 기록
MinIO의 구성 파일(config.json
)에서 logger
섹션을 수정하여 로그 파일을 설정할 수 있습니다.
{
"logger": {
"console": {
"enabled": true
},
"file": {
"enabled": true,
"filename": "/path/to/logs/minio.log"
}
}
}
중앙 로그 서버로 전송 (예: Fluentd)
Fluentd와 같은 중앙 로그 수집기를 이용하여 MinIO 로그를 수집할 수 있습니다. Fluentd 설정 예시는 다음과 같습니다.
<source>
@type tail
path /path/to/logs/minio.log
pos_file /var/log/td-agent/minio.log.pos
tag minio.access
format json
</source>
<match minio.access>
@type forward
<server>
name your-log-server
host your-log-server-host
port 24224
</server>
</match>
4. 비정상 행위 모니터링
수집된 로그를 분석하여 비정상 행위를 모니터링하는 방법은 Wazuh를 이용하여 MinIO 접근 로그를 분석하고 비정상 행위를 탐지할 수 있습니다. Wazuh의 구성 파일(ossec.conf
)에 MinIO 로그를 추가합니다.
<localfile>
<log_format>json</log_format>
<location>/path/to/logs/minio.log</location>
</localfile>
Wazuh 규칙을 통해 비정상 행위를 탐지하도록 설정합니다.
<group name="minio_access">
<rule id="100001" level="5">
<decoded_as>json</decoded_as>
<field name="action">"Deny"</field>
<description>MinIO Access Denied</description>
</rule>
</group>
5. 결과 시각화 및 알림
TheHive를 이용하여 비정상 행위 탐지 결과를 시각화하고 알림을 설정할 수 있습니다. Wazuh와 TheHive를 연동하여 탐지된 이벤트를 TheHive로 전송하고, TheHive에서 분석 및 대응합니다.
# TheHive 설정 파일에 Wazuh 연동 설정 추가
{
"name": "Wazuh",
"description": "Wazuh Alert",
"enabled": true,
"interval": 60,
"index": "wazuh-alerts-*",
"query": {
"bool": {
"must": [
{ "match": { "agent.name": "minio-server" } },
{ "range": { "@timestamp": { "gte": "now-1d/d", "lt": "now/d" } } }
]
}
}
}
이와 같은 설정을 통해 MinIO의 접근 로그를 효과적으로 수집하고 비정상 행위를 모니터링할 수 있습니다. 더 궁금한 사항이나 추가적인 설정이 필요하다면 알려주세요.