AWS Redshift 로그 수집

다음에서 지원:

이 문서에서는 Amazon S3를 사용하여 AWS Redshift 로그를 Google Security Operations로 수집하는 방법을 설명합니다.

Amazon Redshift는 Amazon Web Services의 완전 관리형 페타바이트급 클라우드 데이터 웨어하우스 서비스입니다. SQL 기반 도구와 비즈니스 인텔리전스 애플리케이션을 사용하여 대규모 데이터 세트에서 빠른 쿼리 및 분석을 지원합니다. Amazon Redshift는 인증 시도, 연결, 연결 해제, 사용자 정의 변경사항, 데이터베이스에 대해 실행된 쿼리를 비롯한 데이터베이스 활동을 로깅합니다. 이 통합은 Amazon Redshift의 기본 감사 로깅 기능을 사용하여 로그 파일을 S3 버킷에 전달하며, Google SecOps는 Amazon S3 V2 피드를 사용하여 이를 수집합니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • 다음 항목을 관리할 수 있는 권한이 있는 AWS 관리 콘솔에 대한 액세스 권한
    • Amazon Redshift (클러스터, 파라미터 그룹)
    • Amazon S3 (버킷, 버킷 정책)
    • AWS IAM (사용자, 정책)

Amazon Redshift 감사 로깅을 위한 S3 버킷 구성

Amazon Redshift는 감사 로그 파일을 S3 버킷에 업로드합니다. Amazon Redshift 서비스가 로그 파일을 쓸 수 있도록 S3 버킷 정책을 구성해야 합니다.

S3 버킷 만들기 및 구성

  1. 이 사용자 가이드(버킷 만들기)에 따라 Amazon S3 버킷을 만듭니다.
  2. 나중에 참조할 수 있도록 버킷 이름리전을 저장합니다 (예: redshift-audit-logs-to-secops).

  3. https://console.aws.amazon.com/s3Amazon S3 콘솔에서 생성된 버킷을 선택합니다.

  4. 권한 탭을 선택합니다.

  5. 버킷 정책 섹션에서 수정을 클릭합니다.

  6. 다음 버킷 정책을 추가합니다 (redshift-audit-logs-to-secops을 버킷 이름으로 바꿈).

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Put bucket policy needed for audit logging",
                "Effect": "Allow",
                "Principal": {
                    "Service": "redshift.amazonaws.com"
                },
                "Action": [
                    "s3:PutObject",
                    "s3:GetBucketAcl"
                ],
                "Resource": [
                    "arn:aws:s3:::redshift-audit-logs-to-secops",
                    "arn:aws:s3:::redshift-audit-logs-to-secops/*"
                ]
            }
        ]
    }
    
  7. 변경사항 저장을 클릭합니다.

사용자 활동 로그 매개변수 사용 설정

감사 로깅이 사용 설정되면 연결 로그와 사용자 로그가 자동으로 캡처됩니다. 데이터베이스에서 실행되기 전 각 쿼리를 기록하는 사용자 활동 로그도 캡처하려면 enable_user_activity_logging 데이터베이스 매개변수를 사용 설정해야 합니다.

  1. https://console.aws.amazon.com/redshiftv2/에서 Amazon Redshift 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 구성 > 워크로드 관리로 이동합니다.
  3. 클러스터와 연결된 파라미터 그룹을 선택합니다.
  4. 매개변수 탭을 선택합니다.
  5. 매개변수 수정을 클릭합니다.
  6. enable_user_activity_logging 파라미터 값을 true로 설정합니다.
  7. 저장을 클릭합니다.

S3에 대한 Amazon Redshift 감사 로깅 사용 설정

  1. https://console.aws.amazon.com/redshiftv2/에서 Amazon Redshift 콘솔에 로그인합니다.
  2. 탐색 메뉴에서 클러스터를 선택한 후 구성할 클러스터를 선택합니다.
  3. 속성 탭을 선택합니다.
  4. 데이터베이스 구성 패널에서 수정을 클릭한 다음 감사 로깅 수정을 선택합니다.
  5. 감사 로깅 수정 페이지에서 사용 설정을 선택합니다.
  6. 로그 대상에서 S3 버킷을 선택합니다.
  7. S3 버킷에서 구성한 버킷 (예: redshift-audit-logs-to-secops)을 선택합니다.
  8. 선택사항: 버킷 내 로그 파일을 정리하기 위해 S3 키 접두사를 입력합니다 (예: audit-logs/).
  9. 내보낼 로그를 선택합니다.
    • 연결 로그 - 인증 시도, 연결, 연결 해제
    • 사용자 로그 - 데이터베이스 사용자 정의 변경사항
    • 사용자 활동 로그 - 데이터베이스에서 실행되기 전의 각 쿼리
  10. 변경사항 저장을 클릭합니다.

자세한 내용은 Amazon Redshift 관리 가이드의 데이터베이스 감사 로깅을 참고하세요.

Google SecOps용 IAM 사용자 구성

Google SecOps는 내보낸 감사 로그를 수집하기 위해 S3 버킷에 대한 읽기 액세스 권한이 있는 IAM 사용자가 필요합니다.

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

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

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름에 고유한 이름을 입력합니다.
  5. 소스 유형으로 Amazon S3 V2를 선택합니다.
  6. 로그 유형으로 AWS Redshift를 선택합니다.
  7. 다음을 클릭한 후 제출을 클릭합니다.
  8. 다음 필드의 값을 지정합니다.

    • S3 URI: s3://redshift-audit-logs-to-secops/audit-logs/
    • 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다 (기본값은 180일).
    • 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키
    • 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키
    • 애셋 네임스페이스: 애셋 네임스페이스
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  9. 다음을 클릭한 후 제출을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
func_label additional.fields 병합됨
lpclagg_label additional.fields 병합됨
lpcltype_label additional.fields 병합됨
msg metadata.description 직접 매핑됨
has_principal metadata.event_type 매핑됨: trueSTATUS_UPDATE
has_target_resource metadata.event_type 매핑됨: trueUSER_RESOURCE_ACCESS
has_user metadata.event_type 매핑됨: trueUSER_UNCATEGORIZED
column1 metadata.product_event_type 직접 매핑됨
requestID metadata.product_log_id 직접 매핑됨
column20 network.application_protocol_version 직접 매핑됨
column9 network.session_duration.seconds 이름이 변경됨/매핑됨
column21 network.session_id 직접 매핑됨
xid network.session_id 직접 매핑됨
column11 network.tls.cipher 직접 매핑됨
column10 network.tls.version 직접 매핑됨
column16 principal.application 직접 매핑됨
column3 principal.asset.ip 병합됨
log_event.src_ip principal.asset.ip 병합됨
column3 principal.hostname 직접 매핑됨
column3 principal.ip 병합됨
log_event.src_ip principal.ip 병합됨
region principal.location.name 직접 매핑됨
column17 principal.platform_version 직접 매핑됨
column4 principal.port 직접 매핑됨
column5 principal.process.pid 직접 매핑됨
pid principal.process.pid 직접 매핑됨
accountID principal.user.userid 직접 매핑됨
user_id principal.user.userid 직접 매핑됨
authmethod_label security_result.detection_fields 병합됨
compression_label security_result.detection_fields 병합됨
driver_version_label security_result.detection_fields 병합됨
iamauthguid_label security_result.detection_fields 병합됨
mtu_label security_result.detection_fields 병합됨
plugin_name_label security_result.detection_fields 병합됨
ssl_compression_label security_result.detection_fields 병합됨
ssl_expansion_label security_result.detection_fields 병합됨
level security_result.severity 매핑됨: (?i)InfoINFORMATIONAL, (?i)ErrorERROR, (?i)WarningMEDIUM
file target.file.full_path 직접 매핑됨
expected_bucket_label target.resource.attribute.labels 병합됨
expected_s3_prefix_label target.resource.attribute.labels 병합됨
sql_query_label target.resource.attribute.labels 병합됨
time_zone_label target.resource.attribute.labels 병합됨
ClusterIdentifier target.resource.name 직접 매핑됨
column6 target.resource.name 직접 매핑됨
db target.resource.name 직접 매핑됨
column7 target.user.user_display_name 직접 매핑됨
user target.user.user_display_name 직접 매핑됨
해당 사항 없음 metadata.event_type 상수: USER_RESOURCE_ACCESS
해당 사항 없음 security_result.severity 상수: INFORMATIONAL
해당 사항 없음 target.resource.type 상수: DATABASE

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