Redshift 감사 로그 내보내기 점검

Redshift 감사 로그의 생성 범위와 외부 저장 대상·보존 기간을 확인하세요.

설명

Redshift 감사 로그를 외부에 보관하지 않으면 장기 조사에 필요한 연결·사용자 활동 기록을 확보하기 어려울 수 있습니다. LoggingProperties로 S3 또는 CloudWatch Logs에 로그를 보낼 수 있으며, 데이터베이스의 시스템 테이블 기록과는 별도 기능입니다.

사용자 활동 로그에는 클러스터 파라미터 enable_user_activity_logging 활성화도 필요합니다. 로그 내보내기만 설정했다고 모든 SQL 활동이 기록되는 것은 아닙니다.

잠재적 영향

  • 필요한 기간의 접근·활동 기록을 확보하지 못해 사고 조사가 지연될 수 있습니다.
  • 민감한 쿼리 내용이 담긴 로그의 접근·보존 관리가 부족하면 정보가 노출될 수 있습니다.

해결 방법

LoggingProperties에 필요한 대상과 로그 범위를 설정하고 사용자 활동 로그가 필요하면 해당 파라미터도 활성화하세요. 저장 대상의 전달 권한, 접근 제한과 보존 기간을 구성한 뒤 실제 수집을 확인하세요.

예시

S3 로그 내보내기 비교를 위한 발췌입니다. 서브넷 그룹, 실제 리전·클러스터 구성에서 지원되는 RedshiftNodeType과 LoggingBucketName을 준비하세요. RedshiftMasterPassword는 기본값 없는 NoEcho 입력이나 승인된 비밀 관리 방식으로 제공하세요. PubliclyAccessible: true는 로깅에 필요하지 않으므로 접근 범위도 별도로 검토하세요.

변경 전

yaml
Resources:
  RedshiftCluster:
    Type: AWS::Redshift::Cluster
    Properties:
      ClusterSubnetGroupName: !Ref RedshiftClusterSubnetGroup
      DBName: analytics
      MasterUsername: admin
      MasterUserPassword: !Ref RedshiftMasterPassword
      PubliclyAccessible: true
      NodeType: !Ref RedshiftNodeType
      Port: 5439

외부 로그 내보내기가 구성되어 있지 않습니다. 데이터베이스 내부 시스템 테이블의 기록까지 없다는 뜻은 아닙니다.

변경 후

yaml
Resources:
  RedshiftCluster:
    Type: AWS::Redshift::Cluster
    Properties:
      ClusterSubnetGroupName: !Ref RedshiftClusterSubnetGroup
      DBName: analytics
      MasterUsername: admin
      MasterUserPassword: !Ref RedshiftMasterPassword
      PubliclyAccessible: true
      NodeType: !Ref RedshiftNodeType
      Port: 5439
      LoggingProperties:
        BucketName: !Ref LoggingBucketName

S3 로그 대상을 지정합니다. 대상 버킷의 전달 권한과 사용자 활동 로그 파라미터를 별도로 확인하세요.

참조