로그를 사용하여 Amazon Redshift 데이터베이스 클러스터에서 활동을 추적하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 4월 16일

Amazon Redshift 클러스터에서 데이터베이스 감사를 수행하려면 어떻게 해야 합니까?

간략한 설명

Amazon Redshift는 다음과 같은 세 가지 로깅 옵션을 제공합니다.

감사 로그 및 STL 테이블은 로그인한 사용자 및 로그인 시점과 같은 데이터베이스 수준 활동을 기록합니다. 이러한 테이블은 이러한 사용자가 수행한 SQL 활동과 수행 시점도 기록합니다. CloudTrail은 서비스 수준에서 수행된 활동을 추적합니다.

참고: 외부 테이블을 사용하여 로그를 보려면 Amazon Redshift Spectrum을 사용합니다. 자세한 내용은 Amazon Redshift Spectrum을 사용하여 보안 및 규정 준수에 대해 데이터베이스 감사 로그 분석을 참조하십시오.

​해결 방법

감사 로그 및 STL 테이블

다음 테이블에서는 감사 로그 및 STL 테이블을 비교합니다. 사용 사례에 적합한 로깅 옵션을 선택합니다.

감사 로그 STL 테이블
활성화해야 합니다. 감사 로깅을 활성화하려면 콘솔을 사용한 감사 구성 또는 Amazon Redshift CLI 및 API를 사용하여 로깅 구성에 대한 단계를 수행합니다. 데이터 웨어하우스 클러스터의 모든 노드에서 자동으로 사용할 수 있습니다.
감사 로그 파일은 파일을 자동으로 아카이브하거나 삭제하도록 Amazon S3 수명 주기 규칙을 정의하지 않으면 무기한 저장됩니다. 자세한 내용은 객체 수명 주기 관리를 참조하십시오. 로그 사용량 및 사용 가능한 디스크 공간에 따라 2~5일 동안 로그 기록이 저장됩니다. 보존 기간을 연장하려면 GitHub의 AWS 실습에서 Amazon Redshift System 객체 지속성 유틸리티를 사용합니다.
감사 로그 파일에 액세스하는 경우 Amazon Redshift 데이터베이스에 대한 액세스는 필요하지 않습니다. STL 테이블에 액세스하는 경우 Amazon Redshift 데이터베이스에 대한 액세스 권한이 필요합니다.
Amazon S3에 저장된 로그를 검토하는 경우 데이터베이스 컴퓨팅 리소스는 필요하지 않습니다. STL 테이블에서 쿼리를 실행하는 경우 다른 쿼리 실행과 마찬가지로, 데이터베이스 컴퓨팅 리소스이 필요합니다.
타임스탬프를 사용하여 데이터베이스 작업과 프로세스 ID의 상관관계를 나타낼 수 있습니다. 클러스터를 다시 시작해도 Amazon S3의 감사 로그에 영향을 주지 않습니다. 클러스터가 다시 시작되면 프로세스 ID가 재활용될 수 있으므로 항상 데이터베이스 작업과 프로세스 ID의 상관관계를 나타내지 못할 수도 있습니다.

다음 로그 파일에 정보를 저장합니다.

여러 테이블에 정보를 저장합니다. 다음 테이블을 사용하여 S3 감사 로그에 저장된 내용과 비슷한 정보를 검토합니다.
  • SVL_STATEMENTTEXT: 시스템에서 실행되는 SQL 명령의 전체 레코드를 제공합니다. STL_DDLTEXT, STL_QUERYTEXT 및 STL_UTILITYTEXT 테이블의 모든 행을 결합합니다.
  • STL_CONNECTION_LOG: 인증 시도, 연결 또는 연결 해제를 기록합니다.
사용자 활동 로그에서 모든 SQL 문을 기록합니다. 실행된 쿼리는 STL_QUERY에 기록됩니다. DDL 문은 STL_DDLTEXT에 기록됩니다. SELECT 외 SQL 명령 텍스트는 STL_UTILITYTEXT에 기록됩니다.
Amazon Redshift에서 명령문을 수신하는 즉시 명령문을 기록합니다. Amazon S3의 파일은 배치에서 업데이트되며, 표시하는 데 몇 시간이 걸릴 수 있습니다. 각 SQL 문을 실행한 후에 로그가 생성됩니다.
수행한 작업, 수행한 사람, 수행한 시점을 기록합니다. 그러나 작업 수행에 걸린 시간을 기록하지 않습니다. STARTTIME 및 ENDTIME 열을 사용하여 활동을 완료하는 데 걸린 시간을 확인합니다. 작업을 수행한 사용자를 확인하려면 SVL_STATEMENTTEXT(userid)를 PG_USER(usesysid)에 결합합니다.
Amazon S3에서 로그에 사용된 스토리지에 대한 요금이 청구됩니다. STL 테이블 스토리지에 대한 추가 비용은 없습니다.
리더 노드 전용 쿼리가 기록됩니다. 리더 노드 전용 쿼리가 기록되지 않습니다.

CloudTrail

CloudTrail에서 수집한 정보를 사용하여 AWS 서비스에 성공적으로 제출된 요청, 요청을 제출한 사람, 요청이 제출된 시점을 확인할 수 있습니다. 자세한 내용은 AWS CloudTrail을 사용하여 Amazon Redshift API 호출 로깅을 참조하십시오.

CloudTrail 로그 파일은 파일을 자동으로 아카이브하거나 삭제하도록 수명 주기 규칙을 정의하지 않으면 Amazon S3에서 무기한 저장됩니다. 자세한 내용은 객체 수명 주기 관리를 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?