데이터베이스 보안 설계
인증과 인가, 접근통제 모델, 최소 권한과 직무분리, 뷰·감사·암호화·마스킹을 서로 대체 불가능한 통제로 구분합니다. 데이터 분류부터 비운영 복제·백업·폐기까지 생명주기 전체의 보호와 검증 절차를 설계합니다.
핵심 요약
데이터베이스 보안은 하나의 기능으로 완성되지 않는다. 인증은 주체의 신원을 확인하고, 인가는 확인된 주체가 할 수 있는 행위를 결정하며, 감사는 실제 행위를 추적한다. 최소 권한·직무분리·접근통제·암호화·마스킹·감사 로그는 서로 다른 위험을 줄이는 보완 통제다.
데이터 분류 → 주체·업무 식별 → 인증 → 인가/역할 → 보호 통제
├─ 뷰·행/열 제한
├─ 암호화·마스킹
└─ 감사·이상행위 점검
학습 목표
- 인증·인가·감사와 DAC·MAC·RBAC·ABAC의 차이를 설명합니다.
- 최소 권한과 직무분리를 사용자·역할·서비스 계정에 적용합니다.
- 뷰, 암호화, 마스킹, 감사의 목적과 한계를 비교합니다.
- 운영·개발·백업·전송·폐기까지 민감 데이터 보호 설계를 판별합니다.
1. 개념 설명
1.1 보안 목표와 데이터 분류
보안 설계는 일반적으로 기밀성, 무결성, 가용성을 고려한다.
- 기밀성: 허가받지 않은 주체가 데이터를 보지 못하게 한다.
- 무결성: 비인가 또는 잘못된 변경을 방지·탐지하고 올바른 상태를 유지한다.
- 가용성: 허가된 사용자가 필요한 시점에 데이터와 기능을 사용할 수 있게 한다.
모든 데이터를 동일하게 보호하기보다 공개·내부·민감·고위험 등으로 분류하고, 개인정보·결제정보·인증정보처럼 영향이 큰 데이터에는 더 강한 통제를 적용한다. 분류 기준에는 법적 요구, 업무 영향, 유출·변조·중단 피해가 포함된다.
1.2 인증·인가·감사
| 구분 | 핵심 질문 | 대표 통제 |
|---|---|---|
| 인증(Authentication) | 누구인가? | 비밀번호, 인증서, 다요소 인증, 서비스 신원 |
| 인가(Authorization) | 무엇을 할 수 있는가? | GRANT/REVOKE, 역할, 행·열 정책, 뷰 |
| 감사(Auditing) | 무엇을 했는가? | 로그인·권한변경·조회·변경 로그, 무결성·보존 |
공용 계정은 행위자를 식별하기 어렵게 하므로 원칙적으로 개인 또는 서비스 단위의 식별 가능한 계정을 사용한다. 서비스 계정도 사람 계정과 동일하게 최소 권한, 비밀정보 교체, 사용처 식별이 필요하다.
1.3 접근통제 모델
| 모델 | 권한 결정 기준 | 장점·용도 | 주의점 |
|---|---|---|---|
| DAC(임의적 접근통제) | 객체 소유자가 권한 부여 | 유연한 공유 | 권한 확산과 재위임 통제 필요 |
| MAC(강제적 접근통제) | 보안 등급·라벨과 인가 수준 | 엄격한 기밀 분류 | 운영 복잡도와 정책 설계 필요 |
| RBAC(역할 기반) | 직무 역할에 권한 묶음 | 인사·직무와 연계, 관리 용이 | 역할 과다·누적 권한 방지 |
| ABAC(속성 기반) | 사용자·데이터·행위·시간·위치 속성 | 세밀하고 동적인 정책 | 정책 충돌·평가 성능·설명 가능성 |
DBMS별 지원 방식은 다르지만, 시험에서는 권한을 누구의 재량·등급·역할·속성으로 결정하는지 구분한다.
1.4 최소 권한과 직무분리
- 최소 권한: 업무 수행에 필요한 최소한의 객체·행위·기간만 허용한다.
- 직무분리(SoD): 한 사람이 승인·실행·감사를 모두 수행해 중요 절차를 단독으로 우회하지 못하게 한다.
- 역할 검토: 입사·이동·휴직·퇴사와 시스템 변경 시 권한을 재검토한다.
- 특권 계정 통제: DBA 등 고권한 사용은 승인, 별도 계정, 세션 기록, 비상권한 회수와 연계한다.
SELECT가 필요하다는 이유로 UPDATE, DELETE, DDL 권한까지 부여하거나, 개발 편의를 위해 운영 스키마 전체 권한을 주는 것은 최소 권한에 위배된다.
1.5 뷰·감사·암호화·마스킹
- 뷰: 필요한 행·열만 노출하는 논리 인터페이스다. 원본 객체 권한과 뷰 정의·우회 경로를 함께 통제해야 한다.
- 감사 로그: 누가 언제 어디서 어떤 객체에 어떤 행위를 했고 결과가 무엇인지 추적한다. 로그 자체의 변경 방지, 시간 동기화, 보존·검토 절차가 필요하다.
- 암호화: 저장 중·전송 중·열 단위 등 보호 위치가 다르다. 키를 암호문과 같은 위치·같은 권한으로 관리하면 효과가 약해진다. 키 생성·보관·회전·폐기·복구를 설계해야 한다.
- 마스킹: 원본 값을 가리거나 변형해 노출을 줄인다. 정적 마스킹은 비운영 복제 전에 값을 변환하고, 동적 마스킹은 조회 시 주체에 따라 표시를 바꾼다. 마스킹은 원본 접근 권한 자체를 없애는 암호화나 인가의 대체재가 아니다.
2. 구성요소와 관계
| 위험 | 1차 통제 | 보완 통제 | 검증 증거 |
|---|---|---|---|
| 퇴사자의 잔존 권한 | 계정 비활성화·권한 회수 | 정기 권한 재인증 | 계정 목록, HR 연계 로그 |
| 개발 DB의 실데이터 노출 | 정적 마스킹·부분 추출 | 네트워크 분리·접근 제한 | 마스킹 검증 결과, 샘플 비교 |
| 특권 사용자의 오남용 | 별도 특권 계정·승인 | 세션/감사 로그, 직무분리 | 승인 기록, 변경 불가 로그 |
| 백업 매체 유출 | 백업 암호화 | 키 분리·매체 반출 통제 | 복호화·복구 시험, 키 이력 |
| SQL을 통한 과도한 조회 | 역할·행/열 접근정책 | 뷰·쿼리 감사·이상탐지 | 권한 매트릭스, 조회 로그 |
3. 보안 설계 절차
- 데이터·처리 분류: 민감도, 법적 요구, 유출·변조·중단 영향을 기록한다.
- 주체와 업무 정의: 사용자, 운영자, 애플리케이션, 배치, 외부 연계의 필요한 행위를 정의한다.
- 접근통제 설계: 역할·속성·승인·직무분리와 객체·행·열 수준 권한을 매핑한다.
- 보호 통제 배치: 전송·저장·백업 암호화, 비운영 마스킹, 뷰, 감사 범위를 정한다.
- 운영 절차 설계: 계정 수명주기, 키 회전·복구, 로그 검토, 비상권한, 사고 대응을 정한다.
- 시험과 재검토: 허용·거부 테스트, 권한 우회, 복구, 로그 완전성, 퇴사·역할변경 시나리오를 검증한다.
4. 사례·텍스트 다이어그램
사례: 운영 DB를 개발 환경으로 복제
운영 DB(주민번호 원문)
└─ 잘못된 복제 → 개발 DB(공용 DBA 계정, 전체 조회 가능)
권장 흐름
운영 추출 승인 → 필요한 행·열 최소화 → 정적 마스킹 → 검증 → 개인/서비스 역할 부여 → 감사
주민번호 열만 화면에서 별표 처리해도 개발자가 원본 테이블을 직접 조회할 수 있다면 보호가 되지 않는다. 비운영 반출 전 정적 마스킹, 최소 데이터 추출, 개인별 계정·역할, 복제 작업 감사와 삭제 기한을 함께 적용해야 한다.
5. 비교와 구분
| 구분 | 암호화 | 마스킹 | 해시 | 뷰 |
|---|---|---|---|---|
| 목적 | 키 없이는 원문 해독 방지 | 노출 값을 대체·가림 | 단방향 검증·비교 | 필요한 행·열의 논리적 노출 |
| 원문 복원 | 키가 있으면 가능 | 방식에 따라 불가/제한 | 일반적으로 역변환 목적 아님 | 원본 데이터는 그대로 존재 |
| 주요 위험 | 키 관리 실패 | 재식별·일관성 훼손 | 약한 입력의 사전공격 | 우회 권한·잘못된 정의 |
| 대체 불가 통제 | 인가·감사 | 인가·암호화 | 접근통제·암호화 | 원본 객체 권한·감사 |
시험 판단 포인트
- 인증, 인가, 감사는 각각 신원 확인, 허용 행위 결정, 행위 추적이다.
- 최소 권한은 단순히 권한 수를 줄이는 것이 아니라 업무에 필요한 객체·행위·기간으로 제한하는 원칙이다.
- 직무분리는 중요 업무의 승인·실행·검증을 한 사람에게 집중시키지 않는다.
- 암호화는 키 관리와 함께 설계해야 하며, 암호화만으로 정당한 권한을 가진 사용자의 오남용을 막지는 못한다.
- 비운영 환경·백업·로그에도 민감 데이터 보호 정책을 적용한다.
자주 틀리는 부분
- RBAC의 역할을 사용자 그룹 이름 정도로만 보고 역할 누적·상충 권한을 검토하지 않는다.
- 감사 로그를 수집만 하고 무결성·보존·정기 검토를 설계하지 않는다.
- 화면 마스킹이 원본 테이블 접근까지 차단한다고 오해한다.
- 운영 DB만 보호하고 개발·테스트 복제와 백업 매체를 제외한다.
- DBA 권한은 업무상 필요하므로 최소 권한과 직무분리의 예외라고 단정한다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01[객관식] 인증과 인가의 관계로 가장 적절한 것은? ① 인증은 사용자의 권한 범위를 정하고 인가는 신원을 증명한다. ② 인증은 신원을 확인하고 인가는 허용된 행위를 결정한다. ③ 감사는 인증 전에 비밀번호를 발급하는 절차다. ④ 인가는 행위 기록을 장기 보관하는 통제다.
정답: ②
- ① 인증과 인가의 정의를 뒤바꾸었다.
- ② 인증은 ‘누구인가’, 인가는 ‘무엇을 할 수 있는가’를 결정한다.
- ③ 감사는 계정 발급이 아니라 실제 행위를 기록·검토하는 통제다.
- ④ 행위 기록 보존은 감사의 기능이며 인가의 정의가 아니다.
02[객관식] 접근통제 모델과 기준의 연결이 옳은 것은? ① DAC-보안등급 ② MAC-객체 소유자의 재량 ③ RBAC-직무 역할 ④ ABAC-정적인 사용자명만 사용
정답: ③
- ① 보안등급·라벨은 MAC의 핵심 기준이다.
- ② 객체 소유자의 재량은 DAC에 해당한다.
- ③ RBAC은 직무 역할에 권한을 묶는다.
- ④ ABAC은 사용자·데이터·행위·환경 속성을 조합할 수 있다.
03[참/거짓] “데이터를 암호화하면 권한을 가진 DBA의 과도한 조회까지 자동으로 방지되므로 감사 로그는 필요 없다.”의 참·거짓과 이유를 쓰세요.
정답: 거짓.
- 암호화는 키와 복호화 권한이 없는 주체의 원문 접근을 제한한다.
- 정당한 복호화 권한이나 DB 특권을 가진 사용자의 오남용은 최소 권한, 직무분리, 감사·이상탐지로 별도 통제해야 한다.
04[사례 판단] 운영 DB를 개발 환경에 복제하려 한다. 적용해야 할 통제 네 가지를 데이터 복제 전·후 순서로 제시하세요.
모범 답안:
- 복제 목적·범위·보존기간 승인, 2) 필요한 행·열만 추출, 3) 반출 전에 정적 마스킹 또는 합성 데이터로 변환, 4) 마스킹 검증 후 개인/서비스 역할에 최소 권한 부여, 5) 복제·조회 감사와 만료 시 삭제를 수행한다. 네 가지 이상을 순서에 맞게 제시하면 된다.
- 화면 표시만 가리는 동적 마스킹으로 원본 개발 DB를 그대로 두는 것은 충분하지 않을 수 있다.
05[설계형] 결제 승인 업무에서 한 담당자가 계정 생성, 권한 부여, 거래 승인, 감사 로그 삭제를 모두 할 수 있다. 위반된 원칙과 개선 역할 분리를 설명하세요.
모범 답안:
- 위반 원칙은 최소 권한과 직무분리이다.
- 계정·권한 관리, 거래 승인, 감사 로그 관리·검토를 상호 독립된 역할로 분리한다. 로그 삭제 권한은 제한하고 변경 방지 저장소와 별도 검토자를 둔다.
- 비상권한은 승인·시간 제한·사후 검토를 전제로 사용한다.