DB 암호화 Transparent Data Encryption (TDE)

2024. 8. 7. 15:59·데이터베이스 [DB]
목차
  1. 체크해야 할 부분
  2. TDE 적용
  3. TDE 적용시 주의사항 [주로 윈도우 서버]
  • Mariadb 가 설치 되어 있다는 가정으로 진행
  • File Key Management Encryption Plugin (파일 키 관리 암호화 플러그인) 사용

체크해야 할 부분

  • /etc/mysql 에 my.cnf 파일 있는지 확인
  • 키 파일 /etc/mysql/key.enc 에 저장
  • 암호화 키 /kms 에 저장 (kms 폴더 생성)

TDE 적용

  • 암호화에 사용할 키 생성
// Linux
$ (echo -n "1;" ; openssl rand -hex 32 ) | sudo tee -a key.src
$ (echo -n "2;" ; openssl rand -hex 32 ) | sudo tee -a key.src

// Windows
"1;$(openssl rand -hex 32)" | Out-File "C:\kms\key.src"
Add-Content "C:\kms\key.src" "2;$(openssl rand -hex 32)"
  • key.src 파일을 암호화하는 키 값을 가진 파일 생성
// Linux
$ openssl rand -hex 32 | sudo tee -a /kms/key.dec

// Windows
openssl rand -hex 32 | Out-File "C:\kms\key.dec"
  • key.dec 파일을 이용해 key.src 파일을 암호화 하여 key.enc 파일 생성
  • key.src 파일 삭제
// Linux
$ openssl enc -aes-256-cbc -md sha1 -pass file:/kms/key.dec -in key.src -out /etc/mysql/key.enc
$ rm key.src

// Windows
openssl enc -aes-256-cbc -md sha1 -pass file:"C:\kms\key.dec" -in "C:\kms\key.src" -out "C:\kms\key.enc"
  • my.cnf 파일에 아래 내용 추가
[mariadb]
plugin_dir = /usr/lib/mysql/plugin
plugin_load_add = file_key_management
file_key_management_filename = /etc/mysql/key.enc
file_key_management_filekey = FILE:/kms/key.dec
  • plugin_dir 경로는 정확한 경로 확인 필요
  • 참고로 위 내용을 적용하기 위해 플러그인이 설치 되어 있어야함 (file_key_management)
  • mysql 접속 후 플러그인이 제대로 로드되어있는지 확인
-- sql 접속
mysql -u root -p 

-- 플러그인 목록에서 file_key_management가 잘 로드되어 있는지 확인합니다.
SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME like 'file_key%';

-- file_key_management 관련 설정값을 확인합니다.
SHOW GLOBAL VARIABLES LIKE 'file_key%';
  • file_key_management 수동 설치 / 설치 경로 확인
sudo apt-get update
sudo apt-get install mariadb-plugin-file-key-management

mysql -u root -p -e "SHOW VARIABLES LIKE 'plugin_dir';"

// 해당 위치에 파일이 있는지 확인 
// 예시
ls -l /usr/lib/mysql/plugin/file_key_management.so
ls -l /usr/lib/x86_64-linux-gnu/mariadb19/plugin/file_key_management.so
  • my.cnf 설정 파일 수정
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

-- 아래 내용 추가

[mariadb]
plugin_dir = /usr/lib/mysql/plugin/
plugin_load_add = file_key_management
file_key_management_filename = /etc/mysql/key.enc
file_key_management_filekey = FILE:/kms/key.dec

innodb_encrypt_tables = FORCE
innodb_encrypt_log = ON
innodb_encrypt_temporary_tables = ON

encrypt_tmp_disk_tables = ON
encrypt_tmp_files = ON
encrypt_binlog = ON
aria_encrypt_tables = ON

innodb_encryption_threads = 4
innodb_encryption_rotation_iops = 2000
  • MariaDB 재시작
// Linux
sudo systemctl restart mariadb

// Windows
net stop MariaDB
net start MariaDB

테이블에 TDE 적용
1. 기존 테이블에 TDE 적용

ALTER TABLE existing_table ENGINE=InnoDB, ENCRYPTED=YES;

  2. TDE 적용 여부 확인

SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'testdb'

TDE 적용시 주의사항 [주로 윈도우 서버]

  • Power shell admin 에서 작업
  • 파일 형식 체크
    • type "C:\kms\key.dec”
    • key.enc 를 생성하기 전에 확인 필요
    • key.src, key.dec, key.enc 모두 ANSI 형식 이어야함
    • 다를경우 Notepad++ 에서 형식 변경 필요
저작자표시 (새창열림)

'데이터베이스 [DB]' 카테고리의 다른 글

[MariaDB] 1_데이터베이스와 DBMS란  (1) 2022.01.26
  1. 체크해야 할 부분
  2. TDE 적용
  3. TDE 적용시 주의사항 [주로 윈도우 서버]
'데이터베이스 [DB]' 카테고리의 다른 글
  • [MariaDB] 1_데이터베이스와 DBMS란
coder_
coder_
어차피 할거 즐기자
Good coder어차피 할거 즐기자
  • coder_
    Good coder
    coder_
  • 전체
    오늘
    어제
    • 분류 전체보기 (41)
      • 인공지능 [AI] (3)
      • 모의해킹 (3)
      • Git (2)
      • Cloud (4)
      • 컴퓨터 과학 [CS] (3)
      • 데이터베이스 [DB] (2)
      • Nojde.js (4)
      • Javascript (3)
      • Django (4)
      • Code up (11)
        • 코드업 기초 100제 (9)
        • 단순 반복문 (2)
      • 백준 baek_joon (1)
        • 단계별 문제풀이 (1)
      • Web Scraping (1)
  • 블로그 메뉴

    • 글쓰기
    • 관리
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    Bastion host
    Python
    nodejs
    MariaDB
    GCP
    php
    ubuntu
    ubuntu 24.04
    node.js
    모의해킹
    Lightsail
    기초 100제
    기초100제
    hugging face
    코드업
    파이썬
    Coding Test
    llama3.1
    Linux
    code up
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
coder_
DB 암호화 Transparent Data Encryption (TDE)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.