데이터베이스 객체 감사 - Amazon Aurora

데이터베이스 객체 감사

Aurora PostgreSQL DB 클러스터에 pgAudit를 설정하고 요구 사항에 맞게 구성하면 PostgreSQL 로그에 더 자세한 정보가 캡처됩니다. 예를 들어 기본 PostgreSQL 로깅 구성은 데이터베이스 테이블에서 변경 사항이 적용된 날짜 및 시간을 식별하지만 pgAudit 확장을 사용하면 확장 파라미터의 구성에 따라 스키마, 변경한 사용자 및 기타 세부 정보가 로그 항목에 포함될 수 있습니다. 감사를 설정하여 다음 방법으로 변경 사항을 추적할 수 있습니다.

  • 세션마다 사용자별로 추적. 세션 수준에서 정규화된 명령 텍스트를 캡처할 수 있습니다.

  • 객체마다 사용자별, 데이터베이스별로 추적

객체 감사 기능은 시스템에서 rds_pgaudit 역할을 만든 다음, 사용자 지정 파라미터 그룹의 pgaudit.role 파라미터에 이 역할을 추가하면 활성화됩니다. 기본적으로 pgaudit.role 파라미터는 설정되어 있지 않으며 유일하게 허용되는 값은 rds_pgaudit입니다. 다음 단계에서는 pgaudit가 초기화되었고 pgAudit 확장 설정의 절차에 따라 pgaudit 확장을 만든 것으로 가정합니다.

pgAudit를 설정한 후의 PostgreSQL 로그 파일 이미지.

이 예에서 볼 수 있듯이 LOG: AUDIT: SESSION 행은 테이블 및 해당 스키마를 비롯한 세부 정보를 제공합니다.

객체 감사를 설정하는 방법
  1. psql을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

    psql --host=your-instance-name.aws-region.rds.amazonaws.com --port=5432 --username=postgrespostgres --password --dbname=labdb
  2. 다음 명령을 사용하여 rds_pgaudit라는 데이터베이스 역할을 생성합니다.

    labdb=> CREATE ROLE rds_pgaudit; CREATE ROLE labdb=>
  3. psql 세션을 닫습니다.

    labdb=> \q

    이어질 몇 단계에서는 AWS CLI를 사용하여 사용자 지정 파라미터 그룹에서 감사 로그 파라미터를 수정합니다.

  4. 다음 AWS CLI 명령을 사용하여 rds_pgauditpgaudit.role 파라미터를 추가합니다. 기본적으로 이 파라미터는 설정되어 있지 않으며 유일하게 허용되는 값은 rds_pgaudit입니다.

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \ --region aws-region
  5. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 파라미터 변경 사항이 적용되도록 합니다.

    aws rds reboot-db-instance \ --db-instance-identifier writer-instance \ --region aws-region
  6. 다음 명령을 실행하여 pgaudit.rolerds_pgaudit로 설정되었는지 확인합니다.

    SHOW pgaudit.role; pgaudit.role ------------------ rds_pgaudit

pgAudit 로깅을 테스트하기 위해 감사하려는 몇 가지 예제 명령을 실행할 수 있습니다. 예를 들어 다음과 같은 명령을 실행할 수 있습니다.

CREATE TABLE t1 (id int); GRANT SELECT ON t1 TO rds_pgaudit; SELECT * FROM t1; id ---- (0 rows)

데이터베이스 로그에는 다음과 유사한 항목이 포함됩니다.

... 2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT: OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1; ...

로그 확인에 대한 자세한 내용은 Amazon Aurora 로그 파일 모니터링 단원을 참조하십시오.

pgAudit 확장 프로그램에 대한 자세한 내용은 GitHub에서 pgAudit을 참조하세요.