ãã®åé¡ã¯ãé察称ããã¯ã¢ããã®ãŠãŒã¹ã±ãŒã¹ãåéããå¿
èŠããããŸãã ãã®ç¶æ³ã§ã¯ãresticã¯æ°ããããã¯ã¢ãããå¹ççã«äœæã§ããŸãããå€ãããã¯ã¢ããã埩å·å/埩å
ããã³/ãŸãã¯å€æŽããããšã¯ã§ããŸããã ãŠãŒã¹ã±ãŒã¹ãããå Žåã¯ããã®åé¡ã«è¿œå ããŠãã ããã ååãªãŠãŒã¹ã±ãŒã¹ããããšæããŸããããããšãïŒ
çŸæç¹ã§ã¯ãresticã¯ïŒã»ãšãã©ïŒããã ãã¹ãã¬ãŒãžïŒããŒã«ã«ãs3ãb2ãgcsãazureã --append-only
ã®RESTãµãŒããŒãé€ããã¹ãŠïŒãšå¯Ÿè©±ããŸãã resticã¯ãããã¯ãšã³ãã®ããŒã¿ãä¿åãäžèŠ§è¡šç€ºãååŸãããã³åé€ã§ããŸãã ããã¯ããã¯ã¢ããã«å¿
èŠã§ãããããããã¯ãšã³ãã«ã¢ã¯ã»ã¹ããããã«å¿
èŠãªè³æ Œæ
å ±ãååšããå¿
èŠããããŸãã å©ç¹ãšããŠãresticã¯ã»ãšãã©ãã¹ãŠã®ã¹ãã¬ãŒãžã䜿çšã§ããå¶éã¯ã»ãšãã©ãããŸããã æ¬ ç¹ãšããŠãæ»æè
ããµãŒããŒã«ã¢ã¯ã»ã¹ãããšãããã¯ãšã³ãã«ã¢ã¯ã»ã¹ããããã®ã¯ã¬ãã³ã·ã£ã«ãšresticãã¹ã¯ãŒããç°¡åã«æœåºããŠããªããžããªããå±¥æŽããŒã¿ã埩å·åããããŒã¿ãå€æŽãããªããžããªå
šäœãåé€ããããšãã§ããŸãã
é察称æå·åãè¿œå ããå Žåããã®ãããªç¶æ³ã§ã®æ»æè ã®å¯äžã®éãã¯ããªããžããªããå±¥æŽããŒã¿ã埩å·åã§ããªãããšã§ãã ä»ã®ãã¹ãŠãç¹ã«ãã¹ãŠã®ããŒã¿ã®åé€ã¯åŒãç¶ãå¯èœã§ãã ãããã£ãŠããé察称æå·ãè¿œå ããã ããããã¹ãŠã§ã¯ãããŸããã
ãã1ã€ã®ã¢ã€ãã¢ã¯ãããã ãã¹ãã¬ãŒãžã«çŽæ¥ã¢ã¯ã»ã¹ããã®ã§ã¯ãªããã«ã¹ã¿ã ãµãŒããŒã®å®è£
ãä»ããŠéæ¥çã«ã¢ã¯ã»ã¹ããããšã§ãã ãã®ã¢ã€ãã¢ãè©ŠããŠã¿ãŠã --append-only
ãªãã·ã§ã³ãè¿œå ããŸãããããã¯ãããŒã«ã«ããŒããã£ã¹ã¯ã®ããã ãã¹ãã¬ãŒãžã«ã¢ã¯ã»ã¹ããããã®ãã¢ããã¿ãŒããšèŠãªãããšãã§ããŸãã
ãã®èŠçŽã®æåã®æ®µèœãšãã¢ããã¿ãã®å®è£
ããã®å¯äžã®äŸå€ã¯ã rclone
ããã¯ãšã³ãã§ããããšãã°ãSSHïŒ restic -o rclone.program='ssh user<strong i="15">@server</strong>'
ãããŒãã³ãŒããããŠããïŒçµç±ã§ã¢ã¯ã»ã¹ã§ããŸãããŠãŒã¶ãŒããã°ã€ã³ããSSHããŒã®.ssh/authorized_keys
ForceCommand
rclone
ãä»ããŠrclone
ã®åŒã³åºãã§--append-only
ãæå®ãããŠããå ŽåãããŒã¿ã¯è¿œå ããããšããã§ããŸããã
ããã 以å€ã®ãã¹ãã¬ãŒãžã ãã§ã¯ãæ»æè ããªããžããªããããŒã¿ãèªã¿åãã®ãé²ãããšã¯ã§ããŸãããïŒå°ãªããšããªããžããªã®åœ¢åŒãå€æŽããã«ïŒããªããžããªå ã®ãã¹ãŠã®ããŒã¿ãåé€ããããšã¯ã§ããŸããã
ãããã£ãŠãçµè«ãšããŠãããã¯ã¢ããã«resticã䜿çšãããµãŒããŒãæ»æè ãä¹ã£åãã®ãé²ãã«ã¯ãäž¡æ¹ïŒéãã ã¹ãã¬ãŒãžãšé察称æå·ïŒãå®è£ ããå¿ èŠããããšæããŸãã ããã¯é·æçãªç®æšã§ã:)
åã®è°è«ããã®ç°¡åãªèŠçŽïŒ
n
察称éµãšæå·åãããéµã¹ãã¬ãŒãžã§å®çŸã§ããŸãã@heipeiåèãŸã§ã«ããã®å·ã賌èªããããšããå§ãããŸã
ããŠãæãæçœã§å·®ãè¿«ã£ã䜿çšäŸã¯ãæ¬çªã·ã¹ãã ïŒããã¯ã¢ããã¯ã©ã€ã¢ã³ãïŒã«äŸµå ¥ããããããresticã䜿çšããæ¹æ³ãç¥ã£ãŠããæ»æè ã«ãã£ãŠããã¯ã¢ãããæ¶å»ãããªãããšã§ãã
é察称æå·ã䜿çšããã ãã§ã¯ãããã¯ã»ãšãã©äžå¯èœã§ãã ããã§ã®ãã€ã³ãã¯ããµãŒããŒã«äŸµå ¥ããæ»æè ãå€ãããã¯ã¢ããã³ã³ãã³ãïŒå¿ ãããã¡ã¿ããŒã¿ã§ããå¿ èŠã¯ãªãïŒãå©çšã§ããªãããã«ããå¿ èŠããããšããããšã§ãã
ããŒã¿ã®æ©å¯æ§ïŒ write-only
ïŒã¯ãé察称æå·åãå®è£
ããããšã§ããããã®ã·ããªãªã§å®çŸã§ããŸãã
ããŒã¿ã®æŽåæ§ã¯ãããã«ç°ãªãç£ã§ãïŒ
é察称æå·åïŒããã³ã¯ã³ã¿ã€ã 眲åã¹ããŒã ïŒã䜿çšããŠãç¹å®ã®ããŒã¿ã»ãããå€æŽãããŠããªãããšã蚌æã§ããŸããããã®å®å
šãªåé€ãŸãã¯çœ®æãé²ãããšã¯ã§ããŸããã ããã¯ã append-only
ïŒããã³äžéšã®ããŒãã§ã¯read-only
ïŒã®ã¹ãã¬ãŒãžã·ã¹ãã ãå¿
èŠãšããåé¡ã§ãã
sshãªã©ã®ããã¯ãšã³ãã䜿çšããŠ* nixã«å®è£
ããã®ãæ¯èŒçç°¡åãªéæã¢ã¯ã»ã¹å¶åŸ¡ã®ãããã§ãïŒ chmod
ã chown
ã chattr +i
ã chattr +a
ãªã©ã®ã³ãã³ãã䜿çšïŒ append-only
ããã¯ã¢ããã¯ãæ»æè
ãèªã¿åãã®ãé²ãããã«æå·åããå¿
èŠã¯ãããŸãããïŒããšãã°ã rsyslog
æ©èœã®äžéšã§ãïŒãçªç¶ããã¯ã¢ãããµãŒããŒãèå³æ·±ãã¿ãŒã²ããã«ãªããŸããæ©å¯ããŒã¿ãããå€ãã®ããã€ã¹ã«æå·åããŠããããŒã¿ã®æ©å¯æ§ãç¶æ
é察称æå·ãå®è£
ãããšãä¿¡é Œã§ããªããã ã®ã·ã¹ãã ã§ãã®çš®ã®ããã¯ã¢ãããå®è¡ã§ããããã«ãªããŸããããã¯ã restic
ãã¹ãŠã®ããšã®1ã€ã§ãïŒéè€æé€ã®æ¹åããã®ä»ãã¹ãŠã®åªããæ©èœã¯å¥ãšããŠïŒã ãã®è©³çŽ°ãç§ã®ãã€ã³ããå°ãæ確ã«ããããšãé¡ã£ãŠããŸãã
ããã¯ã httpsïŒ //github.com/restic/restic/issues/187#issuecomment-101974306ã§èª¬æãããŠãã2ã€ã®ã±ãŒã¹ã§èå³æ·±ããã®ã§ãã ç§ã¯ãããç£èŠããããã«ãã®ã¹ã¬ããã賌èªããŠããŸãã
ããŒã¿ã®æŽåæ§ã«ã€ããŠïŒAFAIKã§ã¯ãIAMã¯ã¬ãã³ã·ã£ã«ã«PutObject
ãšGetObject
ã¢ã¯ã»ã¹èš±å¯ãä»äžããã ãã§ãAmazon S3ã§append-only
åäœãå®çŸã§ããŸããã DeleteObject
å·®ãæ§ããŸããèš±å¯ã
ããŒã¿ã®æ©å¯æ§ã«é¢ããŠã察称æå·ã䜿çšããããšã§å¯èœã«ãªãæ»æã·ããªãªã«ã€ããŠèª¬æããããšæããŸãã
æ»æè
ãrestic
ã䜿çšããŠããã¯ã¢ãããå®è¡ããæç¹ã§ãæ»æè
ã被害è
ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ããå¶åŸ¡ããŠããå Žåãæ»æè
ã¯æ¬¡ã®ããšãã§ããŸãã
restic
ããŒãçãæ»æè ã¯ã被害è ã®ã·ã¹ãã ããæ»æã®çè·¡ãå³åº§ã«æ¶å»ããŠãæ€åºã®å¯èœæ§ãäœãããããšãã§ããŸãã 圌ã¯ãªã¢ãŒãã¹ãã¬ãŒãžã·ã¹ãã ã®resticããŒãšã¯ã¬ãã³ã·ã£ã«ãçãã ã®ã§ã被害è ã¯ïŒããã¯ã¢ãããããïŒå°æ¥ã®ããŒã¿ã䟿å©ã«åœŒã«é ä¿¡ããŸããæ»æè ã¯ããªã¢ãŒãã¹ãã¬ãŒãžã·ã¹ãã ããæ°ããããã¯ã¢ãããããŠã³ããŒãããŠåŸ©å·åããã ãã§æžã¿ãŸããæéã
é察称æå·åã¯ã被害è ãããã¯ã¢ããããªãã©ã€ã³ã§åŸ©å ããããã®ããŒãä¿åã§ããããã«ããããšã§ããããé²ãã®ã«åœ¹ç«ã¡ãŸãã
ããŒã¿ã®æŽåæ§ã«ã€ããŠïŒAFAIKã§ã¯ãIAMã¯ã¬ãã³ã·ã£ã«ã«PutObjectããã³GetObjectã®ã¢ã¯ã»ã¹èš±å¯ãä»äžããã ãã§ãDeleteObjectã®ã¢ã¯ã»ã¹èš±å¯ãä¿çããããšã§ãAmazonS3ã§è¿œå ã®ã¿ã®åäœãå®çŸã§ããŸãã
æ®å¿µãªããã PutObject
ã«ã¯ã以åã«ã¢ããããŒããããã¡ã€ã«ãäžæžãããæš©éããããŸãã ããã§ãå€åããã¯å®å
šãªããŒã¿æŽåæ§ã§ã¯ãããŸãããïŒ
é察称æå·åã«ãããyubikeyãªã©ã®OpenPGPããŒã®äœ¿çšãå¯èœã«ãªããŸãã
ä»æ¥ãç§ã¯ãresticã§ã®é察称æå·åã®ãµããŒãã¯æ¬åœã«å¿ èŠã§ã¯ãªããããªããžããªã«ããŒãä¿åããªãããã«ãµããŒãããå¿ èŠãããããšã«æ°ä»ããŸããã é察称æå·åãå¹ççã«äœ¿çšããããšã¯ãresticããªããžããªãèªã¿åãæ©èœãªãã§æ°ããããã¯ã¢ãããã¢ããããŒãã§ããããšãæå³ããããšãç解ããŠããŸããããã¯éåžžã«æ³šæãå¿ èŠã§ãã
ãããã£ãŠãç§ã«ãšã£ãŠã¯ã察称éµãå¶éãªãã§åŠçã§ããã©ã®ãããªè€éãªKDFã䜿çšãããŠããŠãããªããžããªã«ã¢ããããŒããããªãã£ãå Žåã¯åé¡ãããŸããã
ç§ã®äœ¿çšäŸã¯ãå€ãã®ãµãŒããŒã®ã·ã¹ãã 管çè ã§ãã
é察称ããã¯ã¢ããã¯ãæ»æè ããã¹ãŠã®ããŒã¿ïŒããã¯ã¢ãããå«ãïŒãæªæãæã£ãŠç Žå£ïŒãŸãã¯ã©ã³ãµã ãŠã§ã¢æå·åïŒãããµãŒããŒäŸµå®³ã®ã·ããªãªã§ããã¯ã¢ãããä¿è·ããå¯äžã®æ¹æ³ã§ãã
ããã«ã¯ãrdiff-backupã«--restrict-update-onlyãªãã·ã§ã³ãããã®ãšåæ§ã«ãè¿œå å°çšã¹ãã¬ãŒãžã¬ã€ã€ãŒãŸãã¯ãµãŒããŒããŒã¢ã³ãä»ãããµãŒããŒåŽã®ãµããŒããå¿ èŠã§ãã çŸåšãããã¯ã¢ãããµãŒããŒäžã®ããã¯ã¢ãããªããžããªã®èªã¿åãå°çšã¹ãããã·ã§ããã䜿çšããŠãããåé¿ããŠããŸãïŒsftpçµç±ã§ã¢ã¯ã»ã¹ïŒã
ïŒããããé¢é£æ§ããããŸãïŒïŒLinuxã§ã¯ããã£ã¬ã¯ããªã®append-only
ãã©ã°ïŒãªã³ã¯è§£é€ãç¡å¹ã«ããïŒãšãã¡ã€ã«ã®immutable
ãã©ã°ã䜿çšããŠãè¿œå ã®ã¿ãå®è¡ã§ããŸãã ãããã®ãã©ã°ã®èšå®ãæ
åœããã³ãã³ãã¯ãããããchattr +a /path/to/directory
ãšchattr +i /path/to/directory/myfile01
ã§ãã
ããã§ã®ç§ã®äœ¿çšäŸã¯ïŒ533-ç¡äººããã¯ã¢ããã§ãã ããã«è¿°ã¹ãããŠããããã«ãé察称æå·ã¯ãããè¡ãæ¹æ³ã®1ã€ã«ãããŸããããåé¡ã«å¯Ÿããæåã®æçœãªè§£æ±ºçã®ããã§ãã
ãªããžããªããªã¢ãŒããµãŒããŒäžã«ããã·ããªãªã§ã¯ããªããžããªäžã®ããŒã«ã«ã³ãã³ãã®ã¿ãå¿ãããåé€ãããã§ããã¯ãã§ãã
Resticããã¯ã¢ããã¯ã埩å /ããã¯ã¢ããæš©éã®ã¿ãæã€ãã®ã·ã¹ãã ã®äžæã®ããŒã§æ¥ç¶ããå¿ èŠããããŸãã
ãªããžããªããªã¢ãŒããµãŒããŒäžã«ããã·ããªãªã§ã¯ããªããžããªäžã®ããŒã«ã«ã³ãã³ãã®ã¿ãå¿ãããåé€ãããã§ããã¯ãã§ãã
ããã¯ããªããžããªã¬ãã«ã§ãã¡ã€ã«ãåé€/å€æŽããããã®ã¢ã¯ã»ã¹ãå¶éããããšã«ãã£ãŠå®çŸããå¿ èŠããããŸãã ãããã®æš©éã管çããããšã¯ãresticã®ç¯å²å€ïŒãããŠå®å šã§ã¯ãªãïŒã ãšæããŸãã çµå±ã®ãšããã誰ãããªããžããªãŸãã¯ããŒãããåé€ããŠããã®ã¢ã¯ã·ã§ã³ãresticã¯ã©ã€ã¢ã³ãã«ãã£ãŠèš±å¯ãããŠãããã©ããã«é¢ä¿ãªãããªããžããªå šäœã圹ã«ç«ããªãããå¯èœæ§ããããŸãã
ãµãŒããŒããããã³ã°ãã誰ãã«ãã£ãŠããã¯ã¢ããããŒã¿ãç Žå£ãããã®ãé²ãããšã«é¢ããŠïŒrest-serverã¯æè¿ããããæ£ç¢ºã«é²ãPRhttpsïŒ//github.com/restic/rest-server/pull/28ã§ãè¿œå å°çšã¢ãŒãããååŸããŸããã
ç§ã®äœ¿çšäŸã¯ãå€ãã®ã·ã¹ãã ãåããªããžããªã«ããã¯ã¢ããããããããã¹ãŠã®ãã·ã³éã§éè€æé€ãå©çšããããšã§ããã1ã€ã®ã·ã¹ãã ïŒããã³ãã®ããã¯ã¢ããã¹ã¯ãªããïŒãå±éºã«ãããããŠãããããæ»æè ã¯ä»ã®ã·ã¹ãã ã®ããã¯ã¢ãããèªã¿åãããšãã§ããŸããã
ç§ãæ¢ããŠããæ©èœã¯ãã·ã¹ãã ãæžã蟌ã¿ïŒããã¯ã¢ããïŒãšèªã¿åãïŒåŸ©å ïŒã§ããããã«ãããã管çïŒãã«ãŒãã³ã°ãããŒã®è¿œå ããã®ä»ã®ååšã®ç¢ºèªãªã©ïŒãå®è¡ã§ããªããããã¯ã¢ãããããŒãæã€ããšã§ããããŒãïŒãŠãŒã¶ãŒïŒããŸãã¯$ backup_keyã«é¢é£ä»ããããŠããªãã¹ãããã·ã§ããïŒã ïŒããã¯ã¢ããæéãæ¯èŒããããšã§ãµã€ããã£ãã«æ»æãå¯èœãããããŸããããããŒã¿ã®ååšãå€æã§ãããã©ããã¯é¢ä¿ãããŸãããããŒã¿ãã©ã³ãµã ãŠã§ã¢åã§ãããä»ã®ãŠãŒã¶ãŒã衚瀺ã§ããªãããšã ãã§ããïŒèªåã®ãã¹ãã¬ãŒãºãããŒã«ãã©ã¯ãŒãã§ããããã«ããããã®ããã¯ã¢ããïŒã®ã¿ïŒããŒã®ææè ã ãããã£ãŠã michbsdã®èŠæ±ãšã¯ç°ãªããç¹æš©ããŒã䜿çšããŠéããŒã«ã«ãã·ã³ãã管çããããšãã§ããŸãã ïŒSELinuxãäœå¹Žã䜿çšããŠããŸããããä»ã§ã¯MACã®ç²åºŠã奜ãã§ãïŒèªãã§ãããŠããããšãã ïŒããã«ç¬èªã®åé¡ãããå Žåã¯ç³ãèš³ãããŸãããïŒãã®æ©èœã䜿çšããå Žå#ResticKillsRansomware
ãã®æ©èœã§#ResticKillsRansomware
äžè¬ã«ããã«æåã®ããã¯ã¢ããïŒããã·ã¥æåã®ããã¯ã¢ããã§ã¯ãªãïŒã¯ã©ã³ãµã ãŠã§ã¢ã解決ããŸãããïŒ :)
ããããããããããã¯ãªã¢ãŒãã¢ã¯ã»ã¹ãæäŸããå¥ã®æ»æãã¯ãã«ãè¿œå ããŸãã ããã¯ã¢ãããµãŒããŒã¯ããŒã¿ãä¿åããããã®ãã®ã§ãããæ¬çªç°å¢ã«ã¢ã¯ã»ã¹ããããšã¯ã§ããŸããã æ©èœãã¡ã€ã³ã®æ確ãªå¢çã
Resticã¯ããã¯ã¢ãããªããžããªãçŽæ¥æäœããããã«èšèšãããŠããããã解決çã§ã¯ãªããšæããŸãã
ãã¶ããããçš®ã®ä»²ä»ãµãŒããŒã§äœããããããšãã§ããŸãã ãããã¯ã·ã§ã³ãã·ã³ã«tarballããµãŒããŒã«ã¢ããããŒããããŠãããå¥ã®ã·ã¹ãã ã«tarballãããŠã³ããŒãããŠæœåºããã³ã³ãã³ããããŒã«ã«ã«ããã¯ã¢ãããããŸãã ã©ã¡ãã®åŽããäžéãµãŒããŒã«ã®ã¿ã¢ã¯ã»ã¹ã§ããŸãã ããã¯ãResticãå€æŽããã«è¡ãã®ã¯ããªãç°¡åã§ãã åä¿¡å°çšã®Resticã¢ãŒãã«ãã°ããããšãããã¯ã¢ããã䟵害ãããããã¯ã¢ããã¯ã©ã€ã¢ã³ãã«å¯ŸããŠè匱ã«ãªãå¯èœæ§ããããããããããããå®å šã§å ç¢ã«ãªããŸãã
ç§ãæ¢ããŠããæ©èœã¯ãã·ã¹ãã ãæžã蟌ã¿ïŒããã¯ã¢ããïŒãšèªã¿åãïŒåŸ©å ïŒã§ããããã«ãããã管çïŒãã«ãŒãã³ã°ãããŒã®è¿œå ããã®ä»ã®ååšã®ç¢ºèªãªã©ïŒãå®è¡ã§ããªããããã¯ã¢ãããããŒãæã€ããšã§ããããŒãïŒãŠãŒã¶ãŒïŒããŸãã¯$ backup_keyã«é¢é£ä»ããããŠããªãã¹ãããã·ã§ããïŒã ïŒããã¯ã¢ããæéãæ¯èŒããããšã§ãµã€ããã£ãã«æ»æãå¯èœãããããŸããããããŒã¿ã®ååšãå€æã§ãããã©ããã¯é¢ä¿ãããŸãããããŒã¿ãã©ã³ãµã ãŠã§ã¢åã§ãããä»ã®ãŠãŒã¶ãŒã衚瀺ã§ããªãããšã ãã§ããïŒèªåã®ãã¹ãã¬ãŒãºãããŒã«ãã©ã¯ãŒãã§ããããã«ããããã®ããã¯ã¢ããïŒã®ã¿ïŒããŒã®ææè ã ãããã£ãŠãmichbsdã®èŠæ±ãšã¯ç°ãªããç¹æš©ããŒã䜿çšããŠéããŒã«ã«ãã·ã³ãã管çããããšãã§ããŸãã ïŒSELinuxãäœå¹Žã䜿çšããŠããŸããããä»ã§ã¯MACã®ç²åºŠã奜ãã§ãïŒèªãã§ãããŠããããšãã ïŒããã«ç¬èªã®åé¡ãããå Žåã¯ç³ãèš³ãããŸãããïŒãã®æ©èœã䜿çšããå Žå#ResticKillsRansomware
ããã¯ããªããæ±ããŠãããã®ãšæ£ç¢ºã«ã¯äžèŽããªããããããŸãããã rest-serverãèŠãããšãã§ã
ããã¯ããªããæ±ããŠãããã®ãšæ£ç¢ºã«ã¯äžèŽããªããããããŸããããrest-serverãèŠãããšãã§ããŸãã æ¢åã®ããã¯ã¢ããã®åé€ãšå€æŽãé²ãè¿œå å°çšã¢ãŒãããããŸãã
ç§ã¯ãããååšããããšã«ããæ°ã¥ããŠããŸããã§ããã NSïŒ
ããã«ãã³ãããã2ã€ã®æ§é çãªãã®ïŒããã³ãããã«ç°ãªãæ»æè ã¢ãã«ïŒããããŸãã
çŸæç¹ã§ã¯ãresticã¯ïŒã»ãšãã©ïŒããã ãã¹ãã¬ãŒãžïŒããŒã«ã«ãs3ãb2ãgcsãazureã --append-only
ã®RESTãµãŒããŒãé€ããã¹ãŠïŒãšå¯Ÿè©±ããŸãã ããã¯ãšã³ãã§ããŒã¿ãä¿åãäžèŠ§è¡šç€ºãååŸãåé€ã§ããŸãã ããã¯ããã¯ã¢ããã«å¿
èŠã§ãããããããã¯ãšã³ãã«ã¢ã¯ã»ã¹ããããã«å¿
èŠãªè³æ Œæ
å ±ãååšããå¿
èŠããããŸãã å©ç¹ãšããŠãresticã¯ã»ãšãã©ãã¹ãŠã®ã¹ãã¬ãŒãžã䜿çšã§ããå¶éã¯ã»ãšãã©ãããŸããã æ¬ ç¹ãšããŠãæ»æè
ããµãŒããŒã«ã¢ã¯ã»ã¹ãããšãããã¯ãšã³ãã«ã¢ã¯ã»ã¹ããããã®ã¯ã¬ãã³ã·ã£ã«ãšresticãã¹ã¯ãŒããç°¡åã«æœåºããŠããªããžããªããå±¥æŽããŒã¿ã埩å·åããããŒã¿ãå€æŽãããªããžããªå
šäœãåé€ããããšãã§ããŸãã
é察称æå·åãè¿œå ããå Žåããã®ãããªç¶æ³ã§ã®æ»æè ã®å¯äžã®éãã¯ããªããžããªããå±¥æŽããŒã¿ã埩å·åã§ããªãããšã§ãã ä»ã®ãã¹ãŠãç¹ã«ãã¹ãŠã®ããŒã¿ã®åé€ã¯åŒãç¶ãå¯èœã§ãã ãããã£ãŠããé察称æå·ãè¿œå ããã ããããã¹ãŠã§ã¯ãããŸããã
ãã1ã€ã®ã¢ã€ãã¢ã¯ãããã ãã¹ãã¬ãŒãžã«çŽæ¥ã¢ã¯ã»ã¹ããã®ã§ã¯ãªããã«ã¹ã¿ã ãµãŒããŒã®å®è£
ãä»ããŠéæ¥çã«ã¢ã¯ã»ã¹ããããšã§ãã ãã®ã¢ã€ãã¢ãè©ŠããŠã¿ãŠã --append-only
ãªãã·ã§ã³ãè¿œå ããŸãããããã¯ãããŒã«ã«ããŒããã£ã¹ã¯ã®ããã ãã¹ãã¬ãŒãžã«ã¢ã¯ã»ã¹ããããã®ãã¢ããã¿ãŒããšèŠãªãããšãã§ããŸãã å¿
ãããRESTãµãŒããŒã䜿çšããå¿
èŠã¯ãããŸãããããã®ã¢ã€ãã¢ãæ¹åããæ¹æ³ã«ã€ããŠããã€ãã®ã¢ã€ãã¢ããããŸãã
ããšãã°ãstdin / stdoutãªã©ã®ãã¡ã€ã«èšè¿°åã®ãã¢ãä»ããŠè©±ãããããã¯ãšã³ãã®ãããã³ã«ãå®çŸ©ããããšæããŸãã 次ã«ãsftpããã¯ãšã³ãã®å Žåãšåãããã«ããªã¢ãŒããã·ã³ã§SSHãä»ããŠå®è¡ãããããã°ã©ã ã«ãããå®è£
ã§ããŸãã ãµãŒããŒã®å®è£
ã§ã¯ãããŒã¿ã®ä¿åå ŽæïŒlocalãs3ãb2ãªã©ïŒãšé©çšããå¶éïŒãå€ãããŒã¿ã®èªã¿åãã®ã¿ãè¿œå ããããæ°ããããŒã¿ãè¿œå ããããªã©ïŒã決å®ã§ããŸãããã¡ã€ã«ãããã¯ãã以å€ã«äœãåé€ããããšã¯ã§ããŸããããµãŒããŒããšãã°ãç¹å®ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ããŸãã¯SSHããŒã䜿çšããSSHçµç±ã®ãã°ã€ã³æã«ForceCommand
ãä»ããŠéå§ã§ããŸãã
ããã 以å€ã®ãã¹ãã¬ãŒãžã ãã§ã¯ãæ»æè ããªããžããªããããŒã¿ãèªã¿åãã®ãé²ãããšã¯ã§ããŸãããïŒå°ãªããšããªããžããªã®åœ¢åŒãå€æŽããã«ïŒããªããžããªå ã®ãã¹ãŠã®ããŒã¿ãåé€ããããšã¯ã§ããŸããã
ãããã£ãŠãçµè«ãšããŠãããã¯ã¢ããã«resticã䜿çšãããµãŒããŒãæ»æè ãä¹ã£åãã®ãé²ãã«ã¯ãäž¡æ¹ïŒéãã ã¹ãã¬ãŒãžãšé察称æå·ïŒãå®è£ ããå¿ èŠããããšæããŸãã ããã¯é·æçãªç®æšã§ã:)
ãã®ããã¹ãããã®å·ã®æåã®ã³ã¡ã³ãã«ã³ããŒããŠãèŠã€ããããããŸãã
ããããããããã«æ¯ãè¿ã£ãŠãç§ã¯asymæå·ãä¹ã£åãããé²åŸ¡ããã®ã«ããã»ã©æçšã§ã¯ãªãããšã«åæããŸã-ããã¯ç¡äººããã¯ã¢ããïŒïŒ533ïŒã®ããã«ããæçšã§ãã
ãã€ãã£ãã®éä¿¡ãããã³ã«ããããšäŸ¿å©ãããããŸããããçŸåšã®RESTãµãŒããŒã§ããããäœãåŸããããããããŸãã-ãããæ¡åŒµã§ããŸããïŒ attic / borgã¯ãã®ããã«é²ã¿ãŸãããã¯ã©ã€ã¢ã³ããããµãŒããŒãžã®ãç¬èªã®ãïŒborgåºæã®ïŒãããã³ã«ããããã¯ã©ã€ã¢ã³ãã«ããã€ãã®å¶éãå®è£ ããããšãå¯èœã§ãã ã¯ããããã¯ForceCommandãšãborgserveãå¶éãã©ã°ã«äŸåããŠããŸã...ãããšæ³šæãã¹ãæ¬ ç¹ã«ã€ããŠãborgããã¥ã¡ã³ãã«ããã€ãã®
ãããŠãã¡ããã䟵害ãããã¯ã©ã€ã¢ã³ãããããã¯ã¢ãããä¿è·ããæãèªç¶ãªæ¹æ³ã¯ãã¯ã©ã€ã¢ã³ããããã¯ã¢ããèªäœãå®è¡ããããšãèš±å¯ããã代ããã«ãµãŒããŒã«ããã¯ã¢ãããããã¡ã€ã«ããã«ãããããšã§ããå€ãããªãã®ã³ã³ãã¥ãŒã¿ããæ¬è³ªãåžããŸããããã®ãã£ãããŒãªãã¬ãŒãºãèŠããŠãã人ã®ããã«ïŒã ãã«ã°ã®ãããããã§ãããè¡ãã«ã¯ååã«ææžãŸãã¯ãšã¬ã¬ã³ããªæ¹æ³ãããããã«ã¯æããªãã®FAQã«ãã€ã³ãhttps://github.com/borgbackup/borg/issues/900ãããã¯ã«é¢ããè°è«ãšããŠã ããã§ã¯ãããã¯ãŸã ããã§èšåãããŠããªãïŒ299ã§è¿œè·¡ãããŸãã
éåžžã«é·ã話ã§ãããé察称æå·ãµããŒãã®çŠç¹ãåçŽã«ä¿ã¡ãŸãããªããµã€ãã®ããŒã¹ãã¬ãŒãžãšèªåããã¯ã¢ãããç°¡åã«äœæã§ããããã«ããŸãã 䟵害ãããã¯ã©ã€ã¢ã³ããä¿è·ããæ¹æ³ã¯ä»ã«ããããŸããããã«ãµããŒããæãèå³æ·±ãæ¹æ³ã ãšæããŸãã å®éãç§ã®æé©ãªããã¯ã¢ãããœãªã¥ãŒã·ã§ã³ã§ã¯ããã¹ãŠã®ã¯ã©ã€ã¢ã³ããããã¯ã¢ãããäžå€®ãµãŒããŒã«ããã·ã¥ãã次ã«ãªããµã€ããµãŒããŒãã¡ã€ã³ããã¯ã¢ãããµãŒããŒãããã«ããŸãã ãã¡ãã§ãïŒ
ç§ã¯å®éããã®åé¡ããã¯ã©ã€ã¢ã³ãã®ä¹ã£åãããä¿è·ããããã«å€ãã£ãã®ã¯å¥åŠã ãšæããŸãããããããããã§ã®åé¡ãšè§£æ±ºçãæ··åããŠããã®ãããããŸããã :)
ããã
ãã®åé¡ã¯ãé察称ã®æå·ããã¯ã¢ããã ãã§ãªããããŸããŸãªæ»æãã¯ãã«ã«é¢ãããã®ã®ããã§ãã
ã³ãŒããèªãã§ããªãã®ã§ãæ¬åœã«çŽ æŽãªè³ªåããããŸãããç§ã®ãŠãŒã¹ã±ãŒã¹ã¯äž»ã«ãç§å¯éµãé瀺ããã«ïŒããã¯ã¢ããææè
ã®ãªãã©ã€ã³ç§å¯éµã®å
¬ééµã䜿çšããŠïŒããŒã¿ãããã¯ã¢ããã§ããããšã§ãã ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãå®è£
ã¯ç°¡åã§ããïŒ
ãã®ä»¶ã«ã€ããŠã®ç§ã®ç解ã¯ãçŸåšããã¹ãŠã®BLOBãåãããŒã§æå·åãããŠãããããŸãæ©èœããŠãããšããããšã§ãã
OpenPGPã®åäœæ¹æ³ã§asymcryptoã䜿çšããå Žåãäœæãããåã¹ãããã·ã§ããã¯ãå
¬ééµã§æå·åããã察称éµãçæããããããªããžããªã«è¿œå ããŸãã ããããåé¡ã¯ãéè€æé€ãããã®ãšããã¯ã¢ãããããã®ãèŠã€ããããšãã§ããããã«ããã«ã¯ãæåã«æ
å ±ãèªã¿åãããšãã§ããå¿
èŠããããããç§å¯éµãå¿
èŠã«ãªãããšã ãšæããŸãã ããã§ããïŒ
ãã®å ŽåããŒãç¥è蚌æããããã®ç·ã«æ²¿ã£ãŠåœ¹ç«ã€å¯èœæ§ããããŸããïŒ
@dolanorã¯ããã®åé¡ã«æ°ãããŠãŒã¹ã±ãŒã¹ã質åãè¿œå ããªãã§ãã ããã質åã«ã¯ãã©ãŒã©ã ã䜿çšããŠ
æåã®æçš¿ã§èŠçŽãæŽæ°ããŸããã ãã®éã«rclone
ããã¯ãšã³ããè¿œå ãããŸãããããã¯ãäžèšã®ããã«ãã¢ããã¿ãŒããšããŠäœ¿çšã§ããSSHãªã©ãä»ããŠã¢ã¯ã»ã¹ã§ããŸãã
æ¬ ç¹ã¯ãæ»æè ããµãŒããŒã«ã¢ã¯ã»ã¹ã§ããããã«ãªããšãããã¯ãšã³ãã«ã¢ã¯ã»ã¹ããããã®ã¯ã¬ãã³ã·ã£ã«ãšå¶éä»ããã¹ã¯ãŒããç°¡åã«æœåºã§ããããšã§ãã
ãããã¿ã€ããã¹ã ãšããã®ã§ãããããã«æå·åãããããŒãã¡ã€ã«ã®è³æããããŸããã ããŸãããã°ããµãŒããŒã«ã¢ã¯ã»ã¹ããæ»æè ã¯ããã¬ãŒã³ããã¹ãã®ãã¹ã¯ãŒãã«ã¢ã¯ã»ã¹ã§ããŸããã 圌ããã§ããææªã®äºæ ã¯ããªããžããªãžã®ãã¹ã¿ãŒæå·åããã³èªèšŒããŒã埩å·åããããã«äœ¿çšãããããŠãŒã¶ãŒãã¹ã¯ãŒãããç·åœããæ»æãŸãã¯æšæž¬ããããšããããšã§ãã
ãããæ£ãããã°ãèŠçŽãããäžåºŠå€æŽããŠæ確ã«ããããšã匷ããå§ãããŸãããã®ããã«è¿°ã¹ãå Žåãããã¯ç¢ºãã«èŠæ ããæªãããã§ãã :)
ããŸãããã°ããµãŒããŒã«ã¢ã¯ã»ã¹ããæ»æè ã¯ããã¬ãŒã³ããã¹ãã®ãã¹ã¯ãŒãã«ã¢ã¯ã»ã¹ã§ããŸããã 圌ããã§ããææªã®äºæ ã¯ããªããžããªãžã®ãã¹ã¿ãŒæå·åããã³èªèšŒããŒã埩å·åããããã«äœ¿çšãããããŠãŒã¶ãŒãã¹ã¯ãŒãããç·åœããæ»æãŸãã¯æšæž¬ããããšããããšã§ãã
æ£ç¢ºãªã·ããªãªã«ãããšæããŸããæåã§ãã¹ã¯ãŒããå ¥åããŠããå Žåã¯ãããã§ãã äžæ¹ãã¹ã±ãžã¥ãŒã«ãããèªåããã¯ã¢ãããå®è¡ããŠããå Žåã¯ãããŠãŒã¶ãŒãã¹ã¯ãŒããããµãŒããŒã®ã©ããã«ä¿åããå¿ èŠããããŸãã
ãããŠãã¡ãããæ»æè ã¯Resticãã€ããªããå ¥åããããã¹ã¯ãŒããæŒãããã®ãšäº€æããããªããå ¥åããã®ãåŸ ã€å¯èœæ§ããããŸãã 䟵害ãããã·ã¹ãã ãä¿¡é Œããããšã¯ã§ããŸããã
ããŠãŒã¶ãŒãã¹ã¯ãŒããã¯ãµãŒããŒã®ã©ããã«ä¿åããå¿ èŠããããŸãã
ããµãŒããŒããšã¯ããããŒã¿ãä¿åããããã«å®è¡ããŠãããã·ã³ããŸãã¯ãããã¯ã¢ããããããŒã¿ãåä¿¡/ä¿åãããã·ã³ããæå³ããŸããïŒ
ããã¯ããªãææ§ã§ãããç§ã®æžå¿µã®åå ïŒããã¯ã¢ããã¯ã©ã€ã¢ã³ãïŒresticãå®è¡ããŠããããã¯ã¢ããããŠãããã·ã³ïŒãã¯ãªã¢ããã¹ãã§ãã¹ã¯ãŒããæã£ãŠããããšãæ°ã«ããŸããïŒããŒã¿ã»ããå šäœããšã«ããããã«ããã®ã§ããããå±éºã«ãããããå ŽåãããŒã¿ã¯ãšã«ãã劥åããã ããããããã¯ã¢ãããµãŒããŒãã¯ãªã¢ããã¹ãã«ã¢ã¯ã»ã¹ã§ããªãããšãé¡ã£ãŠã
ããµãŒããŒããšã¯ããããŒã¿ãä¿åããããã«å®è¡ããŠãããã·ã³ããŸãã¯ãããã¯ã¢ããããããŒã¿ãåä¿¡/ä¿åãããã·ã³ããæå³ããŸããïŒ
ããŒã¿ãä¿åããäžã§å®è¡ããŠãããã·ã³ã
ç§ã¯ããªãã®äž»åŒµãç解ããŠããŸããããªãã¯æ£ããã§ããããã¯ææ§ã§ãã Resticã®ã¢ãã«ã«ã€ããŠç§ãç¥ã£ãŠãããã¹ãŠã®ããšããã®ç§ã®ç解ã¯ããªãã®ãããšåãã§ããç§ã¯ããã«ã€ããŠããªã確信ããŠããŸãããããç§ã¯ããªããæãæ確ãªç¢ºèªãããªãã«äžããããšãã§ããŸããã
æŠèŠã«ã¯ãRESTãµãŒããŒã®--append-only
ãªãã·ã§ã³ãèšèŒãããŠããŸãã ããããããã¯ãè¿œå ã®ã¿ã®ããã¯ã¢ããã®å¯äžã®å
¬åŒã«æšå¥šãããæ¹æ³ãšããŠæ®ãã¯ãã§ãããä»ã®ã¢ãããŒããèšå®ããæ¹æ³ãç解ããã®ã«åœ¹ç«ã€ããã«ãéåžžã®æäœã®ããã«æžã蟌ã¿å¯èœã§ããå¿
èŠããããã¡ã€ã«ãææžåããããšã¯è¯ããããããŸããã
data
ã index
ã keys
ãããã³snapshots
ãã¡ã€ã«ã®äœærestic backup
ã¯åé¡ãªãæ©èœãããšæããŸãïŒãŸãã config
ãä¿è·ãããŸããïŒã ãã ãããªããžããªãæ°žç¶çã«ããã¯ãããªãããã«ã locks
ã¯åé€ãèš±å¯ããå¿
èŠããããšæããŸãã ãŸããäžéšã®è¿œå ã®ã¿ã®å®è£
ïŒext4ããã³xfsãã¡ã€ã«ã·ã¹ãã ã®å±æ§ãªã©ïŒã¯ååž°çã§ã¯ãªãããã data
ã®256åã®2æåã®ãµããã£ã¬ã¯ããªãæåã«äºåçæããŠãããå±æ§ãäºåã«çæããå¿
èŠããããŸãããããã«èšå®ãããŸãã
S3ã®ãããªäžéšã®ããã¯ãšã³ãã¯ãè¿œå ã®ã¿ããµããŒãããŠããŸããããåãå¹æãéæã§ãããªããžã§ã¯ãã®ããŒãžã§ã³ç®¡çããµããŒãããŠããŸãã ãã ããããã«ã¯ã¢ã¯ã»ã¹å¶åŸ¡ã¢ãã«ã泚ææ·±ããã§ãã¯ããå¿ èŠããããŸãã ããšãã°ãB2ã«ã¯ãªããžã§ã¯ãã®ããŒãžã§ã³ç®¡çãèš±å¯ããã©ã€ããµã€ã¯ã«ã«ãŒã«ããããŸãããB2ãžã®ããã¯ã¢ããã«å¿ èŠãªAPIããŒã«ã¯ãã©ã€ããµã€ã¯ã«ã«ãŒã«ãå€æŽããæ©èœããããŸãïŒB2ã«ã¯ãŸã å€ãã®ã¢ã¯ã»ã¹èš±å¯ã·ã¹ãã ããããŸããïŒã
äœè«ã§ãããäœãã足ããªããããããŸããããé察称æå·åããã¯ã©ã€ã¢ã³ãã䟵害ããæ»æè ããå±¥æŽããŒã¿ãä¿è·ããŠããã ãã®å Žåã¯ãåªå 床ãäœãããã«æãããŸãã ãããšäŸ¿å©ã§ãããã»ãšãã©ã®å ŽåãçŸåšã®ããŒã¿ã¯ä»¥åã®ããŒãžã§ã³ããã䟡å€ããããŸãïŒãã ãã䟡å€ã®ãããã®ã誀ã£ãŠããã¯ã¢ãããåé€ãããããããŒãžãããŠããªãå ŽåããããŸãïŒã
@willsALMANJè¯ã芳å¯ã S3ã®å Žåãç¹å®ã®ã¹ãããã·ã§ããã埩å ããããã«å¿ èŠãªBLOBã®äžè²«ãããã¥ãŒããã§ããã§ããããã«ãç°è«ã®ããŒãžã§ã³ãèšé²ã§ãããã©ããçåã«æããŸãïŒãã ããå 容ã«åºã¥ããŠæ€èšŒã§ãããããããã»ã©éèŠã§ã¯ãããŸããïŒã
åïŒããªãã®æåŸã®æ®µèœïŒ
@ fd0掟çããå ±æç§å¯ã䜿çšããHMACã¢ãã¬ã¹æå®ã䜿çšããé察称æå·åã®é©åãªã¹ããŒã ããããšæããŸãã ãŸããããŒã¿ããªãŒã¯ããã«ãµãŒããŒåŽã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ã€ããŠããã€ãã®ã¢ã€ãã¢ããããŸããèå³ããããã©ããã¯ããããŸããããèå³ãããå Žåã¯ãããã«ã€ããŠè©±ããããšæããŸãã
ããã§äœããèŠéããŠãããã©ããã¯ããããŸããããS3ã¹ãã¬ãŒãžã§ãã®ããªã·ãŒèšå®ã䜿çšããŠresticãæ£åžžã«å®è¡ããŠããŸãã æ»æè ãããŒã¿ãèªã¿åãããšãé²ãããšã¯ã§ããŸããããæ»æè ãvomãåé€ããããšã¯ã§ããŸããã
{
"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ãªããžããªã«2ã€ã®ããŒãäœæããŸãã 1ã€ã¯ãµãŒããŒçšããã1ã€ã¯ä¿¡é Œã§ããããã€ã¹çšã§ãä¿¡é Œã§ããããã€ã¹ãæ»æè ãããã¯ã¢ãŠãã§ããããã«ããŸãïŒãã ããæ»æè ã¯ããŒãåé€ã§ããªããããããã¯ã¢ãŠãã§ããŸãã/ *ïŒã
ç·šéïŒç³ãèš³ãããŸããããããã¯ãã§ã«è°è«ãããŠããããšãèŠéããŸããã ãã®ã¹ã¬ãããä¹ã£åãããšã¯æããªãã£ãã
PutObjectã¯å®éã«ã¯ãªããžã§ã¯ããäžæžãã§ãããããããã¯ããã¯ã¢ãããä¿è·ããããã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸããã
@freswaç§ã¯S3ã®å°é家ã§ã¯ãªãã®ã§ããããæ£ãããããããŸãããããã®èª¬æã§äžèšã§ææããã®ã¯ã PutObject
æš©éã䜿çšããŠãããŒã¿ãäžæžãã§ãããšããããšã§ãããããåæ§ã«æªãããšã§ãããããåé€ããããã«ã äžèšã®ç§ã®æçš¿ã§ã¯ããªããžã§ã¯ãã®ããŒãžã§ã³ç®¡çã䜿çšããŠãã®åé¡ãåé¿ã§ããããšãææããŸããïŒããã¯ã¢ããã·ã¹ãã ã«ããŒãžã§ã³ãåé€ããããã®ã¢ã¯ã»ã¹æš©ãäžããªãã§ãã ããïŒã
@andrewchambersç§ã¯ä»ã®ãã®ã«å°ãå§åãããŠããŸããå®éã«ãããå®è£ ããããã«ãªã£ãããããªãã®ã¢ã€ãã¢ã«ã€ããŠè©±ããŸãããïŒ ã¯ããèå³ããããŸã;ïŒ
ãããã£ãŠããã®åé¡ã¯ãããã¯ãšã³ãã¹ãã¬ãŒãžã®æ§æã«ã¢ã¯ã»ã¹ããã®ã§ã¯ãªããïŒæçµçã«ã¯ïŒé察称ããã¯ã¢ãããå®è£ ããããšã«é¢ãããã®ã§ãã ããããšãïŒ :)
@ fd0ããŸãããã°ãããã¯ç§ãæå³ããããšã説æããŠããŸãhttps://packnback.github.io/blog/dedup_and_encryption/
@andrewchambers :(ãµã€ãã§èšåããïŒæžã蟌ã¿å°çšã®åé¡ã«ãŸã ééããŠããªãå Žåã«åããŠã httpsïŒ//github.com/ncw/rclone/issues/2499ã§ãã
@andrewchambersããã
ç§ã¯ãç¡æã®ãœãããŠã§ã¢ããã¯ã¢ããããã°ã©ã ã®åéã§å¥ã®åè£è ãããããšãæ°ã«å ¥ã£ãŠããŸãããŠãŒã¶ãŒã«ããå€ãã®ãªãã·ã§ã³ãæäŸããããšã¯åžžã«çŽ æŽãããããšã§ãã
ãããã£ãŠã2ã€ã®gitãªããžããªæå·åã¡ã«ããºã ã䜿çšããŠèå³æ·±ã䞊ååŠçãè¡ãããšãã§ããŸãã
äžæ¹ã«ã¯git-cryptããããŸããããã¯gitsmudge / cleanãã£ã«ã¿ãŒã䜿çšããŠãblobã¹ãã¬ãŒãžãšãã§ãã¯ã¢ãŠããããã³ããŒã®éã®ãã¡ã€ã«ãïŒããããïŒæå·å/埩å·åããŸãã ããã¯ããŸãæ©èœããããªãæé©ã§ããã1ã€ã®æçœãªç©ŽããããŸããgitcommitèªäœã¯æå·åããããblobã®ã³ã³ãã³ãã®ã¿ãæå·åãããŸããã€ãŸãããã¡ã€ã«åãcommitlogãäœæè ãæ¥ä»ããã®ä»ã®ã¡ã¿ããŒã¿ã¯ãã¹ãŠå¹³æã§ä¿åãããŸãã ããã¯å€ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯äžèŠã§ãããïŒããšãã°ïŒäžéšã®ãããïŒãã¹ãŠã§ã¯ãªãïŒãæå·åãããããªãã¯ãªããžããªãããå Žåã«ã®ã¿å¹æçã§ãã
å察åŽã«ã¯git-remote-gcryptããããŸããããã¯gitãªã¢ãŒããã«ããŒãããã³ã«ããã¹ãŠã®ãã®ãæå·åããŸãã ãã ããç¹å¥ãªãªã¢ãŒãã®åäœæ¹æ³ã«ãããå®è¡ããšã«ãªããžããªå šäœãåæå·åããããããããã¯éåžžã«éå¹ççã§ãã
ããŠããããã¯gitåºæã®å®è£ äžã®èª²é¡ã§ãããããã§çºçããå¯èœæ§ã®ããåé¡ã«ããŸã察å¿ããŠãããšæããŸãã ãã¶ãç§ã¯ããã§å®å šã«ç§ã®æ·±ãããå€ããŠããŠããã®å¹³è¡ã¯ç¡é¢ä¿ã§ãããããç§ã¯ãããããã§èå³ããããããããªããšæããŸãã...
äœè«ã§ãããçŸåšïŒããããïŒããªãç°¡åã«å®è£ ã§ããäžéç¹ããããŸããããã¯ãããŒããªããžããªã®å€éšã«ä¿åã§ããããã«ããããšã§ãã
察åŠãããŠããæ»æãã¯ãã«ã®1ã€ã¯ãæ»æè ãããŒãã¹ã¯ãŒããå ¥æããïŒããŒã¯ãªããžããªã«ä¿åãããŠããããïŒç°¡åã«ããŒã埩å·åã§ããããšã§ãã
ããŒãã¡ã€ã«ãä¿åãããŠããå¥ã®ããŒãã£ã¬ã¯ããªã®æå®ãèš±å¯ãããšã©ããªããŸããïŒ ãã®ãã£ã¬ã¯ããªã¯ãããã¯ã¢ãããå®è¡ããå¿ èŠã®ããåãã·ã³ã«ããŒã«ã«ã«ä¿åã§ããããèªäœãå¥ã®ã¯ã©ãŠããããã€ããŒã«ããã¯ã¢ããããããã³ãŒã«ããªãã©ã€ã³ã¹ãã¬ãŒãžçšã®QRã³ãŒãïŒçŽ500ãã€ãã¯QRãšã³ã³ãŒãããã«ã¯ååå°ããïŒã§ããããã¯ã¢ãããããã§ããŸããããšãã°ã貞é庫ã«å ¥ããŸãã
æå·åãããããŒãã¯ã©ãŠããããã€ããŒã«æ¥è§Šããªãå Žåãæ»æãã¯ãã«ã¯å®å šã«ãªããªããŸãã ããšãã°ãéµã¯ç©ççãªæœèšãã䟵害ããããããã«ãŠã§ã¢ã§äŸµå ¥ããããããå¿ èŠããããŸãã
ããã¯ããªããžããªã®ããŒã«ã«ã³ããŒãä¿æãããŠããå ŽåãResticã§ãã§ã«å®è¡ã§ããŸããrcloneã®å®è¡æã«ãããŒãã£ã¬ã¯ããªãä¿¡é Œã§ããªããªã¢ãŒãã«åæãããªãããã«ããã ãã§ãã ããŒã«ã«ã³ããŒããªããresticãä¿¡é Œã§ããªããªã¢ãŒããšçŽæ¥å¯Ÿè©±ããå Žåãããã¯å®è¡ã§ããŸããã
åäžè²¬ä»»ã®ååãé©çšããç©äºã2ã€ã®ã¿ã¹ã¯ã«åå²ããå¿ èŠããããšæããŸãã
ãããã¯ãããŒã¿ã®å®å šæ§ã®2ã€ã®ç°ãªãåŽé¢ã§ãã æè¡çã«ã¯ããäºãã«äŸåããå¿ èŠã¯ãããŸããã
ïŒ1ïŒã«ã€ããŠã¯ãæããã«ãé察称æå·åãµããŒããè¿œå ããã ããã§ãã ïŒ2ïŒã«ã€ããŠã¯ãèãããã解決çã¯ãããããããšæããŸãïŒããšãã°ãåè¿°ã®ããã«ãè¿œå ã®ã¿ã®S3ã»ããã¢ããïŒã
æãåèã«ãªãã³ã¡ã³ã
é察称æå·åã«ãããyubikeyãªã©ã®OpenPGPããŒã®äœ¿çšãå¯èœã«ãªããŸãã