인성장

[Oracle] 19c TDE 구성 방법 본문

Oracle/Admin

[Oracle] 19c TDE 구성 방법

인성장 2024. 6. 19. 16:09
19c TDE 구성 방법

 

Oracle TDE(Transparent Data Encryption)는 Enterprise Edition 기능.

12c 이후부터 TDE 구성방법이 달라졌습니다. (11gR2 까지는 ALTER SYSTEM SET ENCRYPTION~ 명령어로 TDE를 설정하였으나, 12c 부턴 ADMINISTER KEY MANAGEMENT~ 명령어로 수행)

 

1. TDE 구성 위한 Wallet 경로 생성

$ mkdir -p /{wallet_path}/wallet

 

 

2. sqlnet.ora 파일에 TDE 경로 등록

vi $ORACLE_HOME/network/admin/sqlnet.ora
ENCRYPTION_WALLET_LOCATION = (SOURCE =(METHOD = FILE)(METHOD_DATA = (DIRECTORY = /oracle12c/haisins/wallet/tde)))

* 19c에서 TDE 설정 시 tde라는 디렉토리가 자동 생성됨.

 

 

3. WALLET_ROOT parameter 설정

$ sqlplus / as sysdba
SQL> show parameter wallet_root
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
wallet_root                          string

SQL> alter system set wallet_root='/{wallet_path}/wallet' scope=spfile;

 

 

4. DB 재기동

SQL> shutdown immediate
SQL> startup

 

 

5. TDE_CONFIGURATION parameter 설정

SQL> alter system set tde_configuration="KEYSTORE_CONFIGURATION=FILE" scope=both;

 

 

6. Wallet Master Key 생성

SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/{wallet_path}/wallet/tde' IDENTIFIED BY "password";

* 생성 후, 지정한 Wallet 경로에 실제로 파일이 생성되었는지 확인

 

 

7. Wallet OPEN

SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "password";

 

 

8. Wallet Key Backup

SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "password" WITH BACKUP;

 

 

9. Wallet Auto Login 활성화

SQL> SELECT * FROM v$encryption_wallet;

SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE '/{wallet_path}/wallet/tde' IDENTIFIED BY "password";

-- TDE Auto Login 적용 위해 재기동 
SQL> shutdown immediate
SQL> startup

QL>  SELECT * FROM v$encryption_wallet;

 

 

10. TDE 적용 확인 및 암호화 테이블 스페이스 생성

SQL>  SELECT * FROM v$encryption_wallet;

QL> CREATE TABLESPACE TEST_ENCRY datafile '/oracle/app/oracle/oradata/oradb/testencry.dbf' size 2G autoextend on ENCRYPTION USING 'AES256' DEFAULT STORAGE(ENCRYPT);