Docker의 MySQL 데이터 컨테이너를 암호화합니다.
인터넷을 찾아도 정보를 거의 찾지 못해 비망록 대신 썼다.
현재 상황
우선 기존 Docker 컨테이너가 구축된 느낌입니다.
내 SQL 컨테이너는 CentOS입니다.
SQL 데이터를 다른 Docker 컨테이너로 나누고 있습니다.
하지만 데이터만 가지고 나오기는 쉽지만
만약 tar 등의 명령으로 다른 사람에게 데이터를 보유하게 한다면
안전이 걱정이야!이런 소리가 나요.
그래서 나는 데이터 부분만 암호화하는 주문을 받았다
나는 여러 번 시도했다.
원래 MySQL 암호화.
제가 많이 찾아봤는데 MySQL의 경우 기록을 삽입한 데이터 자체를 자주 암호화하는 것 같아서 이런 설명을 많이 발견했습니다.
7.11.2. 암호화 및 압축 함수
http://mysql.stu.edu.tw/doc/refman/5.1-olh/ja/encryption-functions.html
하지만 이번에는 이게 아니에요.
여러 가지 조사 결과에 의하면 이런 느낌으로 암호화하는 것이 좋다
나는 LinuxOS가 가지고 있는'자신의 일부 디렉터리만 암호화하기'수법을 사용하고 싶다.
특정 디렉토리를 암호화하려면
이해하면 간단해, 아래와 같은 느낌
그러면 다른 Docker 컨테이너에서 그 디스크 이미지를 만들면 이번 요구는 이루어질 수 있습니다.
명령
데이터 컨테이너 만들기
먼저 이미지 파일을 포함하는 용기를 만듭니다
docker run -it -v /var/lib/img/ --name crypttest_db_data busybox /bin/sh
내 SQL 컨테이너 만들기
#イメージのループバックマウントには--privilegedが必要
docker run -it --name crypttest_db2 -p 3306 --volumes-from crypttest_db_data --privileged centos /bin/bash
이곳은 주의해야 한다.리셋 장치를 사용하려면 Docker 컨테이너를 만들 때 "--privileged"옵션을 사용해야 합니다.
컨테이너 가동
docker start crypttest_db2
필요한 소프트웨어 설치
ySQL과 관련된 설치는 가능한 것으로 그 이외의 필수 소프트웨어를 넣는다.
#デバイスの暗号化ソフトウェア
yum install -y cryptsetup
#ファイルをフォーマットするソフトウェア
yum install -y e2fsprogs
ySQL이 저장된 이미지 파일 만들기
먼저 5GB를 사용하세요.
dd if=/dev/zero of=/var/lib/img/mysql.img bs=1M count=5120
유휴 회송 장치 확인
losetup -f
/dev/loop0
#loop0が空いているようです。
생성된 디스크를 다시 보내기 장치에 연결
losetup /dev/loop0 mysql.img
암호화를 위해 루프백 장치에 연결된 디스크 초기화
cryptsetup luksFormat /dev/loop0
#パスフレーズを求められるので、適当に入力してください。
암호화 및 읽기 및 쓰기 가능한 장치 파일 만들기
cryptsetup luksOpen /dev/loop0 encrypted
현재,/dev/mapper/encrypted라는 장치 파일을 만들 수 있습니다.이 장치 파일을 통해 읽고 쓰면 암호화되기 때문에 앞으로 이 장치 파일을 조작할 것입니다.장치 형식
mkfs -t ext4 /dev/mapper/encrypted
mount, 읽기와 쓰기 확인
mount -t ext4 /dev/mapper/encrypted /var/lib/mysql/
여기서 마치겠습니다.
이것이 바로 mysql입니다.현재img 파일을/var/lib/mysql에 불러올 수 있습니다.
가설, mysql.img 혼자만 어디로 갔는지 해독되지 않는다.
Mac으로 설치해 보면 이런 느낌이 든다.
Reference
이 문제에 관하여(Docker의 MySQL 데이터 컨테이너를 암호화합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kumechang/items/71f09d31fff0cc4f84f6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)