AWS Aurora 로그 수집
파서 버전: 6.0
이 문서에서는 AWS Aurora 로그를 Google Security Operations로 수집하는 방법을 설명합니다. AWS Aurora는 고성능, 확장성, 가용성을 제공하는 관리형 관계형 데이터베이스 서비스입니다. 이 통합에서는 분석, 모니터링, 위협 감지를 위해 로그를 Google SecOps로 전달하도록 AWS Aurora를 구성합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- AWS에 대한 액세스 권한
- AWS Aurora 데이터베이스 클러스터 설정 및 실행
Amazon S3 버킷 구성
- 이 사용자 가이드(버킷 만들기)에 따라 Amazon S3 버킷을 만듭니다.
- 나중에 사용할 수 있도록 버킷 이름과 리전을 저장합니다.
- 이 사용자 가이드(IAM 사용자 만들기)에 따라 사용자를 만듭니다.
- 생성된 사용자를 선택합니다.
- 보안용 사용자 인증 정보 탭을 선택합니다.
- 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
- 사용 사례로 서드 파티 서비스를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 설명 태그를 추가합니다.
- 액세스 키 만들기를 클릭합니다.
- CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키와 보안 비밀 액세스 키를 저장합니다.
- 완료를 클릭합니다.
- 권한 탭을 선택합니다.
- I am going to provide a list of glossary for this session. Use these terms as references, but apply your own judgment based on the definitions provided. If a term doesn't fit the context, just ignore the suggestion.Source Term: Permissions PolicyThe definition is: A web platform mechanism that allows website developers to selectively enable, disable, and manage browser features and APIs across documents and iframes.Translation under this definition: 권한 정책
- 권한 추가를 선택합니다.
- 직접 정책 연결을 선택합니다.
- AmazonS3FullAccess 및 CloudWatchLogsFullAccess 정책을 검색하여 선택합니다.
- 다음을 클릭합니다.
- 권한 추가를 클릭합니다.
고급 모니터링 구성
- AWS 관리 콘솔에 로그인합니다.
- 검색창에 RDS를 입력하고 서비스 목록에서 RDS를 선택합니다.
- RDS 대시보드의 탐색창에서 데이터베이스를 선택합니다.
- 모니터링할 Aurora 클러스터를 선택합니다.
- 로그 및 모니터링 섹션에서 수정을 클릭합니다.
- Monitoring 섹션으로 이동하여 Enhanced Monitoring을 사용 설정합니다.
- 모니터링 역할을 CloudWatch Logs 또는 S3에 게시할 수 있는 권한이 있는 적절한 IAM 역할로 설정합니다.
- 변경사항을 저장하고 Aurora 클러스터에 적용합니다.
AWS Aurora 감사 로그를 구성하는 방법
- RDS 대시보드에서 데이터베이스를 선택하고 Aurora 클러스터를 클릭합니다.
- 로그 및 모니터링 섹션에서 수정을 클릭합니다.
- 데이터베이스 옵션 섹션에서 감사 로그 사용 설정이 선택되어 있는지 확인합니다.
- 대상에서 S3를 선택하고 로그가 저장될 S3 버킷을 지정합니다.
- 변경사항 저장을 클릭하여 설정을 적용합니다.
선택사항: CloudWatch를 사용한 AWS Aurora 로그 구성
추가 모니터링 기능을 사용하려면 Aurora 로그를 캡처하도록 CloudWatch Logs를 구성하면 됩니다.
- RDS 대시보드에서 Aurora 클러스터를 선택합니다.
- 로그 및 모니터링 섹션에서 CloudWatch 로그 통합이 사용 설정되어 있는지 확인합니다.
- CloudWatch 로그로 이동하여 Aurora 로그를 저장할 새 로그 그룹을 만듭니다.
- 로그 그룹 화면에서 새 로그 그룹의 이름을 선택합니다.
- 작업 > Amazon S3로 데이터 내보내기를 선택합니다.
Amazon S3로 데이터 내보내기 화면의 데이터 내보내기 정의에서 시작 및 종료를 사용하여 내보낼 데이터의 기간을 설정합니다.
S3 버킷 선택에서 Amazon S3 버킷과 연결된 계정을 선택합니다.
S3 버킷 이름: Amazon S3 버킷을 선택합니다.
S3 버킷 프리픽스: 버킷 정책에 지정한 무작위로 생성된 문자열을 입력합니다.
내보내기를 선택하여 로그 데이터를 Amazon S3로 내보냅니다.
Amazon S3로 내보낸 로그 데이터의 상태를 보려면 작업 > Amazon S3로 내보낸 모든 항목 보기를 선택합니다.
피드 설정
Google SecOps 플랫폼에서 피드를 설정하는 진입점은 두 가지입니다.
- 설정 > 데이터 관리 > 피드 > 새 피드 추가(SIEM 전용 플랫폼의 경우 설정 > 피드 > 새 피드 추가)
- 콘텐츠 허브 > 콘텐츠 팩 > 시작하기
AWS Aurora 피드 설정 방법
- Amazon Cloud Platform 팩을 클릭합니다.
- AWS Aurora 로그 유형을 찾습니다.
다음 필드에 값을 지정합니다.
- 소스 유형: Amazon SQS V2
- 큐 이름: 읽어올 SQS 큐 이름입니다.
- S3 URI: 버킷 URI입니다.
s3://your-log-bucket-name/your-log-bucket-name을 S3 버킷의 실제 이름으로 바꿉니다.
소스 삭제 옵션: 처리 환경설정에 따라 삭제 옵션을 선택합니다.
최대 파일 기간: 최근 며칠 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
SQS Queue Access Key ID: 20자(영문 기준) 영숫자 문자열인 계정 액세스 키입니다.
SQS 큐 보안 비밀 액세스 키: 40자(영문 기준)의 영숫자 문자열인 계정 액세스 키입니다.
고급 옵션
- 피드 이름: 피드를 식별하는 미리 입력된 값입니다.
- 애셋 네임스페이스: 피드와 연결된 네임스페이스입니다.
- 수집 라벨: 이 피드의 모든 이벤트에 적용되는 라벨입니다.
피드 만들기를 클릭합니다.
이 제품군 내에서 다양한 로그 유형에 대해 여러 피드를 구성하는 방법에 대한 자세한 내용은 제품별 피드 구성을 참조하세요.
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 로직 |
|---|---|---|
account |
principal.group.product_object_id |
원시 로그의 account 필드에서 직접 매핑됩니다. |
column1 |
timestamp_epoch |
원시 로그의 column1 필드에서 직접 매핑됩니다. metadata.event_timestamp를 도출하는 데 사용됩니다. |
column10 |
다양한 가격 | 로그 형식에 따라 principal.process.command_line, object 또는 number일 수 있습니다. |
column11 |
ddl, response 또는 command_line2 |
로그 형식에 따라 principal.resource.resource_subtype(ddl), security_result.outcomes.value(응답) 또는 principal.process.command_line(command_line2)의 일부일 수 있습니다. |
column12 |
operation, response 또는 command_line3 |
로그 형식에 따라 sr.summary(작업), security_result.outcomes.value(응답) 또는 principal.process.command_line(command_line3)의 일부일 수 있습니다. |
column13 |
database 또는 response |
로그 형식에 따라 target.resource.name(데이터베이스) 또는 security_result.outcomes.value(응답)일 수 있습니다. |
column14 |
object |
로그 형식에 따라 principal.resource.product_object_id 또는 target_data.resource.name에 직접 매핑됩니다. |
column15 |
command_line |
principal.process.command_line에 직접 매핑됩니다. |
column16 |
response |
security_result.outcomes.value에 직접 매핑됩니다. |
column2 |
timestamp 또는 timestamp_ms |
원시 로그의 column2 필드에서 직접 매핑됩니다. |
column3 |
ip 또는 hostname |
로그 형식에 따라 principal.ip 또는 principal.resource.name일 수 있습니다. |
column4 |
port 또는 userid |
로그 형식에 따라 principal.port 또는 principal.user.userid일 수 있습니다. |
column5 |
userid 또는 ip |
로그 형식에 따라 principal.user.userid 또는 principal.ip일 수 있습니다. |
column6 |
hostname 또는 connection_id |
로그 형식에 따라 principal.resource.name 또는 network.session_id일 수 있습니다. |
column7 |
connection_id 또는 query_id |
로그 형식에 따라 network.session_id 또는 principal.process.pid일 수 있습니다. |
column8 |
operation |
sr.summary 또는 metadata.product_event_type에 직접 매핑됩니다. |
column9 |
query_id 또는 database |
로그 형식에 따라 principal.process.pid 또는 target_data.resource.name일 수 있습니다. |
command_line |
principal.process.command_line |
추출된 command_line 필드에서 직접 매핑됩니다. |
connection_id |
network.session_id |
추출된 connection_id 필드에서 직접 매핑됩니다. |
database |
target.resource.name |
추출된 database 필드에서 직접 매핑됩니다. 파서의 조건부 로직을 통해 operation, command_line, has_principal_user, has_principal_machine과 같은 여러 필드에서 파생됩니다. RESOURCE_DELETION, RESOURCE_CREATION, RESOURCE_READ, RESOURCE_WRITTEN, USER_RESOURCE_ACCESS, USER_UNCATEGORIZED, GENERIC_EVENT일 수 있습니다. 'AWS_AURORA'로 하드코딩됩니다. column8에서 매핑되거나 파서 로직에서 파생됩니다. 'AURORA'로 하드코딩됩니다. 'AMAZON'으로 하드코딩됩니다. |
has_principal_machine |
has_principal_machine |
principal.ip가 있으면 'true'로 설정되고, 그렇지 않으면 'false'로 초기화됩니다. |
has_principal_user |
has_principal_user |
principal.user.userid가 있으면 'true'로 설정되고, 그렇지 않으면 'false'로 초기화됩니다. |
hostname |
principal.resource.name |
추출된 hostname 필드에서 직접 매핑됩니다. |
ip |
principal.ip |
추출된 ip 필드에서 직접 매핑됩니다. |
logevent.id |
security_result.detection_fields.value |
target.logEvents.logEvents 내에 중첩되며 'id' 키로 매핑됩니다. |
logevent.message |
security_result.detection_fields.value |
target.logEvents.logEvents 내에 중첩되며 'message' 키로 매핑됩니다. principal.ip, time_unix, operation, user를 추출하는 데 사용됩니다. |
logevent.timestamp |
security_result.detection_fields.value |
target.logEvents.logEvents 내에 중첩되며 'timestamp' 키로 매핑됩니다. |
object |
target_data.resource.name 또는 principal.resource.product_object_id |
추출된 object 필드에서 직접 매핑됩니다. |
operation |
sr.summary |
추출된 operation 필드에서 직접 매핑됩니다. |
port |
principal.port |
추출된 port 필드에서 직접 매핑됩니다. |
query_id |
principal.process.pid |
추출된 query_id 필드에서 직접 매핑됩니다. |
response |
security_result.outcomes.value |
추출된 response 필드에서 직접 매핑됩니다. |
service |
principal.application |
원시 로그의 service 필드에서 직접 매핑됩니다. |
src_ip |
principal.ip |
중첩된 target.logEvents.logEvents 구조 내의 logevent.message에서 추출됩니다. |
target.logEvents.logGroup |
target.resource.attribute.labels.value |
'logGroup' 키로 매핑됩니다. |
target.logEvents.logStream |
target.resource.attribute.labels.value |
'logStream' 키로 매핑됩니다. |
target.logEvents.messageType |
target.resource.attribute.labels.value |
'messageType' 키로 매핑됩니다. |
target.logEvents.owner |
target.resource.attribute.labels.value |
'owner' 키로 매핑되었습니다. |
timestamp_epoch |
metadata.event_timestamp |
date 필터를 사용하여 metadata.event_timestamp(으)로 변환되었습니다. |
user |
principal.user.userid |
중첩된 target.logEvents.logEvents 구조 내의 logevent.message에서 추출됩니다. |
userid |
principal.user.userid |
추출된 userid 필드에서 직접 매핑됩니다. |
변경 로그
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.