데이터베이스 객체 감사
Aurora PostgreSQL DB 클러스터에 pgAudit를 설정하고 요구 사항에 맞게 구성하면 PostgreSQL 로그에 더 자세한 정보가 캡처됩니다. 예를 들어 기본 PostgreSQL 로깅 구성은 데이터베이스 테이블에서 변경 사항이 적용된 날짜 및 시간을 식별하지만 pgAudit 확장을 사용하면 확장 파라미터의 구성에 따라 스키마, 변경한 사용자 및 기타 세부 정보가 로그 항목에 포함될 수 있습니다. 감사를 설정하여 다음 방법으로 변경 사항을 추적할 수 있습니다.
세션마다 사용자별로 추적. 세션 수준에서 정규화된 명령 텍스트를 캡처할 수 있습니다.
객체마다 사용자별, 데이터베이스별로 추적
객체 감사 기능은 시스템에서 rds_pgaudit
역할을 만든 다음, 사용자 지정 파라미터 그룹의 pgaudit.role
파라미터에 이 역할을 추가하면 활성화됩니다. 기본적으로 pgaudit.role
파라미터는 설정되어 있지 않으며 유일하게 허용되는 값은 rds_pgaudit
입니다. 다음 단계에서는 pgaudit
가 초기화되었고 pgAudit 확장 설정의 절차에 따라 pgaudit
확장을 만든 것으로 가정합니다.
이 예에서 볼 수 있듯이 LOG: AUDIT: SESSION 행은 테이블 및 해당 스키마를 비롯한 세부 정보를 제공합니다.
객체 감사를 설정하는 방법
psql
을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.psql --host=
your-instance-name
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
postgres --password --dbname=labdb
-
다음 명령을 사용하여
rds_pgaudit
라는 데이터베이스 역할을 생성합니다.labdb=>
CREATE ROLE rds_pgaudit;
CREATE ROLE
labdb=>
psql
세션을 닫습니다.labdb=>
\q
이어질 몇 단계에서는 AWS CLI를 사용하여 사용자 지정 파라미터 그룹에서 감사 로그 파라미터를 수정합니다.
-
다음 AWS CLI 명령을 사용하여
rds_pgaudit
에pgaudit.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" \ --regionaws-region
-
다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 파라미터 변경 사항이 적용되도록 합니다.
aws rds reboot-db-instance \ --db-instance-identifier
writer-instance
\ --regionaws-region
다음 명령을 실행하여
pgaudit.role
이rds_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