Azure Database for PostgreSQL의 데이터베이스 활동에 대한 감사 로깅은 확장을 통해 pgaudit 사용할 수 있습니다.
pgaudit 에서는 자세한 세션 및/또는 개체 감사 로깅을 제공합니다.
컴퓨팅 및 스토리지 크기 조정과 같은 작업에 Azure 리소스 수준 로그를 사용하려면 Azure 활동 로그를 참조하세요.
사용량 고려 사항
기본적으로 pgaudit 로그 문과 일반 로그 문은 Postgres의 표준 로깅 기능을 사용하여 내보내집니다. Azure Database for PostgreSQL에서 Log Analytics에서 나중에 분석할 수 있도록 모든 로그를 Azure Monitor 로그 저장소로 보내도록 구성할 수 있습니다. Azure Monitor 리소스 로깅을 사용하도록 설정하면 선택한 항목에 따라 로그가 Azure Storage, Event Hubs 및/또는 Azure Monitor 로그로 자동으로 전송됩니다(JSON 형식).
Azure Storage, Event Hubs 또는 Azure Monitor 로그에 대한 로깅을 설정하는 방법을 알아보려면 서버 로그 문서의 리소스 로그 섹션을 참조하세요.
확장 설치
확장을 사용하려면 확장을 사용 pgaudit 하려는 데이터베이스에서 확장을 허용 목록, 로드 및 만들어야 합니다.
확장 설정 구성
pgaudit 를 사용하면 세션 또는 개체 감사 로깅을 구성할 수 있습니다.
세션 감사 로깅 은 실행된 문의 자세한 로그를 내보냅니다.
개체 감사 로깅 은 특정 관계로 범위가 지정된 감사입니다. 하나 또는 두 가지 유형의 로깅을 설정하도록 선택할 수 있습니다.
사용하도록 설정pgaudit하면 로깅을 시작하도록 해당 매개 변수를 구성할 수 있습니다.
구성 pgaudit하려면 다음 지침을 따를 수 있습니다.
Azure Portal 사용:
PostgreSQL용 Azure Database의 인스턴스를 선택합니다.
리소스 메뉴의 설정에서 서버 매개 변수를 선택합니다.
매개 변수를 검색합니다
pgaudit.편집할 적절한 매개 변수를 선택합니다. 예를 들어 로깅,
UPDATE, ,TRUNCATEDELETE및COPY문으로 설정pgaudit.log되는 로깅INSERT을 시작합니다WRITE.저장 단추를 선택하여 변경 내용을 저장합니다.
공식 설명서는pgaudit 각 매개 변수의 정의를 제공합니다. 먼저 매개 변수를 테스트하고 예상되는 동작이 표시되는지 확인합니다.
예를 들어 설정 pgaudit.log_client 은 ON 감사 이벤트를 서버 로그에 쓸 뿐만 아니라 클라이언트 프로세스(예: psql)로 보냅니다. 이 설정은 일반적으로 사용하지 않도록 설정해야 합니다.
pgaudit.log_level 가 설정된 경우에만 사용할 수 pgaudit.log_client 있습니다.
Azure Database for PostgreSQL pgaudit.log 에서는 설명서에 설명된 pgaudit 대로 (빼기) 기호 바로 가기를 사용하여 - 설정할 수 없습니다. 모든 필수 문 클래스(READ, WRITE 등)를 개별적으로 지정해야 합니다.
매개 변수를 log_statementDDL 설정하거나 ALL 또는 명령으로 CREATE ROLE/USER ... WITH PASSWORD ... ;ALTER ROLE/USER ... WITH PASSWORD ... ;실행하는 경우 PostgreSQL은 PostgreSQL 로그에 암호를 명확한 텍스트로 기록하여 잠재적인 보안 위험을 초래할 수 있는 항목을 만듭니다. PostgreSQL 엔진 디자인에 따라 예상되는 동작입니다.
그러나 확장을 사용하고 pgaudit Postgres 서버 로그에 문을 CREATE/ALTER ROLE 기록하지 않는 확장으로 설정할 log_statementpgaudit.logDDLDDL수 있습니다. 이러한 문을 기록해야 하는 경우 로깅CREATE/ALTER ROLE하는 동안 로그에서 암호를 수정하는 ROLE것으로 설정할 pgaudit.log수도 있습니다.
감사 로그 형식
각 감사 항목은 .로 AUDIT:시작합니다. 나머지 항목의 형식은 다음 설명서 에 자세히 설명되어 있습니다 pgaudit.
시작하기
빠르게 시작하려면 서버 로그로 ALL설정하고 pgaudit.log 서버 로그를 열어 출력을 검토합니다.
감사 로그 보기
로그에 액세스하는 방법은 선택한 엔드포인트에 따라 달라집니다. Azure Storage 에 대한 로그 스토리지 계정 문서를 참조하세요. Event Hubs에 대한 Azure 로그 스트림 문서를 참조하세요.
Azure Monitor 로그의 경우 선택한 작업 영역으로 로그가 전송됩니다. Postgres 로그는 AzureDiagnostics 컬렉션 모드를 사용하므로 AzureDiagnostics 테이블에서 쿼리할 수 있습니다. Azure Monitor 로그 쿼리 개요에서 쿼리 및 경고에 대해 자세히 알아봅니다.
이 쿼리를 사용하여 시작할 수 있습니다. 쿼리에 따라 경고를 구성할 수 있습니다.
마지막 날의 특정 서버에 대한 Postgres 로그의 모든 pgaudit 항목 검색
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"
pgaudit 확장이 설치된 주 버전 업그레이드
주 버전 업그레이드 중에는 업그레이드가 완료된 후 pgaudit 확장이 자동으로 삭제된 다음 다시 만들어집니다. 확장이 복원되는 동안에 설정된 pgaudit.log 사용자 지정 구성 또는 기타 관련 매개 변수는 자동으로 유지되지 않습니다.