Invisible Safety,

Proven by Intelligence

보이지 않는 안전을 인텔리전스로 증명하다.

기술 노트
IT 산업의 변화를 이끄는 MDS인텔리전스의
기술 인사이트를 만나보세요.
사이버 보안 & 암호화
[NeoKeyManager] Oracle TDE(Transparent Data Encryption)의 암호 키 관리 ⑵ - Oracle DB의 구성
2026년 03월 09일

지난 기술 노트에서는 TDE에 대한 간단한 설명과 KMS와 oracle DB 와 TDE 기능을 통한 연동에 대해서 간략하게 소개하였습니다.


통합 키관리 솔루션을 도입함으로써 안전한 DB의 키 관리가 가능함을 알 수 있었고, 이번 포스팅에서는 oracle DB의 구성, 그리고 각 구성과 KMS(Key Mangement System)와의 연동에 대해 다루어 보려고 합니다.

먼저 지난 기술노트의 내용을 간략하게 설명드리자면, oracle TDE 기능은 각 Table의 컬럼이나 테이블 스페이스를 암호화하는 키가 존재하고 이를 안전하게 보호하기 위한 마스터키가 software 및 hardware 타입으로 보관이 가능합니다. 하지만 한국인터넷진흥원(KISA)은 암호화 키를 물리적으로 분리하여 보관하기를 권고하고 있다고 설명하였고, HSM(Hardware Security Module) 또는 KMS를 통하여 빠른 시간 안에 마이그레이션이 가능하다고 하였습니다.

그렇다면 Oracle DB의 모든 구성에 이를 적용하는 것이 가능할까요?

우선 Oracle DB는 다음과 같은 구성을 가질 수 있습니다.

1. single 구성

2. OPS 구성

3. RAC 구성

4. HA 구성

대표적으로는 이렇게 네 가지 정보를 말씀드릴 수 있습니다. 각 구성은 장단점이 존재하는데요,

먼저 oracle에서 흔히 사용하는 instance라는 것과 storage(=database)라는 용어를 이해할 필요가 있습니다.

storage실제 데이터가 저장되는 물리적인 영역을 일컫습니다.

instance란 이러한 물리적 storage 내 데이터를 입, 출력할 수 있도록 해주는 하나의 소프트웨어로 그 구성은 서버 내부의 메모리와 프로세스로 구성되어 있습니다.

DB server에서 Database가 시작되면 SGA(system Global Area)라는 공유 메모리 영역을 할당하고 여러 가지 데몬을 시작합니다.

이와 같이 SGA와 oracle 프로세스가 결합한 것을 Oracle instance라고 합니다.

실제 사용자가 database에 접근하면 마치 프로그램의 thread와 같은 개념으로 1개의 instance가 할당됩니다.

이렇게 storage는 반영구적인 저장 장치이며, instance는 소멸할 수 있는 프로세스들입니다.

사용자는 직접적으로 database에 접근할 수 없습니다. 반드시 instance를 통해서 접근해야 하며, instance는 사용자와 물리적인 database 간의 다리 역할을 해주는 개념입니다.

[그림 1] Oracle 인스턴스 구조

이제 각 구성에 대해서 간략히 알아보겠습니다.

single 구성


[그림 2] single 구성

하나의 storage에 하나의 instance가 할당되는 구성입니다.

가장 구성하기 쉬운 방식이며 상대적으로 적은 비용의 구축이 가능하지만, 장애에 취약합니다. instance 역할을 하는 서버나 storage가 장애가 발생하면 데이터를 사용할 수 없게 되는 위험이 있습니다.


OPS 구성

[그림 3] OPS & RAC 구성

하나의 storage에 2개의 instance로 구성하는 방식입니다. 하지만 storage가 하나이므로 RAC ping 이 발생할 수 있습니다.


RAC 구성

OPS의 RAC ping 문제를 개선하여 성능이 향상된 것으로, oracle 9i 버전부터는 서로 다른 instance에서 변경된 데이터를 디스크를 거치지 않고 바로 instance로 가져올 수 있는 기능 cache fusion이라는 기능을 사용할 수 있습니다.


HA 구성

[그림 4] HA 구성


똑같은 장비 두 개를 구축해서 하나는 실제 서비스(active)를 하고, 다른 하나는 대기 상태(standby)로 두는 서버 구성 방식입니다.

그래서 active 상태였던 서버가 장애가 발생하면, standby 상태의 서버가 즉시 active 상태로 바뀌어서 서비스 중단이 발생하지 않도록 조치되는 구성입니다. 다만 이 구성은 비용이 많이 들고, 장애가 발생하지 않는 한 하나의 서버는 대기 상태이므로 비효율입니다. 또한 상태가 전환되는 동안에 데이터 동기화가 일어나므로 이로 인한 문제가 발생할 수 있습니다.

▶ 각 구성에 따른 KMS와의 연동

사실상 구성에 따라 TDE 기능을 사용하는 방법이 다르지 않습니다.

이유는 서로 다른 instance라도 storage 안의 암호화된 데이터들은 구성에 따라 같은 곳을 사용하거나, 동기화가 되기 때문에 결국 같은 Table(space) key를 사용하고 있고 이는 같은 Master key로 암호화되어있기 때문에 instance가 동일한 Master key만 사용할 수 있게끔 설정하면 되기 때문입니다.

그래서 RAC, OPS 구성이나 HA 구성에서도 각각의 instance가 올라가는 서버에 KMS의 자사 PKCS#11 Provider는 각 instance에 설치가 되고 KMS와 연결이 되기만 하면 됩니다.

[그림 5] 각 구성별 KMS 연동 도식도

KMS의 자사 PKCS#11 Provider는 약간의 설정 변경만을 통해 instance 가 구동시에 자동으로 키를 동기화할 수 있어 software keystore(file wallet)를 사용할 때처럼 수동으로 복사 붙여넣기를 하지 않아도 되며, 키에 대한 정보를 웹 화면에서 쉽게 확인할 수 있습니다.

​│ 결론 │

NeoKeyManager(네오키매니저)는 통합 키 관리로 TDE 기능을 이용하여 HSM으로의 역할을 할 수 있을 뿐 아니라, 지금까지의 내용처럼 사설 인증 체계 구축, 민감한 데이터 보호 등의 다양한 역할을 할 수 있습니다.

보안과 확장성을 고려한다면, 키 관리 솔루션의 도입을 고민할 필요가 없습니다.

다양한 암호 솔루션의 통합 키 관리가 필요하다면, 국내에서 유일하게 KMIP 표준을 준수하는 NeoKeyManager와 같은 키 관리 솔루션 도입이 정답입니다!

📧 nkm_biz@mdsit.co.kr ✍️ 문의남기기