Try it First
로그인
Try it First
로그인
RealMySQL 1 : 7장 데이터 암호화
일단 해볼게
·
2024년 10월 16일
팔로우
0
RealMySQL
book
0
book
목록 보기
17/18
MySQL 5.7 부터 데이터 암호화 기능 제공
테이블 스페이스에 대해서만 제공
MySQL 8.0 부터 리두 로그, 언두 로그, 바이너리 로그 암호화 지원
MySQL 서버에서의 데이터 암호화
디스크 입출력 부분에서 암호화 처리
암호화 키는 키링 플러그인에 의해 관리
2단계 키 관리 방식
마스터 키, 테이블스페이스 키(프라이빗 키)
키 관리 솔루션에서 마스터키 가져온다.
암호화된 테이블이 생성될때마다 해당 테이블을 위한 임의의 테이블스페이스 키 발급
마스터 키를 이용해 테이블스페이스 키 암호화 후 테이블의 데이터 파일 헤더에 저장
테이블스페이스 키는 테이블이 삭제되지 않는 이상 절대 변경되지 않는다.
그러나 마스터 키는 외부 파일을 이용하기 때문에 노출될 가능성 존재
주기적으로 변경
버퍼풀에 존재하지 않는 데이터 페이지를 읽어야 하는 경우에 복호화 과정을 거친다.
복호화 시간 동안 쿼리 지연
실제 사용자 쿼리 처리 쓰레드가 아닌 MySQL 서버의 백그라운드 스레드가 수행하기 때문에 사용자의 쿼리가 지연되는 것이 아니다.
암호화와 복제
마스터와 레플리카 서버의 마스터 키는 달라야한다.
암호화 전 값이 동일하더라도 암호화된 데이터 파일은 다르다.
테이블 암호화
키링 플러그인은 마스터 키를 생성, 관리만 담당
어떤 키링 플러그인을 사용하든 암호화된 테이블을 생성하고 활용하는 방법은 모두 동일
응용 프로그램 암호화와의 비교
응용 프로그램에서 직접 암호화하고 MySQL 서버에 저장하면 인덱스 100% 활용 불가능
응용 프로그램의 암호화, MySQL 암호화 중 선택하라면 MySQL 암호화 추천
언두 로그 및 리두 로그 암호화
MySQL 8.0.16 부터 InnoDB 스토리지 엔진의 리두 로그와 언두 로그 암호화된 상태로 저장 가능
암호화 시 모든 리두, 언두 로그를 암호화 하는게 아니라 그 시점의 리두, 언두 로그를 암호화
바이너리 로그
바이너리 로그는 의도적으로 긴 시간동안 보관하는 서비스도 있다.
증분 백업을 위해 바이너리 로그를 보관하기도 한다.
mysqlbinlog 도구 활용
트랜잭션 내용을 추적하거나 백업 복구를 위해 암호화된 바이너리 로그를 평문으로 복호화할 일이 자주 발생
암호화된 바이너리 로그 파일 내용을 SQL 문장으로 풀면 직접 열어 볼 수 없다고 에러 발생
MySQL 서버가 mysql-bin.000011 로그 파일을 가지고 있다면 mysqlbinlog 도구가 MySQL 서버에 직접 접속해서 가져오는 방법이 유일
일단 해볼게
시도하고 More Do하는 백엔드 개발자입니다.
팔로우
이전 포스트
RealMySQL 1 : 6장 데이터 압축
다음 포스트
도메인 주도 개발 시작하기 : 1장 도메인 모델 시작하기
0개의 댓글
댓글 작성