백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. MySQL 서버의 데이터 암호화
TDE
- 스토리지 엔진의 I/O 레이어와 디스크 사이에서 암호화/복호화 수행
- 즉, 데이터 파일이 디스크에 저장될 떄 암호화되고 읽을 떄 복호화됨
- MySQL 서버에서는 테이블의 데이터가 암호화되있는지 여부를 파악할 필요 없음
2단계 키 관리
master key
- 데이터베이스 전체의 키를 관리하는 최상위 키 (데이터를 암호화는 것이 아니라, tablespace key를 암호화)
- 파일에 의해 관리되므로 보안상 주기적으로 변경해야 함
- 키 변경) ALTER INSTANCE ROTATE INNODB MASTER KEY;
tablespace key (private key)
- 각 테이블마다 개별적으로 존재하는 키
- 마스터 키에 의해 암호화됨
- 내부적으로 노출되지 않으므로 보안상 취약점이 되지 않음
키링 플러그인
- 안전한 암호화 키 관리 목적을 위해 사용함
- 마스터 키와 테이블 스페이스 키 저장 및 관리
- 암호화된 테이블 스페이스 키는 데이터 파일 헤더에 저장됨
- keyring_file: 로컬 파일에 마스터 키 저장
성능
- TDE 방식이므로, 디스크에서 읽을 떄만 복호화가 수행됨
- 버퍼 풀에 적재되지 않은 페이지를 읽어올 경우, 복호화 과정으로 인해 쿼리 처리 시간이 지연됨
AES 알고리즘
- 암호화에 사용되는 알고리즘
- 암호화 결과가 평문의 결과와 동일한 크기의 암호문을 반환함
- 즉, 암호화된다 해서 메모리 사용 효율이 떨어지지 않음
복제
- 암호화 시, 레플리카 서버의 마스터 키와 테이블 스페이스 키 값이 소스 서버와 다름
마스터 키는 복제되지 않음
- 마스터 키 자체가 레플리카로 복제되지 않음
- 각 노드는 자체적인 마스터 키를 사용해야 함
암호화된 데이터의 파일 내용이 다름
- 암호화되기 전의 값이 동일하더라도, 실제 암호화된 데이터가 저장된 데이터 파일의 내용은 완전히 달라짐
- 사용하는 키가 다름
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 9-1. 옵티마이저와 힌트: 기본 데이터 처리 (0) | 2025.03.09 |
---|---|
[Real MySQL] 7-2. 데이터 암호화: 테이블 & 로그 (0) | 2025.03.09 |
[Real MySQL] 6. 데이터 압축 (1) | 2025.03.08 |
[Real MySQL] 17-4. InnoDB 클러스터: 구축 (0) | 2024.09.07 |
[Real MySQL] 17-3. InnoDB 클러스터: MySQL (0) | 2024.09.07 |