MongoDB 보안, 모니터링 및 백업(Mongodump)
의 핵심 개념 중 하나 MongoDB 데이터베이스 관리입니다. 보안, 백업, 데이터베이스 액세스와 같은 중요한 측면은 모두 데이터베이스 관리와 관련된 중요한 개념입니다.
MongoDB 보안 개요
MongoDB 데이터베이스에 대한 보안 메커니즘을 정의하는 기능이 있습니다. 기본적으로 모든 사람이 모든 데이터베이스에 공개적으로 액세스하는 것을 원하지는 않습니다. MongoDB따라서 일종의 보안 메커니즘이 필요합니다. MongoDB 중요하다.
데이터베이스에서 보안을 구현할 때의 모범 사례는 다음과 같습니다.
- 액세스 제어 활성화 – 데이터베이스에 액세스할 때 모든 애플리케이션과 사용자가 일종의 인증 메커니즘을 갖도록 사용자를 생성합니다. MongoDB.
- 역할 기반 액세스 제어 구성 - 때로는 필요할 수 있는 권한의 논리적 그룹화가 있을 수 있으며 역할별로 묶을 수 있습니다. 그런 다음 사용자에게 이러한 역할을 할당할 수 있습니다.
- 구성해 보세요 MongoDB TLS나 SSL과 같은 일종의 암호화 프로토콜을 사용합니다. 이러한 프로토콜은 클라이언트와 mongo DB 환경 사이를 흐르는 트래픽을 암호화하는 데 사용될 수 있습니다.
- 감사 구성 – 관리자는 일반적으로 누가 무엇을 하는지 알아야 하며, 이는 나중에 문제를 분석하는 데 도움이 됩니다. 가장 좋은 방법은 감사를 활성화하는 것입니다. MongoDB.
- 서버 환경에서 필요한 리소스에 접근할 수 있는 별도의 사용자 ID로 MongDB 서버 인스턴스를 실행합니다.
Mongodb 백업 절차 – mongodump
MongDB로 작업할 때 내부 데이터가 손상될 경우를 대비해 항상 백업 절차가 마련되어 있는지 확인하는 것이 중요합니다. MongoDB 어떤 이유로든 손상됩니다.
다음은 내부에서 사용할 수 있는 백업 메커니즘입니다. MongoDB
- 기본 데이터 파일을 복사하여 백업 – 이것은 아마도 가장 쉬운 메커니즘일 것입니다. 수행해야 할 작업은 데이터 파일을 복사하는 것뿐입니다. MongoDB 이상적으로는 다른 서버여야 하는 다른 위치에 상주하고 복사합니다.
- mongodump를 사용하여 데이터베이스 백업 – mongodump 도구는 다음에서 데이터를 읽습니다. MongoDB 데이터베이스를 생성하고 충실도가 높은 BSON 파일을 생성합니다. 고려해야 할 점은 데이터 세트의 볼륨이 큰 경우 mongodump가 리소스 집약적일 수 있으므로 이 문제를 완화하려면 유틸리티를 보조 서버에서 실행해야 한다는 것입니다.
- MongoDB 클라우드 관리자 백업 - MongoDB Cloud Manager는 지속적으로 백업합니다. MongoDB oplog 데이터를 읽어 복제 세트 및 분할 클러스터를 만듭니다. MongoDB 환경을 제공합니다. MongoDB Cloud Manager는 oplog 데이터를 저장하여 특정 시점 복구를 생성하여 특정 복제본 세트 또는 샤드 클러스터에 대한 복원을 언제든지 생성할 수 있습니다.
몽고디비 모니터링
모니터링은 가장 중요한 관리 활동 중 하나입니다. MongoDB. 발생할 수 있는 문제에 대해 환경을 모니터링하여 보다 적극적으로 대처할 수 있기 때문입니다.
다음은 모니터링 구현에 대한 몇 가지 예입니다.
- 몽고스타트 insert, query, update, delete 등의 데이터베이스 작업이 실제로 서버에서 발생하는 횟수를 알려줍니다. 이를 통해 서버가 얼마나 많은 부하를 처리하고 있는지에 대한 좋은 아이디어를 얻을 수 있으며, 부하를 분산하기 위해 서버에 추가 리소스가 필요한지 또는 추가 서버가 필요한지 여부를 알 수 있습니다.
- 몽고톱 현재 읽기 및 쓰기 활동을 추적하고 보고합니다. MongoDB 인스턴스를 수집하고 컬렉션별로 이러한 통계를 보고합니다.
- MongoDB 간단한 웹 페이지에 진단 및 모니터링 정보를 표시하는 웹 인터페이스를 제공합니다. 로컬 서버에서 아래 URL을 찾아 웹 관리 유틸리티를 열 수 있습니다.
http://localhost:28017
- 셸에서 serverStatus 명령 또는 db.serverStatus()를 사용하면 디스크 사용, 메모리 사용, 데이터베이스에 설정된 연결에 대한 세부 정보와 함께 데이터베이스 상태 개요가 반환됩니다. MongoDB 환경 등
MongoDB 인덱싱 및 성능 고려 사항
- 인덱스는 모든 데이터베이스에서 매우 중요하며 검색 쿼리의 효율성을 향상시키는 데 사용될 수 있습니다. MongoDB. 문서에서 지속적으로 검색을 수행하는 경우 검색 기준에 사용되는 문서 필드에 색인을 추가하는 것이 좋습니다.
- 항상 반환되는 쿼리 결과 수를 제한하십시오. 문서에 필드 이름이 2개 있지만 문서에서 필드 2개만 보고 싶다고 가정해 보겠습니다. 그런 다음 쿼리의 대상이 필요한 필드 2개만 표시하고 모든 필드가 표시되지 않는지 확인하세요.
- 특정 필드 값을 보려면 쿼리에서 해당 필드만 사용하십시오. 필요하지 않은 경우 컬렉션의 모든 필드를 쿼리하지 마세요.
구성 MongoDB Kerberos 인증 사용
인증은 시스템에 대한 클라이언트 액세스를 확인하는 반면, 인증은 클라이언트가 어떤 유형의 액세스를 갖고 있는지 확인합니다. MongoDB, 일단 시스템에 승인되면.
다양한 인증 메커니즘이 있으며, 아래는 그 중 몇 가지입니다.
MongoDB x.509 인증서를 사용한 인증
x.509 인증서를 사용하여 클라이언트 인증 – 인증서는 기본적으로 클라이언트와 클라이언트 간에 신뢰할 수 있는 서명입니다. MongoDB 서버.
따라서 서버에 연결하기 위해 사용자 이름과 비밀번호를 입력하는 대신 클라이언트와 클라이언트 간에 인증서가 전달됩니다. MongoDB 섬기는 사람. 클라이언트에는 기본적으로 서버에 인증하기 위해 서버에 전달되는 클라이언트 인증서가 있습니다. 각 클라이언트 인증서는 단일 인증서에 해당합니다. MongoDB 사용자. 그래서 각 사용자는 MongoDB 인증을 받으려면 자체 인증서가 있어야 합니다. MongoDB 서버.
이것이 작동하도록 하려면 다음 단계를 따라야 합니다.
- 유효한 인증서는 유효한 제3자 기관에서 구입하여 컴퓨터에 설치해야 합니다. MongoDB 서버.
- 클라이언트 인증서에는 다음 속성이 있어야 합니다(단일 인증 기관(CA)이 클라이언트와 서버 모두에 대한 인증서를 발급해야 함). 클라이언트 인증서에는 keyUsage 및 extendedKeyUsage 필드가 포함되어야 합니다.
- MongDB 서버에 접속하는 각 사용자는 별도의 인증서가 필요합니다.
구성 방법 MongoDB Kerberos 인증 사용
다음은 구성 단계입니다. MongoDB Kerberos 인증을 켠 상태에서 Windows:
단계 1) 구성 MongoDB Kerberos 인증을 켠 상태에서 Windows
Kerberos는 대규모 클라이언트-서버 환경에서 사용되는 인증 메커니즘입니다.
이는 암호화된 경우에만 비밀번호가 허용되는 매우 안전한 메커니즘입니다. 잘, MongoDB 기존 Kerberos 기반 시스템에 대해 인증하는 기능이 있습니다.
단계 2) mongod.exe 서버 프로세스
다음으로 mongod.exe 서버 프로세스를 시작합니다.
단계 3) mongo.exe 클라이언트 프로세스 및 연결
다음으로 mongo.exe 클라이언트 프로세스를 시작하고 MongoDB 서버.
단계 4) 사용자 추가 MongoDB
이는 기본적으로 $external 데이터베이스에 대한 Kerberos 주체 이름입니다. $external 데이터베이스는 다음을 알려주는 특수 데이터베이스입니다. MongoDB 자체 내부 시스템 대신 Kerberos 시스템에 대해 이 사용자를 인증합니다.
use $external db.createUser( { user: "user1@example.NET", roles:[ { role: "read" , db:"Marketing"} } ] }
단계 5) 명령 사용 시작
다음 명령을 사용하여 Kerberos 지원으로 mongod.exe를 시작하세요.
mongod.exe –auth –setParameter authenticationMechanisms=GSSAPI
그런 다음 이제 Kerberos 사용자 및 Kerberos 인증을 사용하여 데이터베이스에 연결할 수 있습니다.
요약
- 데이터베이스의 데이터를 안전하게 유지하려면 데이터베이스에 보안을 구현하는 것이 매우 중요합니다.
- createUser 명령을 사용하여 데이터베이스에 사용자를 생성할 수 있습니다. 특정 역할을 사용자에게 할당하여 데이터베이스 자체에 대한 특정 권한을 부여할 수 있습니다.
- 특정 데이터베이스에 대해서만 모든 데이터베이스에 대해 관리자를 추가할 수 있습니다. 이는 userAdmin 또는 userAdminAnyDatabase 역할을 부여함으로써 달성됩니다.
- 항상 백업하세요 MongoDB 재해 발생 시 데이터를 쉽게 복구할 수 있는 환경을 제공합니다.
- 항상 모니터링 MongoDB 보다 적극적으로 대응하고 문제가 발생하기 전에 확인할 수 있는 환경을 제공합니다.
- 데이터베이스에 더 나은 보안을 제공하기 위한 다양한 인증 메커니즘이 있습니다. 한 가지 예는 사용자 이름과 비밀번호를 사용하는 대신 인증서를 사용하여 사용자를 인증하는 것입니다.