pgAudit 확장 설정
RDS for PostgreSQL DB 인스턴스에 pgAudit 확장을 설정하려면 먼저 RDS for PostgreSQL DB 인스턴스용 사용자 지정 DB 파라미터 그룹의 공유 라이브러리에 pgAudit을 추가해야 합니다. 사용자 지정 DB 클러스터 파라미터 그룹을 만드는 방법에 관한 자세한 내용은 Amazon RDS의 파라미터 그룹 섹션을 참조하세요. 다음으로 pgAudit 확장을 설치합니다. 마지막으로, 감사하려는 데이터베이스 및 객체를 지정합니다. 이 섹션에 절차가 설명되어 있습니다. AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.
이 모든 작업을 수행하려면 rds_superuser
역할의 권한이 있어야 합니다.
다음 단계에서는 사용자의 RDS for PostgreSQL DB 인스턴스가 사용자 지정 DB에 연결되어 있다고 가정합니다.
pgAudit 확장 설정 방법
https://console.aws.amazon.com/rds/
에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 RDS for PostgreSQL DB 인스턴스를 선택합니다.
-
의 구성 탭을 엽니다. RDS for PostgreSQL DB 인스턴스 인스턴스 세부 정보 중에서 파라미터 그룹 링크를 찾습니다.
-
링크를 선택하여 와 연결된 사용자 지정 파라미터를 엽니다. RDS for PostgreSQL DB 인스턴스
-
파라미터 검색 필드에
shared_pre
를 입력하여shared_preload_libraries
파라미터를 찾습니다. -
파라미터 편집을 선택하여 속성 값에 액세스합니다.
-
값 필드의 목록에
pgaudit
를 추가합니다. 쉼표를 사용하여 값 목록에서 항목을 구분합니다. RDS for PostgreSQL DB 인스턴스를 재부팅하여
shared_preload_libraries
파라미터 변경 사항이 적용되도록 합니다.인스턴스를 사용할 수 있게 되면 pgAudit가 초기화되었는지 확인합니다.
psql
을 사용하여 RDS for PostgreSQL DB 인스턴스에 연결하고 다음 명령을 실행합니다.SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
pgAudit가 초기화되었으므로 이제 확장을 생성할 수 있습니다. 확장은 라이브러리를 초기화한 후에 생성해야 합니다.
pgaudit
확장이 데이터 정의 언어(DDL) 문 감사를 위한 이벤트 트리거를 설치하기 때문입니다.CREATE EXTENSION pgaudit;
psql
세션을 닫습니다.labdb=>
\q
https://console.aws.amazon.com/rds/
에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다. 목록에서
pgaudit.log
파라미터를 찾아 사용 사례에 적합한 값으로 설정합니다. 예를 들어, 다음 이미지처럼pgaudit.log
파라미터를write
로 설정하면 로그에 대한 삽입, 업데이트, 삭제 및 기타 유형의 변경 사항이 캡처됩니다.pgaudit.log
파라미터에 다음 값 중 하나를 선택할 수도 있습니다.없음 - 기본값입니다. 데이터베이스 변경 사항이 로깅되지 않습니다.
모두 - 모든 항목(읽기, 쓰기, 함수, 역할, ddl, 기타)을 로깅합니다.
ddl -
ROLE
클래스에 포함되지 않은 모든 데이터 정의 언어(DDL) 문을 로깅합니다.함수 - 함수 호출 및
DO
블록을 로깅합니다.기타 – 기타 명령(예:
DISCARD
,FETCH
,CHECKPOINT
,VACUUM
,SET
)을 로깅합니다.읽기 – 원본이 관계(예: 테이블) 또는 쿼리인 경우
SELECT
및COPY
를 로깅합니다.역할 - 역할 및 권한과 관련된 문을 로깅합니다(예:
GRANT
,REVOKE
,CREATE ROLE
,ALTER ROLE
,DROP ROLE
).쓰기 - 대상이 관계(테이블)인 경우
INSERT
,UPDATE
,DELETE
,TRUNCATE
,COPY
를 로깅합니다.
Save changes(변경 사항 저장)를 선택합니다.
https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. 데이터베이스 목록에서 RDS for PostgreSQL DB 인스턴스를 선택합니다.
pgAudit 설정 방법
AWS CLI를 사용하여 pgAudit를 설정하려면 다음 절차와 같이 modify-db-parameter-group 작업을 호출하여 사용자 지정 파라미터 그룹의 감사 로그 파라미터를 수정합니다.
다음 AWS CLI 명령을 사용하여
shared_preload_libraries
파라미터에pgaudit
를 추가합니다.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region
-
다음 AWS CLI 명령으로 RDS for PostgreSQL DB 인스턴스를 재부팅하여 pgaudit 라이브러리가 초기화되도록 합니다.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
인스턴스를 사용할 수 있게 되면
pgaudit
가 초기화되었는지 확인할 수 있습니다.psql
을 사용하여 RDS for PostgreSQL DB 인스턴스에 연결하고 다음 명령을 실행합니다.SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)
pgAudit가 초기화되었으므로 이제 확장을 생성할 수 있습니다.
CREATE EXTENSION pgaudit;
AWS CLI를 사용할 수 있도록
psql
세션을 닫습니다.labdb=>
\q
다음 AWS CLI 명령을 사용하여 세션 감사 로깅을 통해 로깅할 문의 클래스를 지정합니다. 이 예에서는
pgaudit.log
파라미터를write
로 설정하여 로그에 대한 삽입, 업데이트 및 삭제를 캡처합니다.aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=pgaudit.log,ParameterValue=write
,ApplyMethod=pending-reboot" \ --regionaws-region
pgaudit.log
파라미터에 다음 값 중 하나를 선택할 수도 있습니다.없음 - 기본값입니다. 데이터베이스 변경 사항이 로깅되지 않습니다.
모두 - 모든 항목(읽기, 쓰기, 함수, 역할, ddl, 기타)을 로깅합니다.
ddl -
ROLE
클래스에 포함되지 않은 모든 데이터 정의 언어(DDL) 문을 로깅합니다.함수 - 함수 호출 및
DO
블록을 로깅합니다.기타 – 기타 명령(예:
DISCARD
,FETCH
,CHECKPOINT
,VACUUM
,SET
)을 로깅합니다.읽기 – 원본이 관계(예: 테이블) 또는 쿼리인 경우
SELECT
및COPY
를 로깅합니다.역할 - 역할 및 권한과 관련된 문을 로깅합니다(예:
GRANT
,REVOKE
,CREATE ROLE
,ALTER ROLE
,DROP ROLE
).쓰기 - 대상이 관계(테이블)인 경우
INSERT
,UPDATE
,DELETE
,TRUNCATE
,COPY
를 로깅합니다.
다음 AWS CLI 명령으로 RDS for PostgreSQL DB 인스턴스를 재부팅합니다.
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region