Oracle Database는 기업의 중요한 데이터를 안전하게 보호하기 위한 다양한 기능을 제공합니다. 그중에서도 TDE(Transparent Data Encryption)는 데이터베이스의 민감한 정보를 암호화하여 보호하는 효과적인 방법으로 알려져 있습니다.
본 글에서는 Oracle 19c에서 TDE를 설정하는 방법과 관련된 여러 요소들에 대해 자세히 설명하겠습니다.
TDE란 무엇인가?
TDE는 데이터베이스 내의 데이터를 암호화하여 무단 접근으로부터 보호하는 기술입니다. 데이터베이스에 저장되는 정보가 해킹이나 유출될 경우, 기업의 신뢰성에 치명적인 영향을 미칠 수 있습니다.
TDE는 이러한 위험을 최소화하기 위해 설계된 기능으로, 데이터의 기밀성을 보장합니다. TDE는 일반적으로 두 가지 방식으로 구현됩니다.
첫 번째는 테이블 스페이스 단위의 암호화이며, 두 번째는 특정 컬럼 단위의 암호화입니다. 이를 통해 사용자는 데이터베이스 내의 민감한 정보를 효과적으로 보호할 수 있습니다.
TDE의 가장 큰 장점 중 하나는 애플리케이션의 수정 없이 데이터베이스 내부에서 암호화를 수행할 수 있다는 점입니다.
TDE의 구현 방식 | 설명 |
---|---|
테이블 스페이스 단위 암호화 | 전체 테이블 스페이스 내의 데이터를 암호화합니다. |
특정 컬럼 단위 암호화 | 특정 컬럼에 저장된 민감한 데이터만을 선택적으로 암호화합니다. |
TDE 설정 준비 단계
TDE를 설정하기 위해서는 몇 가지 사전 준비가 필요합니다. 그 중 가장 중요한 것은 TDE를 위한 Wallet 경로를 생성하는 것입니다.
Wallet은 TDE 키를 저장하는 중요한 저장소로, 이곳에 저장된 키를 통해 데이터 암호화 및 복호화가 이루어집니다.
Wallet 경로 생성
Oracle Database는 TDE를 설정하기 위해 Wallet을 필요로 합니다. Wallet은 데이터 암호화에 사용되는 키를 안전하게 보호하는 역할을 합니다.
Wallet의 경로를 생성하기 위해서는 다음과 같은 명령어를 사용합니다.
sql
ALTER SYSTEM SET ENCRYPTION WALLET 'wallet_path' SCOPE=SPFILE;
여기서 wallet_path
는 사용자가 설정할 Wallet의 경로입니다. 이후에 SQL*Plus와 같은 도구를 통해 해당 경로에 Wallet을 생성할 수 있습니다.
Wallet 설정 명령어 | 설명 |
---|---|
ALTER SYSTEM SET ENCRYPTION WALLET |
Wallet의 경로를 설정합니다. |
SCOPE=SPFILE |
설정을 SPFILE에 저장합니다. |
sqlnet.ora 파일에 TDE 경로 등록
Wallet 경로를 설정한 후, sqlnet.ora
파일에 해당 경로를 등록해야 합니다. 이 파일은 데이터베이스와 클라이언트 간의 연결 설정을 포함하고 있습니다.
아래는 sqlnet.ora
파일에 TDE 경로를 등록하는 방법입니다.
plaintext
ENCRYPTION_WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = 'wallet_path')
)
)
이렇게 설정하면 Oracle Database는 해당 경로에서 Wallet을 찾게 됩니다. TDE 설정을 위해서는 이와 같은 사전 작업이 필요합니다.
sqlnet.ora 설정 항목 | 설명 |
---|---|
ENCRYPTION_WALLET_LOCATION | Wallet의 위치를 지정합니다. |
DIRECTORY | Wallet이 저장된 디렉토리의 경로입니다. |
DB 재기동 및 TDE_CONFIGURATION 설정
Wallet 경로와 sqlnet.ora 파일이 설정된 후, 데이터베이스를 재기동해야 합니다. 이 단계는 Wallet이 올바르게 적용되도록 하기 위한 필수 과정입니다.
데이터베이스를 재기동하기 위해서는 다음 명령어를 사용합니다.
sql
SHUTDOWN IMMEDIATE;
STARTUP;
재기동이 완료되면, TDE_CONFIGURATION 파라미터를 설정해야 합니다. 이 파라미터는 TDE 기능을 활성화하는 데 필요합니다.
아래와 같은 명령어로 설정할 수 있습니다.
sql
ALTER SYSTEM SET TDE_CONFIGURATION='ENABLED';
이렇게 설정하면 TDE 기능이 활성화되며, 이후부터는 데이터 암호화를 수행할 수 있게 됩니다.
DB 재기동 단계 | 설명 |
---|---|
SHUTDOWN IMMEDIATE | 데이터베이스를 즉시 종료합니다. |
STARTUP | 데이터베이스를 재시작합니다. |
Wallet Master Key 생성 및 열기
TDE를 설정하기 위해서는 Wallet Master Key를 생성해야 합니다. 이 키는 데이터 암호화 및 복호화의 근본적인 요소입니다.
Master Key를 생성하기 위해서는 다음과 같은 명령어를 사용합니다.
sql
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'wallet_path' IDENTIFIED BY 'password';
여기서 password
는 Wallet을 열기 위한 비밀번호입니다. 생성 후, Wallet 경로에 실제로 파일이 생성되었는지 확인하는 것이 필요합니다.
Wallet 열기
Wallet이 생성된 후, Wallet을 열어야 합니다. Wallet을 열기 위해서는 다음과 같은 명령어를 사용합니다.
sql
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY 'password';
Wallet을 성공적으로 열면, 이후의 암호화 작업을 진행할 수 있습니다.
Wallet Master Key 설정 | 설명 |
---|---|
CREATE KEYSTORE | Wallet을 생성합니다. |
SET KEYSTORE OPEN | Wallet을 엽니다. |
Wallet Key 백업 및 Auto Login 활성화
TDE를 설정한 후, Wallet의 백업을 수행하는 것이 필요합니다. Wallet의 백업은 데이터베이스의 보안을 강화하는 데 큰 도움이 됩니다.
다음과 같은 명령어로 백업을 수행할 수 있습니다.
sql
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE 'wallet_path' TO 'backup_path';
Wallet의 Auto Login 기능을 활성화하면, 데이터베이스가 시작될 때마다 자동으로 Wallet이 열리게 됩니다. 이를 통해 관리의 편의성을 높일 수 있습니다.
Auto Login을 활성화하기 위해서는 다음과 같은 명령어를 사용합니다.
sql
ADMINISTER KEY MANAGEMENT SET KEYSTORE AUTOLOGIN;
Wallet 관리 항목 | 설명 |
---|---|
BACKUP KEYSTORE | Wallet의 백업을 수행합니다. |
SET KEYSTORE AUTOLOGIN | 자동 로그인을 설정합니다. |
TDE 적용 확인 및 암호화 테이블 스페이스 생성
TDE 설정이 완료되면, 실제로 암호화가 잘 이루어지고 있는지 확인해야 합니다. 아래와 같은 명령어로 TDE 적용 여부를 확인할 수 있습니다.
sql
SELECT * FROM V$ENCRYPTION_KEYS;
마지막으로, 암호화된 테이블 스페이스를 생성하는 과정이 필요합니다. 이를 통해 신규 데이터가 암호화된 상태로 저장될 수 있습니다.
테이블 스페이스를 생성하기 위해서는 다음과 같은 명령어를 사용합니다.
sql
CREATE TABLESPACE encrypted_tablespace
DATAFILE 'encrypted_tablespace.dbf'
ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPTION ENCRYPTED);
이렇게 설정하면, encrypted_tablespace
라는 이름의 암호화된 테이블 스페이스가 생성됩니다.
TDE 확인 및 테이블 스페이스 생성 | 설명 |
---|---|
SELECT * FROM V$ENCRYPTION_KEYS | TDE 적용 여부를 확인합니다. |
CREATE TABLESPACE | 암호화된 테이블 스페이스를 생성합니다. |
결론
Oracle 19c에서 TDE를 설정하는 과정은 복잡할 수 있지만, 데이터베이스의 보안을 강화하는 데 매우 중요한 작업입니다. TDE를 통해 민감한 데이터를 안전하게 보호하고, 비즈니스의 신뢰성을 높일 수 있습니다.
본 글에서 설명한 단계들을 따라 TDE를 설정하고 관리함으로써, 데이터베이스의 안전성을 한층 더 높일 수 있기를 바랍니다. TDE를 통해 기업의 중요한 자산인 데이터베이스를 안전하게 지킬 수 있기를 바랍니다.