보안
공유하기:
보안
1. 인증 (Authentication)
사용자가 본인임을 증명하는 프로세스입니다.
- SCRAM-SHA-1/256: MongoDB의 기본 인증 방식 (ID/PW).
- x.509: 인증서를 사용한 상호 인증.
- LDAP / Kerberos: 기업용 중앙 집중식 인증 지원.
2. 권한 부여 (Authorization / RBAC)
사용자가 수행할 수 있는 권한을 제어합니다. (Role-Based Access Control)
주요 내장 역할 (Built-in Roles)
- read / readWrite: 데이터 읽기/쓰기 권한.
- dbAdmin / userAdmin: DB 관리 및 사용자 관리 권한.
- root: 시스템 전체의 최상위 권한.
3. 전송 중 보안 및 저장소 보안
- TLS/SSL: 클라이언트와 서버 간 전송되는 데이터를 암호화.
- Encryption at Rest: 디스크에 저장된 데이터 파일을 암호화 (Enterprise 버전 WiredTiger 전용).
4. 실습 명령어
// 관리자 사용자 생성
use admin
db.createUser({
user: "adminUser",
pwd: "password123",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
// 특정 DB 권한 사용자 생성
use myDB
db.createUser({
user: "appUser",
pwd: "password123",
roles: [{ role: "readWrite", db: "myDB" }]
})
// 현재 사용자 권한 확인
db.runCommand({ connectionStatus: 1 })5. 시험 팁 (Certification Tips)
--auth옵션이 활성화되지 않으면 외부에서 누구나 접근할 수 있다는 점을 유의하세요.localhost exception: 초기 설정 시 로컬 IP에서는 인증 없이도 첫 사용자를 생성할 수 있는 예외 조항입니다.updateUser메소드를 사용하여 기존 사용자의 역할을 변경할 수 있습니다.
6. 베스트 프랙티스
- 최소 권한 원칙(Least Privilege): 사용자가 필요한 권한만 가지도록 역할을 쪼개서 할당하세요.
- 인증 정보는 절대로 설정 파일이나 로그에 평문으로 남기지 마세요.