Amazon Redshift 클러스터에서 데이터베이스를 감사하고 싶습니다.
간략한 설명
Amazon Redshift에는 로깅 옵션이 세 가지 있습니다.
감사 로깅 및 STL/SYS 테이블은 로그인한 사용자 및 로그인 시간과 같은 데이터베이스 수준 활동을 기록합니다. 또 사용자가 한 SQL 작업과 해당 작업을 실행한 시간이 기록됩니다. CloudTrail은 서비스 수준에서 사용자 활동을 추적합니다.
참고: 로그를 볼 때 외부 테이블을 사용하려면 Amazon Redshift Spectrum을 사용하세요. 자세한 내용은 Amazon Redshift Spectrum을 사용해 보안 및 규정 준수를 위한 데이터베이스 분석을 참고하세요.
해결 방법
감사 로깅 및 STL/ SYS 테이블
다음 표에서는 감사 로깅과 STL/SYS 테이블을 비교합니다. 사용 사례에 적합한 로깅 옵션을 선택하세요.
| |
---|
감사 로깅 | STL/SYS 테이블 |
Amazon Redshift 콘솔을 사용하거나 AWS Command Line Interface(AWS CLI) 및 Amazon Redshift를 사용해 감사 로깅을 활성화하세요. | STL/SYS 테이블은 데이터 웨어하우스 클러스터의 모든 노드에서 자동으로 사용할 수 있습니다. |
Amazon S3 수명 주기 규칙을 정의해 자동으로 파일을 보관하거나 삭제하지 않는 한 감사 로그 파일은 무기한 저장됩니다. 자세한 내용은 스토리지 수명 주기 관리를 참고하세요. | 로그 기록은 로그 사용량과 사용 가능한 디스크 공간에 따라 2~5일 동안 저장됩니다. 보존 기간을 연장하려면 GitHub 웹 사이트에서 Amazon Redshift 시스템 개체 지속성 유틸리티를 사용하세요. |
감사 로그 파일에 액세스하기 위해 Amazon Redshift 데이터베이스에 액세스할 필요가 없습니다. | STL/SYS 테이블에 액세스하려면 Amazon Redshift 데이터베이스에 액세스할 수 있어야 합니다. |
Amazon S3에 저장된 로그를 검토하는 데 데이터베이스 컴퓨팅 리소스가 필요하지 않습니다. | 다른 쿼리를 실행할 때와 마찬가지로 STL/SYS 테이블 쿼리를 실행하려면 데이터베이스 컴퓨팅 리소스가 필요합니다. |
타임스탬프를 사용해 프로세스 ID와 데이터베이스 활동의 상관관계를 파악할 수 있습니다. 클러스터를 재시작해도 Amazon S3 감사 로깅에는 영향을 주지 않습니다. | 클러스터가 재시작할 때 프로세스 ID를 재사용할 수 있기 때문에 프로세스 ID와 데이터베이스 활동의 상관 관계를 항상 파악할 수는 없습니다. |
감사 로깅은 다음 로그 파일에 정보를 저장합니다. 연결 로그, 사용자 로그, 사용자 활동 로그 참고: 사용자 활동 로그를 사용하려면 데이터베이스 파라미터 enable_user_activity_logging을 활성화해야 합니다. 자세한 내용은 로깅 켜기를 참고하세요. | 상세 정보를 보려면 SVL_STATEMENTTEXT, STL_CONNECTION_LOG, SYS_CONNECTION_LOG를 사용하세요. |
감사 로깅은 사용자 활동 로그에 SQL 문을 모두 기록합니다. | 실행하는 쿼리는 STL_QUERY에 로깅됩니다. DDL 명령문은 STL_DDLTEXT에 로깅됩니다. non-SELECT SQL 명령 텍스트는 STL_UTILITYTEXT에 로깅됩니다. Amazon Redshift Serverless의 경우 SYS_QUERY_HISTORY와 SYS_QUERY_DETAIL을 사용해 SQL 명령을 모두 확인할 수 있습니다. |
문은 Amazon Redshift에서 받는 즉시 로깅됩니다. Amazon S3 파일은 배치별로 업데이트되고 표시되는 데 몇 시간이 걸릴 수 있습니다. | 로그는 각 SQL 문을 실행한 후에 생성됩니다. |
감사 로깅의 경우 작업자, 작업 내용, 작업 시각을 로깅하지만 작업을 완료하는 데 걸린 시간은 로깅하지 않습니다. | STARTTIME과 ENDTIME 열을 사용해 활동을 완료하는 데 걸린 시간을 확인할 수 있습니다. 작업자를 확인하려면 프로비저닝된 클러스터에서 SVL_STATEMENTTEXT(userid)와 PG_USER (usesysid)를 함께 사용하세요. YS_QUERY_HISTORY와 SYS_QUERY_DETAIL을 사용해 Amazon Redshift Serverless에서 활동을 완료하는 데 걸린 시간을 확인할 수 있습니다. |
Amazon S3에서 로그가 사용하는 스토리지에 요금이 부과됩니다. | STL/SYS 테이블 스토리지에 부과되는 추가 요금은 없습니다. |
리더 노드에서 실행하는 쿼리만 기록됩니다. | 리더 노드에서 실행하는 쿼리만 기록되지 않습니다. |
CloudTrail
CloudTrail이 수집하는 정보를 사용해 AWS 서비스에 보낸 요청 내용, 요청한 사람, 요청 시기를 확인할 수 있습니다. 자세한 내용은 AWS CloudTrail로 Amazon Redshift API 호출 로깅을 참고하세요.
수명 주기 규칙을 정의해 자동으로 파일을 보관하거나 삭제하지 않는 한 감사 로그 파일은 Amazon S3에 무기한 저장됩니다. 자세한 내용은 스토리지 수명 주기 관리를 참고하세요.
관련 정보
쿼리 성능 조정