AWS Aurora 로그 수집

다음에서 지원:

이 문서에서는 AWS Aurora 로그를 Google Security Operations로 수집하는 방법을 설명합니다. AWS Aurora는 고성능, 확장성, 가용성을 제공하는 관리형 관계형 데이터베이스 서비스입니다. 이 통합에서는 분석, 모니터링, 위협 감지를 위해 로그를 Google SecOps로 전달하도록 AWS Aurora를 구성합니다.

시작하기 전에

  • Google SecOps 인스턴스가 있는지 확인합니다.
  • AWS에 대한 권한이 있는지 확인합니다.
  • AWS Aurora 데이터베이스 클러스터가 설정되고 실행 중인지 확인합니다.

Amazon S3 버킷 구성

  1. 버킷 만들기 사용자 가이드에 따라 Amazon S3 버킷을 만듭니다.
  2. 나중에 사용할 수 있도록 버킷 이름리전을 저장합니다.
  3. IAM 사용자 만들기 사용자 가이드에 따라 사용자를 만듭니다.
  4. 만든 사용자를 선택합니다.
  5. 보안 사용자 인증 정보 탭을 선택합니다.
  6. 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
  7. 사용 사례서드 파티 서비스를 선택합니다.
  8. 다음을 클릭합니다.
  9. 선택사항: 설명 태그를 추가합니다.
  10. 액세스 키 만들기를 클릭합니다.
  11. CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키비밀 액세스 키를 저장합니다.
  12. 완료를 클릭합니다.
  13. 권한 탭을 선택합니다.
  14. 권한 정책 섹션에서 권한 추가를 클릭합니다.
  15. 권한 추가를 선택합니다.
  16. Attach policies directly(정책 직접 연결)를 선택합니다.
  17. AmazonS3FullAccessCloudWatchLogsFullAccess 정책을 검색하여 선택합니다.
  18. 다음을 클릭합니다.
  19. 권한 추가를 클릭합니다.

향상된 모니터링 구성

  1. AWS 관리 콘솔에 로그인합니다.
  2. 검색창에 RDS를 입력하고 서비스 목록에서 RDS를 선택합니다.
  3. RDS 대시보드의 탐색창에서 데이터베이스를 선택합니다.
  4. 모니터링할 Aurora 클러스터를 선택합니다.
  5. 로그 및 모니터링 섹션에서 수정을 클릭합니다.
  6. Monitoring 섹션으로 이동하여 Enhanced Monitoring을 사용 설정합니다.
  7. 모니터링 역할CloudWatch Logs 또는 S3에 게시할 권한이 있는 적절한 IAM 역할로 설정합니다.
  8. 변경사항을 저장하고 Aurora 클러스터에 적용합니다.

AWS Aurora 감사 로그 구성

  1. RDS 대시보드에서 데이터베이스를 선택하고 Aurora 클러스터를 클릭합니다.
  2. 로그 및 모니터링 섹션에서 수정을 클릭합니다.
  3. 데이터베이스 옵션 섹션에서 감사 로그 사용 설정이 선택되어 있는지 확인합니다.
  4. 대상에서 S3를 선택하고 로그를 저장할 S3 버킷을 지정합니다.
  5. 변경사항 저장을 클릭하여 설정을 적용합니다.

선택사항: CloudWatch를 사용한 AWS Aurora 로그 구성

추가 모니터링 기능을 사용하려면 CloudWatch Logs를 구성하여 Aurora 로그를 캡처하면 됩니다.

  1. RDS 대시보드에서 Aurora 클러스터를 선택합니다.
  2. 로그 및 모니터링 섹션에서 CloudWatch 로그 통합이 사용 설정되어 있는지 확인합니다.
  3. CloudWatch 로그로 이동하여 Aurora 로그를 저장할 새 로그 그룹을 만듭니다.
  4. 로그 그룹 화면에서 새 로그 그룹의 이름을 선택합니다.
  5. 작업 > Amazon S3로 데이터 내보내기를 선택합니다.
  6. Amazon S3로 데이터 내보내기 화면의 데이터 내보내기 정의에서 처음을 사용하여 내보낼 데이터의 기간을 설정합니다.

  7. S3 버킷 선택에서 Amazon S3 버킷과 연결된 계정을 선택합니다.

  8. S3 버킷 이름에서 Amazon S3 버킷을 선택합니다.

  9. S3 버킷 접두사: 버킷 정책에 지정한 무작위로 생성된 문자열을 입력합니다.

  10. 내보내기를 선택하여 로그 데이터를 Amazon S3로 내보냅니다.

  11. Amazon S3로 내보낸 로그 데이터의 상태를 보려면 작업 > Amazon S3로 내보낸 모든 항목 보기를 선택합니다.

AWS Aurora 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다 (예: AWS Aurora Logs).
  4. 소스 유형으로 Amazon S3를 선택합니다.
  5. 로그 유형으로 AWS Aurora를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 매개변수의 값을 지정합니다.

    • 리전: Amazon S3 버킷이 있는 리전입니다.
    • S3 URI: 버킷 URI입니다.
      • s3://your-log-bucket-name/
        • your-log-bucket-name을 버킷의 실제 이름으로 바꿉니다.
    • URI: 디렉터리 또는 하위 디렉터리가 포함된 디렉터리를 선택합니다.
    • 소스 삭제 옵션: 원하는 삭제 옵션을 선택합니다.

    • 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.

    • 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.

    • 애셋 네임스페이스: 애셋 네임스페이스입니다.

    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.

  8. 다음을 클릭합니다.

  9. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

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 (response) 또는 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 필드에서 직접 매핑됩니다.

변경사항

2024-01-12

  • 'logEvents.messageType', 'logEvents.owner', 'logEvents.logGroup', 'logEvents.logStream'이 'target.resource.attribute.labels'에 매핑되었습니다.
  • 'logEvents.logEvents.message', 'logEvents.logEvents.timestamp', 'logEvents.logEvents.id'가 'securit_result.detection_fields'에 매핑되었습니다.
  • 'logEvents.logEvents.message'에서 IP 주소를 검색하는 Grok 패턴을 추가하고 'src_data'를 'principal.ip'에 매핑했습니다.
  • 'user'가 'principal.user.userid'에 매핑되었습니다.

2023-11-02

  • 파서를 새로 만들었습니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받으세요.