Docker의 MySQL 데이터 컨테이너를 암호화합니다.

3670 단어 MySQLDockerCentOS
너무 열광적인 요구라서 필요한지 모르겠어요.
인터넷을 찾아도 정보를 거의 찾지 못해 비망록 대신 썼다.

현재 상황


우선 기존 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가 가지고 있는'자신의 일부 디렉터리만 암호화하기'수법을 사용하고 싶다.

특정 디렉토리를 암호화하려면


이해하면 간단해, 아래와 같은 느낌
  • 디스크 이미지 파일 만들기(IMG 또는 ISO 등)
  • 암호화된 디스크 이미지 파일입니다
  • 디스크 이미지 파일을 자신에게 설치합니다
  • 가상 암호화된 외장 USB 디스크를 만들어 자신에게 설치하고 그 안에 데이터를 기록한다.
    그러면 다른 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으로 설치해 보면 이런 느낌이 든다.

    좋은 웹페이지 즐겨찾기