์ด ๋ฌธ์ ๋ ๋น๋์นญ ๋ฐฑ์
์ ๋ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์งํด์ผ ํฉ๋๋ค. ์ด ์ํฉ์์ restic์ ์ ๋ฐฑ์
์ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์์ง๋ง ์ด์ ๋ฐฑ์
์ ํด๋
/๋ณต์ ๋ฐ/๋๋ ์์ ํ ์ ์์ต๋๋ค. ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ์ด ๋ฌธ์ ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ถ๊ฐํ์ธ์. ์ฌ์ฉ ์ฌ๋ก๊ฐ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
ํ์ฌ restic์ (๋๋ถ๋ถ) "๋ฉ์ฒญํ" ์ ์ฅ์(local, s3, b2, gcs, azure, REST ์๋ฒ --append-only
์ ์ธ)์ ์ํธ ์์ฉํฉ๋๋ค. restic์ ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๋์ด, ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์ญ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐฑ์
์ ํ์ํ๋ฏ๋ก ๋ฐฑ์๋์ ์ก์ธ์คํ๋ ๋ฐ ํ์ํ ์๊ฒฉ ์ฆ๋ช
์ด ์์ด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด, restic์ ๊ฑฐ์ ๋ชจ๋ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ ํ ์ฌํญ์ด ๊ฑฐ์ ์์ต๋๋ค. ๋จ์ ์ ๊ณต๊ฒฉ์๊ฐ ์๋ฒ์ ์ก์ธ์คํ ์ ์๊ฒ ๋๋ฉด ๋ฐฑ์๋ ์ก์ธ์ค๋ฅผ ์ํ ์๊ฒฉ ์ฆ๋ช
๊ณผ ๋๋จธ์ง ์ํธ๋ฅผ ์ฝ๊ฒ ์ถ์ถํ์ฌ ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ ์ ๊ณตํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ธฐ๋ก ๋ฐ์ดํฐ ํด๋
, ๋ฐ์ดํฐ ์์ , ์ ์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ ์ญ์ .
๋น๋์นญ ์ํธํ๋ฅผ ์ถ๊ฐํ ๋ ์ด๋ฌํ ์ํฉ์์ ๊ณต๊ฒฉ์์ ์ ์ผํ ์ฐจ์ด์ ์ ์ ์ฅ์์์ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ํด๋ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ, ํนํ ๋ชจ๋ ๋ฐ์ดํฐ ์ญ์ ๋ ์ฌ์ ํ ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ "๋น๋์นญ ์ํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ"์ด โโ์ ๋ถ๋ ์๋๋๋ค.
๋ค๋ฅธ ์์ด๋์ด๋ "๋ฉ์ฒญํ" ์ ์ฅ์์ ์ง์ ์ก์ธ์คํ์ง ์๊ณ ์ฌ์ฉ์ ์ง์ ์๋ฒ ๊ตฌํ์ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ก์ธ์คํ๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ๋์๊ณ REST ์๋ฒ์ ๋ํ --append-only
์ต์
์ ์ถ๊ฐํ์ต๋๋ค. ์ด ์ต์
์ ๋ก์ปฌ ํ๋ ๋์คํฌ์ "๋ฉ์ฒญํ" ์ ์ฅ์์ ์ก์ธ์คํ๊ธฐ ์ํ "์ด๋ํฐ"๋ก ๋ณผ ์ ์์ต๋๋ค.
์ด ์์ฝ์ ์ฒซ ๋ฒ์งธ ๋จ๋ฝ๊ณผ "์ด๋ํฐ" ๊ตฌํ์ ์ ์ผํ ์์ธ๋ rclone
๋ฐฑ์๋์
๋๋ค. ์๋ฅผ ๋ค์ด SSH( restic -o rclone.program='ssh user<strong i="15">@server</strong>'
, ํ๋ ์ฝ๋ฉ๋ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ SSH ํค์ ๋ํด .ssh/authorized_keys
์์ ForceCommand
rclone
๋ฅผ ํตํด --append-only
์ ํธ์ถ์ ์ง์ ๋ rclone
, ๋ฐ์ดํฐ๋ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
"๋ฉ์ฒญํ์ง ์์" ์ ์ฅ์๋ง ์์ผ๋ฉด ๊ณต๊ฒฉ์๊ฐ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐ ๋์์ด ๋์ง ์์ง๋ง(์ ์ด๋ ์ ์ฅ์ ํ์์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ์๋) ์ ์ฅ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฒฐ๋ก ์ ์ผ๋ก ๋ฐฑ์ ์ ์ํด restic์ ์ฌ์ฉํ๋ ์๋ฒ๋ฅผ ์ธ์ํ๋ ๊ณต๊ฒฉ์๋ก๋ถํฐ ๊ฐ์ฅ ์ ๋ฐฉ์ดํ๋ ค๋ฉด ๋ ๊ฐ์ง(๋น๋ค ์คํ ๋ฆฌ์ง ๋ฐ ๋น๋์นญ ์ํธํ)๋ฅผ ๋ชจ๋ ๊ตฌํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฅ๊ธฐ์ ์ธ ๋ชฉํ์ ๋๋ค :)
์ด์ ํ ๋ก ์ ๊ฐ๋ตํ ์์ฝ:
n
๋์นญ ํค์ ์ํธํ๋ ํค ์ ์ฅ์๋ก ๋น์ทํ ๊ฒ์ ์ป์ ์ ์์ต๋๋ค.@heipei ์ฐธ๊ณ ๋ก ์ด ํธ๋ฅผ ๊ตฌ๋ ํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
๊ฐ์ฅ ๋ถ๋ช ํ๊ณ ์๊ธํ ์ฌ์ฉ ์ฌ๋ก๋ ํ๋ก๋์ ์์คํ (๋ฐฑ์ ํด๋ผ์ด์ธํธ)์ ์นจ์ ํ์ฌ ๊ทธ๊ณณ์์ restic์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ ๊ณต๊ฒฉ์๊ฐ ๋ฐฑ์ ์ ์ง์ฐ์ง ์๋ ๊ฒ์ ๋๋ค.
๋น๋์นญ ์ํธํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ง์ผ๋ก๋ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๊ธฐ์ ์์ ์ ์๋ฒ์ ์นจ์ ํ ๊ณต๊ฒฉ์๊ฐ ์ค๋๋ ๋ฐฑ์ ์ฝํ ์ธ (๋ฉํ๋ฐ์ดํฐ์ผ ํ์๋ ์์)๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ ๊ธฐ๋ฐ์ฑ ( write-only
)์ ๋น๋์นญ ์ํธํ๋ฅผ ๊ตฌํํ์ฌ ์ด๋ฌํ ์๋๋ฆฌ์ค์์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ๊ฐ ๋ค๋ฅธ ์ง์น์
๋๋ค.
๋น๋์นญ ์ํธํ(๋ฐ ์ผํ์ฑ ์๋ช
์ฒด๊ณ)๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ด์ง ๋ฐ์ดํฐ ์ธํธ๊ฐ ๋ณ๊ฒฝ๋์ง ์์์์ ์ฆ๋ช
ํ ์ ์์ง๋ง ์์ ํ ์ ๊ฑฐ ๋๋ ๊ต์ฒด๋ฅผ ๋ง์ ์๋ ์์ต๋๋ค. ์ด๋ append-only
(์ผ๋ถ ๋ถํ์ ๊ฒฝ์ฐ read-only
์ธ ์คํ ๋ฆฌ์ง ์์คํ
์ด ํ์ํ ๋ฌธ์ ์
๋๋ค.
ssh์ ๊ฐ์ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ์ฌ *nix์์ ๊ตฌํํ๊ธฐ๊ฐ ๋น๊ต์ ๊ฐ๋จํ ์์ ์ก์ธ์ค ์ ์ด ๋๋ถ์( chmod
, chown
, chattr +i
, chattr +a
์ก์ธ์ค ์ ์ฑ
์ ๊ตฌ์ฑํฉ๋๋ค). append-only
๋ฐฑ์
์ ๊ณต๊ฒฉ์๊ฐ ์ฝ์ง ๋ชปํ๋๋ก ์ํธํํ ํ์์กฐ์ฐจ ์์ง๋ง(์๋ฅผ ๋ค์ด rsyslog
๊ฐ ์ํํ๋ ์์
์ ์ผ๋ถ์) ์ด๋ ๊ฐ์๊ธฐ ๋ฐฑ์
์๋ฒ๋ฅผ ํฅ๋ฏธ๋ก์ด ๋์์ผ๋ก ๋ง๋ค๊ณ , ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ง์ ์ฅ์น์ ๋ณต์ ํ๋ค๊ณ ํด์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ ์ ์งํ ๊ฐ๋ฅ์ฑ์ด ์ ํํ ๋์์ง์ง๋ ์์ต๋๋ค.
๋น๋์นญ ์ํธํ๋ฅผ ๊ตฌํํ๋ฉด ์ฌ๋๋ค์ด ๋ฉ์ฒญํ๊ณ ์ ๋ขฐํ ์ ์๋ ์์คํ
์์ ์ด๋ฌํ ์ข
๋ฅ์ ๋ฐฑ์
์ ์ํํ ์ ์์ต๋๋ค. restic
์ ํต์ฌ ์ค ํ๋์ธ(๊ฐ์ ๋ ์ค๋ณต ์ ๊ฑฐ ๋ฐ ๊ธฐํ ๋ชจ๋ ์ข์ ๊ธฐ๋ฅ์ ์ ์ธ) ์ด ์ค๋ช
์ด ๋ด ์์ ์ ์กฐ๊ธ ๋ ๋ช
ํํ๊ฒ ํด์ฃผ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด๊ฒ์ https://github.com/restic/restic/issues/187#issuecomment -101974306์ ์ค๋ช ๋ ๋ ๊ฐ์ง ๊ฒฝ์ฐ์ ๋ํด ๊ด์ฌ์ด ์์ต๋๋ค. ์ด ์ค๋ ๋๋ฅผ ๊ตฌ๋ ํ๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ด๋ จ: AFAIK, IAM ์๊ฒฉ ์ฆ๋ช
์ PutObject
๋ฐ GetObject
๊ถํ DeleteObject
๋ ๋ณด๋ฅํ์ฌ Amazon S3์์ append-only
๋์์ ๋ฌ์ฑํ ์ ์์ต๋๋ค PutObject
ํ๊ฐ.
๋ฐ์ดํฐ ๊ธฐ๋ฐ์ฑ ๊ณผ ๊ด๋ จํ์ฌ ๋์นญ ์ํธํ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฑํ๋ ๊ณต๊ฒฉ ์๋๋ฆฌ์ค๋ฅผ ์ธ๊ธํ๊ณ ์ถ์์ต๋๋ค.
ํผํด์๊ฐ restic
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์
์ ์ํํ๋ ์์ ์์ ๊ณต๊ฒฉ์๊ฐ ํผํด์์ ์ฌ์ฉ์ ๊ณ์ ์ ์ ์ดํ ์ ์๋ ๊ฒฝ์ฐ ๊ทธ๋ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
restic
ํค ํ์น๊ธฐ๊ทธ๋ฐ ๋ค์ ๊ณต๊ฒฉ์๋ ํผํด์์ ์์คํ ์์ ๊ณต๊ฒฉ์ ํ์ ์ ์ฆ์ ์ง์ ํ์ง ๊ฐ๋ฅ์ฑ์ ๋ฎ์ถ ์ ์์ต๋๋ค. ๊ทธ๊ฐ ์๊ฒฉ ์คํ ๋ฆฌ์ง ์์คํ ์ ๋ํ ๋ ์คํธ๋ฆญ ํค์ ์๊ฒฉ ์ฆ๋ช ์ ํ์ณค๊ธฐ ๋๋ฌธ์ ํผํด์๋ (๋ฐฑ์ ๋) ํฅํ ๋ฐ์ดํฐ๋ฅผ ๊ทธ์๊ฒ ํธ๋ฆฌํ๊ฒ ์ ๋ฌํ ๊ฒ์ ๋๋ค. ๊ณต๊ฒฉ์๋ ์๊ฒฉ ์คํ ๋ฆฌ์ง ์์คํ ์์ ๋๋๋ก ์๋ก์ด ๋ฐฑ์ ์ ๋ค์ด๋ก๋ํ๊ณ ํด๋ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์๊ฐ.
๋น๋์นญ ์ํธํ๋ ํผํด์๊ฐ ๋ฐฑ์ ์ ์คํ๋ผ์ธ์ผ๋ก ๋ณต์ํ๊ธฐ ์ํ ํค๋ฅผ ์ ์ฅํ ์ ์๋๋ก ํ์ฌ ์ด๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ: AFAIK์ ๊ด๋ จํ์ฌ IAM ์๊ฒฉ ์ฆ๋ช ์ PutObject ๋ฐ GetObject ๊ถํ๋ง ๋ถ์ฌํ๊ณ DeleteObject ๊ถํ์ ๋ณด๋ฅํ์ฌ Amazon S3์์ ์ถ๊ฐ ์ ์ฉ ๋์์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
๋ถํํ๋ PutObject
๋ ์ด์ ์ ์
๋ก๋ํ ํ์ผ์ ๋ฎ์ด์ธ ์ ์๋ ๊ถํ๋ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ ํ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ด ์๋ ์ ์์ต๋๊น?
๋น๋์นญ ์ํธํ๋ yubikey์ ๊ฐ์ OpenPGP ํค์ ์ฌ์ฉ๋ ํ์ฉํฉ๋๋ค.
์ค๋ ๋๋ restic์์ ๋น๋์นญ ์ํธํ์ ๋ํ ์ง์์ ์ํ์ง ์์ง๋ง ์ ์ฅ์์ ํค๋ฅผ ์ ์ฅํ์ง ์๋๋ก ์ง์ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๋น๋์นญ ์ํธํ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ restic์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฝ์ ์ ์๋ ๋ฅ๋ ฅ ์์ด ์ ๋ฐฑ์ ์ ์ ๋ก๋ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ์ด๋ ๋งค์ฐ ๊น๋ค๋กญ์ต๋๋ค.
๋ฐ๋ผ์ ์ ์๊ฒ๋ ๋์นญ ํค๋ฅผ ์ ํ ์์ด ์ฒ๋ฆฌํ ์ ์๊ณ ๋ณต์กํ KDF๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์ ์ฅ์์ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ ๋ก๋๋์ง ์์ผ๋ฉด ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
์ ์ฌ์ฉ ์ฌ๋ก๋ ์ฌ๋ฌ ์๋ฒ์ ์์คํ ๊ด๋ฆฌ์์ ๋๋ค.
๋น๋์นญ ๋ฐฑ์ ์ ๊ณต๊ฒฉ์๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ(๋ฐฑ์ ํฌํจ)๋ฅผ ์ ์์ ์ผ๋ก ํ๊ดด(๋๋ ๋์ฌ์จ์ด ์ํธํ)ํ๋ ์๋ฒ ์์ ์๋๋ฆฌ์ค์์ ๋ฐฑ์ ์ ๋ณดํธํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๊ฒ์ rdiff-backup์ --restrict-update-only ์ต์ ์ด ์๋ ๊ฒ๊ณผ ์ ์ฌํ ์ถ๊ฐ ์ ์ฉ ์คํ ๋ฆฌ์ง ๊ณ์ธต ๋๋ ์๋ฒ ๋ฐ๋ชฌ์ ํตํ ์๋ฒ ์ธก ์ง์์ด ํ์ํฉ๋๋ค. ํ์ฌ ์ ๋ ๋ฐฑ์ ์๋ฒ(sftp๋ฅผ ํตํด ์ก์ธ์ค)์ ์๋ ๋ฐฑ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฝ๊ธฐ ์ ์ฉ ์ค๋ ์ท์ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์์ต๋๋ค.
(์๋ง๋ ๊ด๋ จ) : ์ถ๊ฐ ์ ์ฉํ์ฌ ํตํด ๋ฆฌ๋
์ค์ ๋ฌ์ฑ ํ ์ append-only
์ ํจ๊ป ๋๋ ํ ๋ฆฌ (๋นํ์ฑํ ๋งํฌ ํด์ )์ ํ๋๊ทธ immutable
ํ์ผ์ ํ๋๊ทธ. ์ด๋ฌํ ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ ๋ช
๋ น์ ๊ฐ๊ฐ chattr +a /path/to/directory
๋ฐ chattr +i /path/to/directory/myfile01
์
๋๋ค.
์ ์ฌ์ฉ ์ฌ๋ก๋ #533 - ๋ฌด์ธ ๋ฐฑ์ ์ ๋๋ค. ๊ฑฐ๊ธฐ์ ์ธ๊ธ๋ ๋ฐ์ ๊ฐ์ด ๋น๋์นญ ์ํธํ๋ ์ด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ผ ๋ฟ์ด์ง๋ง ๋ฌธ์ ์ ๋ํ ์ฒซ ๋ฒ์งธ ๋ช ๋ฐฑํ ํด๊ฒฐ์ฑ ์ฒ๋ผ ๋ณด์ ๋๋ค.
repo๊ฐ โโ์๊ฒฉ ์๋ฒ์ ์๋ ์๋๋ฆฌ์ค์์ repo์ ๋ก์ปฌ ๋ช ๋ น๋ง ์์ด๋ฒ๋ฆฌ๊ฑฐ๋ ์ ๋ฆฌํ ์ ์์ด์ผ ํฉ๋๋ค.
๋๋จธ์ง ๋ฐฑ์ ์ ๋ณต์/๋ฐฑ์ ๊ถํ๋ง ์๋ ํด๋น ์์คํ ์ ๊ณ ์ ํค๋ก ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
repo๊ฐ โโ์๊ฒฉ ์๋ฒ์ ์๋ ์๋๋ฆฌ์ค์์ repo์ ๋ก์ปฌ ๋ช ๋ น๋ง ์์ด๋ฒ๋ฆฌ๊ฑฐ๋ ์ ๋ฆฌํ ์ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ repo ์์ค์์ ํ์ผ ์ญ์ /์์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ์ฌ ์ํํด์ผ ํฉ๋๋ค. ๋๋ restic์ด ์ด๋ฌํ ๊ถํ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ๋ค๊ณ ์๊ฐํฉ๋๋ค(์์ ํ์ง๋ ์์ต๋๋ค). ๊ฒฐ๊ตญ ๋๊ตฐ๊ฐ๋ repo ๋๋ ์ฌ์ง์ด ํค๊น์ง ์ญ์ ํ ์ ์์ผ๋ฉฐ, ๋๋จธ์ง ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ์์ ์ ํ์ฉํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์ ์ฒด repo๋ฅผ ์ธ๋ชจ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
์๋ฒ๋ฅผ ํดํนํ๋ ๋๊ตฐ๊ฐ์ ์ํด ๋ฐฑ์ ๋ฐ์ดํฐ๊ฐ ํ๊ดด๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ: rest-server๋ ์ต๊ทผ์ ์ ํํ ์ด๊ฒ์ ๋ฐฉ์งํ๋ PR https://github.com/restic/rest-server/pull/28 ์ ํตํด "์ถ๊ฐ ์ ์ฉ ๋ชจ๋"๋ฅผ ์ป์์ต๋๋ค.
์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ง์ ์์คํ ์ ๋์ผํ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฐฑ์ ํ์ฌ ๋ชจ๋ ์์คํ ์์ ์ค๋ณต ์ ๊ฑฐ์ ์ด์ ์ ์ป์ง๋ง ๊ณต๊ฒฉ์๊ฐ ๋ค๋ฅธ ์์คํ ์ ๋ฐฑ์ ์ ์ฝ์ ์ ์๋๋ก ํ๋ ํ ์์คํ (๋ฐ ๋ฐฑ์ ์คํฌ๋ฆฝํธ)์ ์ ์ถฉ์์ ๋๋ค.
๋ด๊ฐ ์ฐพ๊ณ ์๋ ๊ธฐ๋ฅ์ ์์คํ ์ด ์ฐ๊ธฐ(๋ฐฑ์ ) ๋ฐ ์ฝ๊ธฐ(๋ณต์)๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ง๋ง ์ด๋ค ๊ด๋ฆฌ๋ ํ ์ ์๋ "๋ฐฑ์ " ํค๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ค(์: ์ ๋ฆฌ, ํค ์ถ๊ฐ ๋๋ ๋ค๋ฅธ ํค, (์ฌ์ฉ์) ๋๋ $backup_key ์ ์ฐ๊ฒฐ๋์ง ์์ ์ค๋ ์ท. (๋ฐฑ์ ์๊ฐ์ ๋น๊ตํด์ ๋ถ์ฑ๋ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ ์๋ ์๊ฒ ์ง๋ง, ๋ฐ์ดํฐ์ ์กด์ฌ๋ฅผ ์ ์ ์๋ค๋ฉด ๋์๊ฒ๋ ์๊ด์์ง๋ง, ๋ด ๋ฐ์ดํฐ๋ฅผ ๋์ฌ์จ์ดํ๊ฑฐ๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ๋ฟ์ ๋๋ค.) ์์ํฉ๋๋ค. ์์ ์ ์ํธ๋ฅผ ๋กคํฌ์๋ํ ์ ์๋ ๋ฐฑ์ (์ ์ฉ) ํค ๋ณด์ ์. ๋ฐ๋ผ์ michbsd์ ์์ฒญ๊ณผ ๋ฌ๋ฆฌ ๊ถํ ์๋ ํค๊ฐ ์๋ ๋ก์ปฌ์ด ์๋ ์ปดํจํฐ์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. (SELinux๋ฅผ ๋ช ๋ ๋์ ์ฌ์ฉํด ์จ ์ ๋ ์ด์ MAC์ ์ธ๋ถํ๋ ๊ธฐ๋ฅ์ ์ข์ํฉ๋๋ค.) ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. (์์ฒด ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฃ์กํฉ๋๋ค.) ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด #RasticKillsRansomware
์ด ๊ธฐ๋ฅ์ผ๋ก #RasticKills๋์ฌ์จ์ด
์ผ๋ฐ์ ์ผ๋ก ํ ์งํฅ ๋ฐฑ์ (ํธ์ ์งํฅ ๋ฐฑ์ ๊ณผ ๋ฐ๋)์ ๋์ฌ์จ์ด๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๋ง๋์? :)
๊ฐ๋ฅํ์ง๋ง ์๊ฒฉ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๊ณ ๋ ๋ค๋ฅธ ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๋ด๊ฐ ์ค๊ณํ ๋ฐฉ๋ฒ ๋ฐฑ์ ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ๊ธฐ ์ํ ๊ฒ์ด๋ฉฐ ๋ด ํ๋ก๋์ ํ๊ฒฝ์ ์ก์ธ์คํด์๋ ์ ๋ฉ๋๋ค. ๊ธฐ๋ฅ ์์ญ์ ๋ช ํํ ๊ฒฝ๊ณ.
Restic์ ๋ฐฑ์ ์ ์ฅ์์์ ์ง์ ์๋ํ๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ Restic์ด ์๋ฃจ์ ์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ง๋ ๋น์ ์ ์ผ์ข ์ ์ค๊ฐ์ ์๋ฒ๋ก ๋ญ๊ฐ๋ฅผ ํ ์ ์์ ๊ฒ์ ๋๋ค. ํ๋ก๋์ ๋จธ์ ์์ tarball์ ์๋ฒ์ ์ ๋ก๋ํ๋๋ก ํ ๋ค์ ๋ค๋ฅธ ์์คํ ์์ tarball์ ๋ค์ด๋ก๋ํ๊ณ ์ถ์ถํ ๋ค์ ์ฝํ ์ธ ๋ฅผ ๋ก์ปฌ๋ก ๋ฐฑ์ ํ๋๋ก ํฉ๋๋ค. ์์ชฝ์ ์ค๊ฐ ์๋ฒ์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค. Restic์ ์์ ํ์ง ์๊ณ ๋ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์ํํ ์ ์์ต๋๋ค. ์์ ์ ์ฉ Restic ๋ชจ๋์ ๋ฒ๊ทธ๋ก ์ธํด ๋ฐฑ์ ์ด ์์๋ ๋ฐฑ์ ํด๋ผ์ด์ธํธ์ ์ทจ์ฝํด์ง ์ ์์ผ๋ฏ๋ก ์๋ง๋ ๋ ์์ ํ๊ณ ๊ฐ๋ ฅํ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ์ฐพ๊ณ ์๋ ๊ธฐ๋ฅ์ ์์คํ ์ด ์ฐ๊ธฐ(๋ฐฑ์ ) ๋ฐ ์ฝ๊ธฐ(๋ณต์)๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ง๋ง ์ด๋ค ๊ด๋ฆฌ๋ ํ ์ ์๋ "๋ฐฑ์ " ํค๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ค(์: ์ ๋ฆฌ, ํค ์ถ๊ฐ ๋๋ ๋ค๋ฅธ ํค, (์ฌ์ฉ์) ๋๋ $backup_key ์ ์ฐ๊ฒฐ๋์ง ์์ ์ค๋ ์ท. (๋ฐฑ์ ์๊ฐ์ ๋น๊ตํด์ ๋ถ์ฑ๋ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ ์๋ ์๊ฒ ์ง๋ง, ๋ฐ์ดํฐ์ ์กด์ฌ๋ฅผ ์ ์ ์๋ค๋ฉด ๋์๊ฒ๋ ์๊ด์์ง๋ง, ๋ด ๋ฐ์ดํฐ๋ฅผ ๋์ฌ์จ์ดํ๊ฑฐ๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ๋ฟ์ ๋๋ค.) ์์ํฉ๋๋ค. ์์ ์ ์ํธ๋ฅผ ๋กคํฌ์๋ํ ์ ์๋ ๋ฐฑ์ (์ ์ฉ) ํค ๋ณด์ ์. ๋ฐ๋ผ์ michbsd์ ์์ฒญ๊ณผ ๋ฌ๋ฆฌ ๊ถํ ์๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ์ด ์๋ ์ปดํจํฐ์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. (SELinux๋ฅผ ๋ช ๋ ๋์ ์ฌ์ฉํด ์จ ์ ๋ ์ด์ MAC์ ์ธ๋ถํ๋ ๊ธฐ๋ฅ์ ์ข์ํฉ๋๋ค.) ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. (์์ฒด ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฃ์กํฉ๋๋ค.) ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด #RasticKillsRansomware
์ด๊ฒ์ด ๋น์ ์ด ์ํ๋ ๊ฒ์ด ์๋ ์๋ ์์ง๋ง rest-server ๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค. ๊ธฐ์กด ๋ฐฑ์ ์ ์ญ์ ๋ฐ ์์ ์ ๋ฐฉ์งํ๋ ์ถ๊ฐ ์ ์ฉ ๋ชจ๋๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ๋น์ ์ด ์ํ๋ ๊ฒ์ด ์๋ ์๋ ์์ง๋ง rest-server๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค. ๊ธฐ์กด ๋ฐฑ์ ์ ์ญ์ ๋ฐ ์์ ์ ๋ฐฉ์งํ๋ ์ถ๊ฐ ์ ์ฉ ๋ชจ๋๊ฐ ์์ต๋๋ค.
๊ทธ๋ฐ๊ฒ ์๋์ง๋ ๋ชฐ๋์ต๋๋ค. NS:
์ฌ๊ธฐ์ ๋ฒ๋ฆฌ๊ณ ์ถ์ ๋ ๊ฐ์ง ๊ตฌ์กฐ์ ์์(๋ฐ ์ฝ๊ฐ ๋ค๋ฅธ ๊ณต๊ฒฉ์ ๋ชจ๋ธ)๊ฐ ์์ต๋๋ค.
ํ์ฌ restic์ (๋๋ถ๋ถ) "๋ฉ์ฒญํ" ์ ์ฅ์(local, s3, b2, gcs, azure, REST ์๋ฒ --append-only
์ ์ธ)์ ์ํธ ์์ฉํฉ๋๋ค. ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๋์ด, ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ์ญ์ ํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐฑ์
์ ํ์ํ๋ฏ๋ก ๋ฐฑ์๋์ ์ก์ธ์คํ๋ ๋ฐ ํ์ํ ์๊ฒฉ ์ฆ๋ช
์ด ์์ด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด, restic์ ๊ฑฐ์ ๋ชจ๋ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ ํ ์ฌํญ์ด ๊ฑฐ์ ์์ต๋๋ค. ๋จ์ ์ ๊ณต๊ฒฉ์๊ฐ ์๋ฒ์ ์ก์ธ์คํ ์ ์๊ฒ ๋๋ฉด ๋ฐฑ์๋ ์ก์ธ์ค๋ฅผ ์ํ ์๊ฒฉ ์ฆ๋ช
๊ณผ ๋๋จธ์ง ์ํธ๋ฅผ ์ฝ๊ฒ ์ถ์ถํ์ฌ ๋ชจ๋ ๊ฐ๋ฅ์ฑ์ ์ ๊ณตํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ธฐ๋ก ๋ฐ์ดํฐ ํด๋
, ๋ฐ์ดํฐ ์์ , ์ ์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ ์ญ์ .
๋น๋์นญ ์ํธํ๋ฅผ ์ถ๊ฐํ ๋ ์ด๋ฌํ ์ํฉ์์ ๊ณต๊ฒฉ์์ ์ ์ผํ ์ฐจ์ด์ ์ ์ ์ฅ์์์ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ํด๋ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ, ํนํ ๋ชจ๋ ๋ฐ์ดํฐ ์ญ์ ๋ ์ฌ์ ํ ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ "๋น๋์นญ ์ํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ"์ด โโ์ ๋ถ๋ ์๋๋๋ค.
๋ค๋ฅธ ์์ด๋์ด๋ "๋ฉ์ฒญํ" ์ ์ฅ์์ ์ง์ ์ก์ธ์คํ์ง ์๊ณ ์ฌ์ฉ์ ์ง์ ์๋ฒ ๊ตฌํ์ ํตํด ๊ฐ์ ์ ์ผ๋ก ์ก์ธ์คํ๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ์ด ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ๋์๊ณ REST ์๋ฒ์ ๋ํ --append-only
์ต์
์ ์ถ๊ฐํ์ต๋๋ค. ์ด ์ต์
์ ๋ก์ปฌ ํ๋ ๋์คํฌ์ "๋ฉ์ฒญํ" ์ ์ฅ์์ ์ก์ธ์คํ๊ธฐ ์ํ "์ด๋ํฐ"๋ก ๋ณผ ์ ์์ต๋๋ค. REST ์๋ฒ๊ฐ ๋ฐ๋์ ํ์ํ ๊ฒ์ ์๋์ง๋ง ์์ด๋์ด๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ ์์ ํ์ผ ๋์คํฌ๋ฆฝํฐ(์: stdin/stdout)๋ฅผ ํตํด ๋งํ๋ ๋ฐฑ์๋์ ๋ํ ํ๋กํ ์ฝ์ ์ ์ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ sftp ๋ฐฑ์๋์์ ํ๋ ๊ฒ์ฒ๋ผ ์๊ฒฉ ์์คํ
์์ SSH๋ฅผ ํตํด ์คํ๋๋ ํ๋ก๊ทธ๋จ์์ ์ด๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ฒ ๊ตฌํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์์น(๋ก์ปฌ, s3, b2 ๋ฑ)์ ์ ์ฉ๋๋ ์ ํ ์ฌํญ(์: "์ค๋๋ ๋ฐ์ดํฐ ์ฝ๊ธฐ๋ง ์ถ๊ฐ ๋๋ ์ ๋ฐ์ดํฐ ์ถ๊ฐ"๋ง ์ถ๊ฐ)์ ๊ฒฐ์ ํ ์ ์์ผ๋ฉฐ, ์ ๊ธ ํ์ผ ์ธ์๋ ์ญ์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ์ฌ์ฉ์ ๊ณ์ ๋๋ SSH ํค๋ฅผ ์ฌ์ฉํ์ฌ SSH๋ฅผ ํตํด ๋ก๊ทธ์ธํ ๋ ForceCommand
๋ฅผ ํตํด ์์ํ ์ ์์ต๋๋ค.
"๋ฉ์ฒญํ์ง ์์" ์ ์ฅ์๋ง ์์ผ๋ฉด ๊ณต๊ฒฉ์๊ฐ ์ ์ฅ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐ ๋์์ด ๋์ง ์์ง๋ง(์ ์ด๋ ์ ์ฅ์ ํ์์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ์๋) ์ ์ฅ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฒฐ๋ก ์ ์ผ๋ก ๋ฐฑ์ ์ ์ํด restic์ ์ฌ์ฉํ๋ ์๋ฒ๋ฅผ ์ธ์ํ๋ ๊ณต๊ฒฉ์๋ก๋ถํฐ ๊ฐ์ฅ ์ ๋ฐฉ์ดํ๋ ค๋ฉด ๋ ๊ฐ์ง(๋น๋ค ์คํ ๋ฆฌ์ง ๋ฐ ๋น๋์นญ ์ํธํ)๋ฅผ ๋ชจ๋ ๊ตฌํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฅ๊ธฐ์ ์ธ ๋ชฉํ์ ๋๋ค :)
์ฐพ๊ธฐ ์ฝ๋๋ก ์ด ํ ์คํธ๋ฅผ ์ด ํธ์ ์ฒซ ๋ฒ์งธ ๋๊ธ์ ๋ณต์ฌํ๊ฒ ์ต๋๋ค.
์, ์ด์ ๋ํด ๋ ์๊ฐํด ๋ณด๋ฉด ๋น๋์นญ ์ํธํ๊ฐ ์ธ์๋ฅผ ๋ฐฉ์ดํ๋ ๋ฐ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ฌด์ธ ๋ฐฑ์ (#533)์ ๋ ์ ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ ํต์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ฉํ ์ ์์ง๋ง ํ์ฌ REST ์๋ฒ๋ฅผ ํตํด ์ป์ ์ ์๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์ฅํ ์ ์์ต๋๊น? ํด๋ผ์ด์ธํธ - ์๋ฒ "๋ ์ "(์์์ ๊ฐ์ด, ๋ณด ์ ์ฉ) ํ๋กํ ์ฝ์ด์๋ค ๊ทธ๋ฆฌ๊ณ ๊ณ ๊ฐ์์ํ ๋ช ๊ฐ์ง ์ ํ์ ๊ตฌํํ ์ : ๋ค๋ฝ๋ฐฉ / ๋ณด๊ทธ ๊ทธ๋ฐ ์์ผ๋ก ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์, ์ด๊ฒ์ ForceCommand ๋ฐ "borg serve" ์ ํ ํ๋๊ทธ์ ์์กด ํฉ๋๋ค. borg ๋ฌธ์์๋ ์ด์ ๋ํ ๋ช ๊ฐ์ง
๋ฌผ๋ก ์์๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐฑ์ ์ ๋ณดํธํ๋ ๊ฐ์ฅ ์์ฐ์ค๋ฌ์ด ๋ฐฉ๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒด์ ์ผ๋ก ๋ฐฑ์ ์ ์ํํ๋๋ก ํ์ฉํ์ง ์๊ณ ๋์ ์๋ฒ๊ฐ ๋ฐฑ์ ์์ ํ์ผ์ ๊ฐ์ ธ์ค๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ๋ฐค์ ๋น์ ์ ์ปดํจํฐ์์ ๋ณธ์ง์ ๋นจ์๋ค์ ๋๋ค", ๊ทธ ์ ๋ช ํ ๋ฌธ๊ตฌ๋ฅผ ๊ธฐ์ตํ๋ ์ฌ๋๋ค์ ์ํด). borg์์๋ ์ด๋ฅผ ์ํํ๋ ์ ๋ฌธ์ํ๋๊ฑฐ๋ ์ฐ์ํ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. FAQ ๋ ์ฃผ์ ์ ๋ํ ํ ๋ก ์ผ๋ก https://github.com/borgbackup/borg/issues/900 ์ ๊ฐ๋ฆฌํต๋๋ค. ์ฌ๊ธฐ์์ ์ด๊ฒ์ #299์์ ์ถ์ ๋๋ฉฐ ์์ง ์ฌ๊ธฐ์ ์ธ๊ธ๋์ง ์์์ต๋๋ค.
๊ฐ๋จํ ๋งํด์ ๋น๋์นญ ์ํธํ ์ง์์ ์ด์ ์ ๋จ์ํ๊ฒ ์ ์งํ๊ฒ ์ต๋๋ค. ์ฆ, ์คํ์ฌ์ดํธ ํค ์ ์ฅ ๋ฐ ์๋ํ๋ ๋ฐฑ์ ์ ๋ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์์๋ ํด๋ผ์ด์ธํธ๋ฅผ ๋ณดํธํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ ํ ์ง์์ด ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฌ์ค, ๋ด ์ต์ ์ ๋ฐฑ์ ์๋ฃจ์ ์์๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐฑ์ ์ ์ค์ ์๋ฒ๋ก ํธ์ํ ๋ค์ ์ฃผ ๋ฐฑ์ ์๋ฒ์์ ์คํ์ฌ์ดํธ ์๋ฒ ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ์ด ๋ฐฉ๋ฒ:
๋๋ ์ค์ ๋ก ์ด ๋ฌธ์ ๊ฐ "ํด๋ผ์ด์ธํธ ์ธ์๋ก๋ถํฐ ๋ณดํธํ๊ณ ์ถ์ต๋๋ค"๋ก ๋ฐ๋์๋ค๋ ๊ฒ์ด ์ด์ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ์๋ง๋ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ฌธ์ ์ ์๋ฃจ์ ์ ํผ๋ํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. :)
์๋ ํ์ธ์,
์ด ๋ฌธ์ ๋ ๋น๋์นญ ์ํธํ ๋ฐฑ์
์ ๊ดํ ๊ฒ์ด ์๋๋ผ ๋ค์ํ ๊ณต๊ฒฉ ๋ฒกํฐ์ ๊ดํ ๊ฒ ๊ฐ์ต๋๋ค.
์ฝ๋๋ฅผ ์ฝ์ง ์์๊ธฐ ๋๋ฌธ์ ์ ๋ง ์์งํ ์ง๋ฌธ์ด ์์ง๋ง ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋๋ถ๋ถ ๋น๋ฐ ํค๋ฅผ ๊ณต๊ฐํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์
ํ ์ ์๋ ๊ฒ์
๋๋ค(๋ฐฑ์
์์ ์์ ์คํ๋ผ์ธ ๊ฐ์ธ ํค์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ). ํด๋น ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ ๊ตฌํํ๊ธฐ ์ฝ์ต๋๊น?
์ฃผ์ ์ ๋ํ ๋์ ์ดํด๋ ํ์ฌ ๋ชจ๋ blob์ด ๋์ผํ ํค๋ก ์ํธํ๋๊ณ ํ๋ฅญํ๊ฒ ์๋ํ๋ค๋ ๊ฒ์
๋๋ค.
OpenPGP๊ฐ ์๋ํ๋ ๋ฐฉ์์ผ๋ก ๋น๋์นญ ์ํธํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ง๋ค์ด์ง ๊ฐ ์ค๋
์ท์ ๊ณต๊ฐ ํค๋ก ์ํธํ๋ ๋์นญ ํค๋ฅผ ์์ฑํ๊ณ ์ ์ฅ์์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ์ค๋ณต ์ ๊ฑฐ ๋์๊ณผ ๋ฐฑ์
๋์์ ์ฐพ์ ์ ์์ผ๋ ค๋ฉด ๋จผ์ ์ ๋ณด๋ฅผ ์ฝ์ ์ ์์ด์ผ ํ๋ฏ๋ก ๊ฐ์ธ ํค๋ ํ์ํ๋ค๋ ๊ฒ์
๋๋ค. ๋ง๋์?
๊ทธ๋ ๋ค๋ฉด ์ง์์ด ์ ํ ์๋ ์ฆ๊ฑฐ๊ฐ ๊ทธ๋ฌํ ๋งฅ๋ฝ์์ ๋์์ด ๋ ์ ์์ต๋๊น?
@dolanor ์ด ๋ฌธ์ ์ ์๋ก์ด ์ฌ์ฉ ์ฌ๋ก๋ ์ง๋ฌธ์ ์ถ๊ฐํ์ง ๋ง์ธ์. ์ง๋ฌธ์ ํฌ๋ผ ์ ์ฌ์ฉํ์ธ์. ๋ํ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ์๋ ๋๋ฌด ์ด๋ฅด๋ค.
์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ์์ฝ์ ์
๋ฐ์ดํธํ์ต๋๋ค. ๊ทธ ๋์ rclone
๋ฐฑ์๋๊ฐ ์ถ๊ฐ๋์์ผ๋ฉฐ ์ด๋ ์์์ ์ค๋ช
ํ "์ด๋ํฐ"๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ SSH๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ต๋๋ค.
๋จ์ ์ ๊ณต๊ฒฉ์๊ฐ ์๋ฒ์ ์ก์ธ์คํ๋ฉด ๋ฐฑ์๋ ์ก์ธ์ค๋ฅผ ์ํ ์๊ฒฉ ์ฆ๋ช ๊ณผ ๋๋จธ์ง ์ํธ๋ฅผ ์ฝ๊ฒ ์ถ์ถํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ์คํ์ด๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฌ๊ธฐ ์ํธํ๋ ํค ํ์ผ ์๋ฃ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ต๋๊น? ์๋ฒ์ ์ก์ธ์คํ๋ ๊ณต๊ฒฉ์๊ฐ ์ผ๋ฐ ํ ์คํธ ์ํธ์ ์ก์ธ์คํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ค์ด ํ ์ ์๋ ์ต์ ์ ์ ์ฅ์์ ๋ํ ๋ง์คํฐ ์ํธํ ๋ฐ ์ธ์ฆ ํค๋ฅผ ํด๋ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ "์ฌ์ฉ์ ์ํธ"๋ฅผ ๋ฌด์ฐจ๋ณ ๋์ ํ๊ฑฐ๋ ์ถ์ธกํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ๋ง๋ค๋ฉด ์์ฝ์ ๋ค์ ๋ณ๊ฒฝํ์ฌ ๋ช ํํ ํ ๊ฒ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค. ๊ทธ๋ ๊ฒ ์ธ๊ธํ๋ฉด โโํ์คํ ๋๋น ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. :)
์๋ฒ์ ์ก์ธ์คํ๋ ๊ณต๊ฒฉ์๊ฐ ์ผ๋ฐ ํ ์คํธ ์ํธ์ ์ก์ธ์คํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ค์ด ํ ์ ์๋ ์ต์ ์ ์ ์ฅ์์ ๋ํ ๋ง์คํฐ ์ํธํ ๋ฐ ์ธ์ฆ ํค๋ฅผ ํด๋ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ "์ฌ์ฉ์ ์ํธ"๋ฅผ ๋ฌด์ฐจ๋ณ ๋์ ํ๊ฑฐ๋ ์ถ์ธกํ๋ ๊ฒ์ ๋๋ค.
์ ํํ ์๋๋ฆฌ์ค์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์๋์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ ๋ง์ต๋๋ค. ๋ฐ๋ฉด์ ์์ฝ๋ ์๋ ๋ฐฑ์ ์ ์ํํ๋ ๊ฒฝ์ฐ "์ฌ์ฉ์ ์ํธ"๋ ์๋ฒ์ ์ด๋๊ฐ์ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ๊ณต๊ฒฉ์๋ ์ ๋ ฅ๋ ์ํธ๋ฅผ ์ ์ถํ๋ ๊ฒ์ผ๋ก Restic ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ต์ฒดํ๊ณ ์ฌ์ฉ์๊ฐ ์ํธ๋ฅผ ์ ๋ ฅํ ๋๊น์ง ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ์์๋ ์์คํ ์ ์ ๋ขฐํ ์ ์์ต๋๋ค.
"์ฌ์ฉ์ ์ํธ"๋ ์๋ฒ์ ์ด๋๊ฐ์ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค.
"์๋ฒ"๋ "๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์คํ ์ค์ธ ์์คํ " ๋๋ "๋ฐฑ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ /์ ์ฅํ๋ ์์คํ "์ ์๋ฏธํฉ๋๊น?
๋ค์ ๋ชจํธํ๊ณ ๋ด ์ฐ๋ ค์ ์์ธ: ๋ฐฑ์ ํด๋ผ์ด์ธํธ (์ฐ๋ฆฌ๊ฐ ๋ฐฑ์ ์ค์ธ ์์คํ ์ค ์ผ๋ฐ ์คํ ์ค์)๊ฐ ์ผ๋ฐ ํ ์คํธ๋ก ๋ ์ํธ๋ฅผ ๊ฐ๊ณ ์๋ค๋ ์ฌ์ค์ ๊ฐ์์น ์์ต๋๋ค. ์ด์จ๋ ์ ์ฒด ๋ฐ์ดํฐ ์ธํธ๊ฐ ์์ผ๋ฏ๋ก ์์๋๋ฉด ๋ฐ์ดํฐ๋ ์ด์จ๋ ํํ. ํ์ง๋ง ๋ฐฑ์ ์๋ฒ ๊ฐ ์ผ๋ฐ ํ ์คํธ์ ์ก์ธ์คํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
"์๋ฒ"๋ "๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์คํ ์ค์ธ ์์คํ " ๋๋ "๋ฐฑ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ /์ ์ฅํ๋ ์์คํ "์ ์๋ฏธํฉ๋๊น?
์ฐ๋ฆฌ๊ฐ ์คํ ์ค์ธ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ๋ง ์ฌ์ฉ๋ฉ๋๋ค.
๋๋ ๋น์ ์ ์์ ์ ์์์ต๋๋ค. ๋น์ ๋ง์ด ๋ง์์, ๊ทธ๊ฒ์ ๋ชจํธํฉ๋๋ค. ๋ด๊ฐ Restic์ ๋ชจ๋ธ์ ๋ํด ์๊ณ ์๋ ๋ชจ๋ ๊ฒ์์ ์ป์ ๋์ ์ดํด๋ ๋น์ ์ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ํด ํ์ ํ์ง๋ง ๋น์ ์ด ์ํ๋ ํ์คํ ํ์ธ์ ๋๋ฆด ์๋ ์์ต๋๋ค.
์์ฝ์๋ REST ์๋ฒ์ ๋ํ --append-only
์ต์
์ด ์ธ๊ธ๋์ด ์์ต๋๋ค. ์๋ง๋ ์ด๊ฒ์ด ์ ์ผํ๊ฒ ๊ณต์์ ์ผ๋ก ๊ถ์ฅ๋๋ ์ถ๊ฐ ์ ์ฉ ๋ฐฑ์
๋ฐฉ๋ฒ์ผ๋ก ๋จ์ ์์ด์ผ ํ์ง๋ง ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ํ์
ํ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ผ๋ฐ ์์
์ ์ํด ์ฐ๊ธฐ ๊ฐ๋ฅํด์ผ ํ๋ ๋๋จธ์ง ํ์ผ์ ๋ฌธ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋ ๋ฏฟ์ต๋๋ค restic backup
์ผํ๋ ๊ฒ์ด ๊ด์ฐฎ ๊ฒฝ์ฐ data
, index
, keys
๋ฐ snapshots
ํ์ฉ ํ์ผ ์์ฑํ์ง๋ง ์์ ๋๋ ์ญ์ ( config
๋ ๋ณดํธ๋จ). ๊ทธ๋ฌ๋ locks
์ ์ฅ์๊ฐ ์๊ตฌ์ ์ผ๋ก ์ ๊ธฐ์ง ์๋๋ก ์ญ์ ๋ฅผ ํ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ์ผ๋ถ ์ถ๊ฐ ์ ์ฉ ๊ตฌํ(ext4 ๋ฐ xfs ํ์ผ ์์คํ
์ ์์ฑ๊ณผ ๊ฐ์)์ ์ฌ๊ท์ ์ด์ง ์์ผ๋ฏ๋ก data
์ 256์ ํ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋จผ์ ๋ฏธ๋ฆฌ ์์ฑํ ๋ค์ ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ด ์ง์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ค์ ์ค์ ๋ฉ๋๋ค.
S3์ ๊ฐ์ ์ผ๋ถ ๋ฐฑ์๋๋ ์ถ๊ฐ ์ ์ฉ์ ์ง์ํ์ง ์์ง๋ง ๋์ผํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ ๊ฐ์ฒด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ์ํด์๋ ์ก์ธ์ค ์ ์ด ๋ชจ๋ธ์ ์ฃผ์ ๊น๊ฒ ํ์ธํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด B2์๋ ๊ฐ์ฒด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ์ฉํ๋ ์๋ช ์ฃผ๊ธฐ ๊ท์น์ด ์์ง๋ง B2์ ๋ฐฑ์ ํ๋ ๋ฐ ํ์ํ API ํค๋ ์๋ช ์ฃผ๊ธฐ ๊ท์น์ ์์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค(B2์๋ ์์ง ๋ง์ ๊ถํ ์์คํ ์ด ์์ต๋๋ค).
์ ์ณ๋๊ณ : ๋ด๊ฐ ๋์น ๊ฒ์ด ์์ ์ ์์ง๋ง ๋น๋์นญ ์ํธํ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ์์์ํจ ๊ณต๊ฒฉ์๋ก๋ถํฐ ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๋ ๊ฒ์ด๋ผ๋ฉด ์ฐ์ ์์๊ฐ ๋ฎ์ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์์ผ๋ฉด ์ข๊ฒ ์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ด์ ๋ฒ์ ๋ณด๋ค ๋ ๊ฐ์น๊ฐ ์์ต๋๋ค(๊ฐ๋ ์ค์ํ ๊ฒ์ด ์ค์๋ก ๋ฐฑ์ , ์ญ์ ๋์ง๋ง ์ ๊ฑฐ๋์ง๋ ์์ง๋ง).
@willsALMANJ ์ข์ ๊ด์ฐฐ์ ๋๋ค. S3์ ๊ฒฝ์ฐ ์ฃผ์ด์ง ์ค๋ ์ท์ ๋ณต์ํ๋ ๋ฐ ํ์ํ Blob์ ์ผ๊ด๋ ๋ณด๊ธฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ์ด์์ ๊ธฐ ๋ฒ์ ์ ๊ธฐ๋กํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
Re: ๋ง์ง๋ง ๋จ๋ฝ:
@ fd0 ํ์๋ ๊ณต์ ๋น๋ฐ๋ก HMAC ์ฃผ์ ์ง์ ์ ์ฌ์ฉํ๋ ๋น๋์นญ ์ํธํ์ ๋ํ ์ ์ ํ ์ฒด๊ณ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ๋ฐ์ดํฐ ๋์ถ์ด ์๋ ์๋ฒ ์ธก ๊ฐ๋น์ง ์์ง์ ๋ํ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค. ๊ด์ฌ์ด ์๋์ง ํ์คํ์ง ์์ง๋ง ๊ด์ฌ์ด ์๋ค๋ฉด ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค.
์ฌ๊ธฐ์์ ๋๋ฝ๋ ๊ฒ์ด ์๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง S3 ์คํ ๋ฆฌ์ง์์ ์ด ์ ์ฑ ์ค์ ์ผ๋ก restic์ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๊ณ ์์ต๋๋ค. ๊ณต๊ฒฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ์ ๋ง์ง๋ ๋ชปํ์ง๋ง ์ญ์ ํ๋ ๊ฒ์ ๋ง์ต๋๋ค.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::kvasir"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::backup/*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::backup/locks/*"
}
]
}
๊ทธ๋ฐ ๋ค์ prune/forget ๋ช ๋ น์ ์ฐ๊ธฐ ๊ถํ์ด ์๋ ์ ๋ขฐํ ์ ์๋ ์ฅ์น์์ ์คํ๋ฉ๋๋ค. ๋ํ ๋ชจ๋ restic ์ ์ฅ์์ ๋ ๊ฐ์ ํค๋ฅผ ๋ง๋ญ๋๋ค. ํ๋๋ ์๋ฒ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ ๋ขฐํ ์ ์๋ ์ฅ์น์ฉ์ด๋ฏ๋ก ์ ๋ขฐํ ์ ์๋ ์ฅ์น๊ฐ ๊ณต๊ฒฉ์๋ฅผ ์ ๊ธ ์ ์์ต๋๋ค(๊ทธ๋ฌ๋ ๊ณต๊ฒฉ์๋ ํค/*์์ ์ญ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๊ธ ์ ์์ต๋๋ค).
ํธ์ง: ์ฃ์กํฉ๋๋ค. ์ด ๋ฌธ์ ๊ฐ ์ด๋ฏธ ๋
ผ์๋์์์ ๊ฐ๊ณผํ์ต๋๋ค. ์ด ์ค๋ ๋๋ฅผ ๊ฐ๋ก์ฑ๊ณ ์ถ์ง ์์์ต๋๋ค.
PutObject๋ ์ค์ ๋ก ๊ฐ์ฒด๋ฅผ ๋ฎ์ด์ธ ์ ์์ผ๋ฏ๋ก ๋ฐฑ์
์ ๋ณดํธํ๋ ์๋ฃจ์
์ด ์๋๋๋ค .
@freswa ์ ๋ S3 ์ ๋ฌธ๊ฐ๊ฐ ์๋๋ฏ๋ก ์ด๊ฒ์ด ์ ํํ๋ค๊ณ ํ์ ํ ์ ์์ง๋ง ์ด ํ ๋ก ์์ ์์์ ์ธ๊ธํ ์์ ์ PutObject
๊ถํ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ธ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ญ์ ํ๋ฉด์. ์์ ๋ด ๊ฒ์๋ฌผ์์ ๊ฐ์ฒด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ์ธ๊ธํ์ต๋๋ค(๋ฐฑ์
์์คํ
์ ๋ฒ์ ์ญ์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ์ง ์์).
@andrewchambers ์ ๋ ๋ค๋ฅธ ๊ฒ๋ค๋ก ์ธํด ์ฝ๊ฐ ํฉ์ธ๋ ธ์ต๋๋ค. ์ผ๋จ ์ด๊ฒ์ ์ค์ ๋ก ๊ตฌํํ๊ฒ ๋๋ฉด ์ฌ๋ฌ๋ถ์ ์์ด๋์ด์ ๋ํด ์ด์ผ๊ธฐํด ๋ด ์๋ค! ์, ๊ด์ฌ์ด ์์ต๋๋ค ;)
๋ฐ๋ผ์ ์ด ๋ฌธ์ ๋ ๋ฐฑ์๋ ์คํ ๋ฆฌ์ง์ ๋ํ ์ก์ธ์ค ๊ตฌ์ฑ์ด ์๋๋ผ (๊ฒฐ๊ตญ) ๋น๋์นญ ๋ฐฑ์ ์ ๊ตฌํํ๋ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ๊ฐ์ฌ ํด์! :)
@fd0 ์ด๊ฒ์ด ๋ด๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ค๋ช ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. https://packnback.github.io/blog/dedup_and_encryption/
@andrewchambers : ์์ง ์ฐ๊ธฐ ์ ์ฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ ๊ฒฝ์ฐ(์ฌ์ดํธ์์ ์ธ๊ธ) https://github.com/ncw/rclone/issues/2499์ ๋๋ค.
@andrewchambers ์ ์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ค์ ๊ตฌํ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ๋งค์ฐ ๊ถ๊ธํฉ๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ํฅ๋ฏธ๋ก์ด ๋ถ๋ถ์ด ๊ณต๊ฐ๋์์ต๋๋ค. :)
๋๋ ๋ฌด๋ฃ ์ํํธ์จ์ด ๋ฐฑ์ ํ๋ก๊ทธ๋จ์ ์์ญ์ ๋ ๋ค๋ฅธ ๊ฒฝ์์๊ฐ ์๋ค๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ ๋ ๋ง์ ์ต์ ์ ์ ๊ณตํ๋ ๊ฒ์ ํญ์ ์ข์ต๋๋ค!
๋ฐ๋ผ์ ๋ ๊ฐ์ง git ์ ์ฅ์ ์ํธํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ํฅ๋ฏธ๋ก์ด ๋ณ๋ ฌ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ์ชฝ์๋ git-crypt๊ฐ ์์ต๋๋ค . ์ด๊ฒ์ git smudge/clean ํํฐ ๋ฅผ ์ฌ์ฉํ์ฌ blob ์ ์ฅ์์ ์ฒดํฌ์์๋ ๋ณต์ฌ๋ณธ ์ฌ์ด์ ํ์ผ์ (๊ฐ๊ฐ) ์ํธํ/๋ณตํธํํฉ๋๋ค. ์ด๊ฒ์ ์ ์๋ํ๊ณ ์๋นํ ์ต์ ์ด์ง๋ง ํ ๊ฐ์ง ๋์ ๋๋ ๊ตฌ๋ฉ์ด ์์ต๋๋ค. git ์ปค๋ฐ ์์ฒด๋ ์ํธํ๋์ง ์๊ณ Blob์ ๋ด์ฉ๋ง ์ํธํ๋ฉ๋๋ค. ์ฆ, ํ์ผ ์ด๋ฆ, ์ปค๋ฐ ๋ก๊ทธ, ์์ฑ์, ๋ ์ง ๋ฐ ๊ธฐํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ผ๋ฐ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ ๋ง์ ์ฌ์ฉ ์ฌ๋ก์ ์ ์ฉ๋์ง ์์ผ๋ฉฐ ์ผ๋ถ ๋นํธ(์ ๋ถ๋ ์๋)๋ฅผ ์ํธํํ๋ ค๋ ๊ณต์ฉ ์ ์ฅ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ํจ๊ณผ์ ์ ๋๋ค.
๋ค๋ฅธ ์ชฝ์๋ git-remote-gcrypt๊ฐ ์์ต๋๋ค . git ์๊ฒฉ ๋์ฐ๋ฏธ ํ๋กํ ์ฝ ์ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ์ ์ก๋๋ ๋ชจ๋ ๊ฒ์ ์ํธํํฉ๋๋ค. ๊ทธ๋ฌ๋ ํน์ ์๊ฒฉ์ด ์๋ํ๋ ๋ฐฉ์์ผ๋ก ์ธํด ์ ์ฒด ์ ์ฅ์๊ฐ ์คํํ ๋๋ง๋ค ๋ค์ ์ํธํ๋๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋นํจ์จ์ ์ ๋๋ค.
์, ์ด๊ฒ๋ค์ git ํน์ ๊ตฌํ ๋ฌธ์ ์ด์ง๋ง ์ฌ๊ธฐ์์ ์ป์ ์ ์๋ ๋ฌธ์ ์ ์ ๋งคํ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์ฉ๋ฉด ๋๋ ์ฌ๊ธฐ์์ ๋ด ๊น์ด๋ฅผ ์์ ํ ๋ฒ์ด ๋ฌ๊ณ ์ด ํํ์ ์ ๊ด๋ จ์ด ์์ง๋ง ์ฌ๊ธฐ์์ ๊ด์ฌ์ด์์ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค ...
์ ์ณ๋๊ณ , ํ์ฌ (์๋ง๋) ๋ค์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ ์ค๊ฐ ์ง์ ์ด ์์ต๋๋ค. ํค๊ฐ ์ ์ฅ์ ์ธ๋ถ์ ์ ์ฅ๋๋๋ก ํ์ฉํฉ๋๋ค.
ํด๊ฒฐ๋๋ ๊ณต๊ฒฉ ๋ฒกํฐ ์ค ํ๋๋ ๊ณต๊ฒฉ์๊ฐ ํค ์ํธ๋ฅผ ์์ ๋ฃ์ ๋ค์(ํค๊ฐ ์ ์ฅ์์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์) ํค๋ฅผ ์ฝ๊ฒ ํด๋ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
ํค ํ์ผ์ด ์ ์ฅ๋๋ ๋ณ๋์ ํค ๋๋ ํ ๋ฆฌ ์ง์ ์ ํ์ฉํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์ด ๋๋ ํ ๋ฆฌ๋ ๋ฐฑ์ ์ ์ํํด์ผ ํ๋ ๊ฐ ์์คํ ์ ๋ก์ปฌ๋ก ์ ์ฅ๋ ์ ์์ผ๋ฉฐ, ์์ฒด์ ์ผ๋ก ๋ค๋ฅธ ํด๋ผ์ฐ๋ ์ ๊ณต์ ๋๋ ์ฝ๋ ์คํ๋ผ์ธ ์ ์ฅ์ ์ํ QR ์ฝ๋(~500๋ฐ์ดํธ๋ QR ์ธ์ฝ๋ฉํ๊ธฐ์ ์ถฉ๋ถํ ์์)์ ๋ฐฑ์ ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ ๊ธ๊ณ ์์.
์ํธํ๋ ํค๊ฐ ํด๋ผ์ฐ๋ ๊ณต๊ธ์์ ์ ์ดํ์ง ์์ผ๋ฉด ๊ณต๊ฒฉ ๋ฒกํฐ๊ฐ ์์ ํ ์ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค์ด ํค๋ ๋ฌผ๋ฆฌ์ ๊ตฌ๋ด์์ ์์๋๊ฑฐ๋ ๋งฌ์จ์ด๋ก ์ ์ถ๋์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ _Restic์์ ์ด๋ฏธ ์ํํ ์ ์์ต๋๋ค_ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ด ์ ์ง๋๋ ๊ฒฝ์ฐ -- rclone์ ์คํํ ๋ ์ ๋ขฐํ ์ ์๋ ์๊ฒฉ์ผ๋ก ๋๊ธฐํ๋๋ ํค ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ก์ปฌ ๋ณต์ฌ๋ณธ์ด ์๊ณ restic์ด ์ ๋ขฐํ ์ ์๋ ์๊ฒฉ ์ฅ์น์ ์ง์ ์ํธ ์์ฉํ๋ ๊ฒฝ์ฐ ์ํํ ์ _์์ต๋๋ค.
๋จ์ผ ์ฑ ์ ์์น์ ์ ์ฉํ๊ณ 2๊ฐ์ง ์์ ์ผ๋ก ๋ถ๋ฅํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ์ดํฐ ์์ ์ ๋ ๊ฐ์ง ์ธก๋ฉด์ ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ๊ทธ๋ค์ ์๋ก ์์กดํ ํ์๊ฐ ์์ต๋๋ค.
(1)์ ๊ฒฝ์ฐ "๋จ์ํ ๋น๋์นญ ์ํธํ ์ง์์ ์ถ๊ฐ"ํ ์ ์์ต๋๋ค. (2)์ ๊ฒฝ์ฐ ๊ฐ๋ฅํ ์๋ฃจ์ ์ด ๋ง์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค(์: ์์์ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ์ถ๊ฐ ์ ์ฉ S3 ์ค์ ).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น๋์นญ ์ํธํ๋ yubikey์ ๊ฐ์ OpenPGP ํค์ ์ฌ์ฉ๋ ํ์ฉํฉ๋๋ค.