Skip to main content

第22章:圧縮と暗号化:持ち出すなら最低限ここまで🔒

この章は「バックアップファイルを外に持ち出す(USB・NAS・クラウド・別PCにコピー)ときに、サイズと漏洩リスクを一気に下げる」ための実戦回です💪✨ やることはシンプル👇

  • 🗜️ 圧縮:小さくして転送・保管をラクにする
  • 🔐 暗号化:盗まれても読めないようにする
  • 検証:復号できる/壊れてない、を確認する

1) まず結論:迷ったらこの2択でOK😇

A案(いちばん簡単&強い):7-Zipで暗号化アーカイブ📦🔐

  • ✅ Windowsで扱いやすい
  • ✅ AES-256 で暗号化できる
  • ファイル名も隠せる(重要)✨(-mhe=on

-mhe=on は 7z形式で有効、っていうのがポイントです。(Ask Ubuntu)

B案(クロスOSで堅い):**GPGで対称暗号(AES256)**🗝️🐧🪟

  • ✅ Linux/WSLでも強い
  • ✅ “1ファイル暗号化”の運用がしやすい
  • ✅ AES256 指定ができる (nas.nasa.gov)

2) 圧縮って何が嬉しいの?🗜️✨

  • 💾 保存容量が減る(世代管理がラク)
  • 🚀 転送が速くなる(NAS/クラウド/別PCへ)
  • 🧾 バックアップが1ファイルにまとまる(事故率が下がる)

Dockerのボリュームは「バックアップしやすい」設計なので、固めて運ぶのと相性がいいです📦(Docker Documentation)


3) “圧縮”の基本パターン🧳🗜️

パターン1:tar → gzip(いちばん無難)✅

  • 互換性が高い
  • どこでも扱える

パターン2:tar → 7z(圧縮+暗号化まで一気)🔥

  • 圧縮率が良いことが多い
  • 暗号化もまとめてできて運用がラク

4) “暗号化”で気をつけるポイント(超重要)🚫🔑

  • 🔥 暗号化しても、パスワードが弱いと終わり → 長めのランダム推奨(パスワード管理アプリに保存が最強)🧠
  • 🕵️ ファイル名が見えると情報漏れ → 7zなら -mhe=on でファイル名(ヘッダ)も暗号化できる(Ask Ubuntu)
  • 🧾 コマンドにパスワード直書きしない → 履歴・ログ・スクショに残る事故が起きがち😇

5) 実践:Dockerボリューム → 圧縮 → 暗号化(王道手順)🏗️🔐

ここでは「まず backup.tar を作る」公式の型を使って進めます。(Docker Documentation) (すでに前章で backup.tar.gz を作れてる人は、暗号化の手順だけやればOK👌)


5-1) backup.tar を作る(公式の型)📦

Docker公式ドキュメントの例はこういう形です👇(Docker Documentation)

## 例:dbstore というコンテナの /dbdata ボリュームを tar で固める
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata

5-2) 圧縮する(gzip)🗜️

WSL(またはGit Bash等)で gzip を使う例👇

gzip -9 backup.tar
## => backup.tar.gz ができる

「gzipが面倒!」なら、次の 7-Zip 案に行っちゃうのが早いです😄


5-3) 暗号化する(A案:7-Zip)📦🔐

ポイントはこれ👇

  • -p:パスワード(未指定なら入力プロンプトにできる)
  • -mhe=onファイル名も暗号化(これ大事)(Stack Overflow)
## backup.tar.gz を 7z で暗号化アーカイブ化(パスワードは対話で入力)
7z a -t7z -mx=9 -mhe=on -p backup.tar.gz.7z backup.tar.gz

✅ これで「外に持ち出すファイル」は backup.tar.gz.7z だけにできます🎉


5-4) 暗号化する(B案:GPG)🗝️🔒

GPGでAES256の対称暗号を使う例👇(暗号化→.gpg ができます)(tutonics.com)

gpg --symmetric --cipher-algo AES256 backup.tar.gz
## => backup.tar.gz.gpg ができる(パスフレーズ入力あり)

6) 仕上げの“検証”セット:復号できる?壊れてない?✅🧪

6-1) 7-Zip の復号(展開)📦

7z x backup.tar.gz.7z
## => backup.tar.gz が戻る

6-2) GPG の復号🔓

gpg -d -o backup.tar.gz backup.tar.gz.gpg

7) “壊れてないチェック”もやろう(ハッシュ)🧾✅

暗号化してても、転送ミスで壊れてると詰みます😇 なので SHA-256 を一緒に保存するのが強いです💪

PowerShell(手軽)🪟

Get-FileHash .\backup.tar.gz.7z -Algorithm SHA256

出てきた値を backup.tar.gz.7z.sha256.txt にコピペ保存しておくと、未来の自分が助かります🫶


8) よくある事故と回避テク😇🧯

❌ 事故1:パスワードをコマンドに直書きして履歴に残る

  • ✅ 回避:-p値を付けずにプロンプト入力(7z) or 対話入力(gpg)

❌ 事故2:暗号化したのに“ファイル名が丸見え”

❌ 事故3:Docker Desktopが起動しなくて慌てる

  • ✅ 回避:最悪でも「Docker Desktopのデータ(VMディスク等)を退避する」手順が公式にあります(緊急用)(Docker Documentation) ※ ただしそれは“環境丸ごと”寄りなので、この章では「プロジェクトのバックアップ」をまず固めよう、が基本方針です🧠

9) 成果物:バックアップ保管フロー🧊(テンプレ)📌

あなたのプロジェクト用に、これを README.md に貼るだけで運用品質が跳ねます✨

  • 🧰 作るもの

    • backup.tar.gz.7z(暗号化済み本体)
    • backup.tar.gz.7z.sha256.txt(整合性チェック用)
  • 🗂️ 命名ルール(例)

    • backup_YYYYMMDD_HHMM.tar.gz.7z
    • backup_YYYYMMDD_HHMM.tar.gz.7z.sha256.txt
  • 🔐 パスワード運用

    • パスワード管理アプリに保存(コピーで入力)
    • 口頭共有しない/チャットに貼らない/リポジトリに置かない😇
  • 月1の儀式(最短でOK)

    • 1個選んで復号できるか確認
    • SHA-256一致チェック
    • (できれば)別ボリュームに復元して起動確認まで🎭

10) ちょい小ワザ:AIに手伝わせるならここだけ🤖🛡️

  • ✅ 「このフォルダ構成で、バックアップ命名ルール考えて」
  • ✅ 「7zコマンドのオプション意味を短く説明して」
  • ❌ バックアップファイル本体・パスワード・鍵素材は貼らない🔒

次の第23章では、「ログもデータ」問題(保存期間どうする?)を、同じノリで“迷わない判断基準”に落としていきます🪵✨