데이터베이스 감사 설정
참고
관리자는 데이터베이스 감사를 통해 사용자가 여러 명인 배포서버의 시스템 활동을 추적 할 수 있습니다. Atlas 관리자는 감사 할 작업, 데이터베이스 사용자, Atlas 역할 및 LDAP 그룹을 선택할 수 있습니다. Atlas 는 문서화된 대부분의 시스템 이벤트 조치에 대한 감사를 지원하지만 다음과 같은 제한 사항이 있습니다.
이 작업은 Atlas의
admin
데이터베이스에서 직접 수행됩니다. 따라서 Atlas 감사 로그는 사용자 생성 또는 수정 이벤트를 추적하지 않습니다.
authCheck
이벤트 조치는 프로젝트의 cluster 내 데이터베이스에서 읽거나 데이터베이스에 하는 작성하려는 사용자의 권한 부여를 기록합니다. Atlas는 다음과 같은 특정 명령어를 감사합니다.
authCheck Reads | authCheck Writes |
---|---|
Atlas는 authCheck
이벤트 작업을 다음의 네 가지 개별 작업으로 구현합니다.
이벤트 조치 | 설명 |
---|---|
|
|
|
경고: auditAuthorizationSuccess 를 활성화 하면 클러스터 성능에 심각한 영향 을 미칠 수 있습니다. 이 옵션은 주의해서 활성화하세요. |
|
|
|
경고: auditAuthorizationSuccess 를 활성화 하면 클러스터 성능에 심각한 영향 을 미칠 수 있습니다. 이 옵션은 주의해서 활성화하세요. |
MongoDB가 감사 이벤트를 디스크에 기록하는 방법에 대해 알아보려면 MongoDB 매뉴얼에서 감사 보장을 참조하세요.
필요한 액세스 권한
감사 로그를 구성하려면 업데이트할 프로젝트에 대한 Project Owner
액세스 권한 또는 업데이트할 프로젝트가 포함된 조직에 대한 Organization Owner
액세스 권한이 있어야 합니다.
절차
참고
임시 데이터베이스 사용자의 행동을 감사하는 최선의 방법에 대해 알아보려면 임시 데이터베이스 사용자 감사를 참조하세요.
데이터베이스 감사를 설정하려면 다음 절차를 따르세요.
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
인증 실패를 감사할 것인지 확인합니다.
기본적으로 Atlas는 알려진 사용자와 알 수 없는 사용자 모두의 인증 시도 실패를 프라이머리 노드의 감사 로그에 기록합니다.
Select users and roles에서 감사할 작업이 속해 있는 데이터베이스 사용자, Atlas 역할 및 LDAP 그룹을 선택합니다.
아니면 Use Custom JSON Filter를 클릭하여 JSON 문자열로 감사 필터 를 수동으로 입력합니다. Atlas에서 사용자 지정 감사 필터를 구성하는 방법에 대한 자세한 내용은 사용자 지정 감사 필터 구성을 참조하세요.
Select actions to audit에서 감사할 이벤트 작업을 선택합니다.
참고
authenticate
작업에 대한 선택을 취소하면 Atlas에서 인증 실패를 감사하지 않습니다.
참고
authCheck
이벤트 작업 대상 감사에 권한 부여 성공 세분화를 선택하면, Atlas가 읽기 및 쓰기에 서로 다른 선택을 지원하지 않습니다. 예를 들어, authCheck Reads에 Successes and Failures를 선택하고 authCheck Writes에는 Failures를 선택할 수 없습니다. authCheck Reads와 authCheck Writes를 모두 선택하면 Atlas가 선택된 세분화를 양쪽에 자동으로 적용합니다.
Atlas에서 감사 로그를 검색하려면 MongoDB 로그를 참조하세요. API를 사용하여 감사 로그를 검색하려면 로그를 참조하세요.
사용자 지정 감사 필터 구성
참고
Atlas는 JSON 형식의 감사 필터를 지정하여 MongoDB 감사를 맞춤 설정하는 것을 지원합니다.
사용자 지정 감사 필터를 사용하면 managed Atlas UI 감사 필터하다 빌더를 사용하지 않고 이벤트 감사를 수동으로 세부적으로 제어할 수 있습니다. Atlas 는 사용자 지정 필터하다 가 유효한 JSON 구문을 사용하는지만 확인하며, 필터의 기능을 검증하거나 테스트하지 않습니다.
감사 필터 문서는 감사 이벤트 메시지의 필드의 하나 이상과 일치하는 쿼리로 해석되어야 합니다. 필터 문서는 쿼리 연산자 와 동일 조건의 조합을 사용하여 원하는 감사 메시지를 일치시킬 수 있습니다.
감사 필터 예시를 보려면 감사 필터 예시를 참조하세요. MongoDB 감사 필터를 구성하는 자세한 방법은 감사 필터 구성을 참조하세요.
중요
Atlas는 롤링 업그레이드 전략을 사용하여 Atlas 프로젝트의 모든 클러스터에서 감사 구성 설정을 활성화하거나 업데이트합니다. 롤링 업그레이드는 복제본 세트당 최소한 한 번의 선거를 필요로 합니다.
복제본 세트 선택에 대한 애플리케이션 복원력 테스트에 대해 자세히 알아보려면 프라이머리 장애 조치 테스트를 참조하세요. Atlas가 고가용성을 제공하는 방법에 대해 자세히 알아보려면 Atlas 고가용성을 참조하세요.
절차
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
Audit authorization successes을 토글합니다.
경고
Audit authorization successes 허용하면 cluster 성능에 심각한 영향을 미칠 수 있습니다. 이 옵션을 주의해서 활성화합니다.
authCheck
작업 유형을 지정하는 감사 필터의 경우, 감사 시스템은 지정된 param.command
에 대한 인증 실패만 기록하도록 기본 설정되어 있습니다. Audit authorization successes를 활성화하면 감사 시스템에서 권한 부여 성공도 기록하도록 지시합니다. 자세한 내용은 auditAuthorizationSuccess를 참조하세요.
사용자 지정 감사 필터를 편집합니다.
언제든지 필터를 편집할 수 있습니다.
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
사용자 지정 감사 필터 보기
Atlas CLI를 사용하여 지정된 프로젝트에 대한 감사 구성을 반환하려면 다음 명령을 실행하세요.
atlas auditing describe [options]
명령 구문과 매개 변수에 관한 자세한 내용은 Atlas CLI 설명서의 Atlas 감사 설명을 참조하세요.
Atlas UI에서 사용자 지정 감사 필터를 보려면 다음을 수행합니다.
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
감사 필터 예시를 들어보겠습니다.
다음 감사 필터 예시를 사용하여 사용자 고유의 필터를 구성하는 방법에 대한 지침을 살펴보세요.
중요
이 예시는 프로덕션 환경에서 사용하기 위한 것이 아니며, MongoDB 감사 설명서를 숙지하는 것을 대체할 수 없습니다.
알려진 사용자에 대한 모든 인증 이벤트 감사
{ "atype": "authenticate" }
알려진 사용자에 대한 모든 인증 이벤트와 알 수 없는 사용자에 대한 인증 실패를 감사합니다.
{ "$or": [ { "users": [] }, { "atype": "authenticate" } ] }
참고
authenticate
확인된 사용자와 미확인 사용자의 인증 실패를 기록하려면 조치가 필요합니다.
"myClusterAdministrator" 사용자에 대한 인증 이벤트를 감사합니다.
{ "atype": "authenticate", "param": { "user": "myClusterAdministrator", "db": "admin", "mechanism": "SCRAM-SHA-256" } }
선택한 명령의 무단 실행 시도 감사
{ "atype": "authCheck", "param.command": { "$in": [ "insert", "update", "delete" ] } }