给自托管的服务配自动备份,最容易犯、也最危险的错,是把云账号的访问密钥(AccessKey)直接写进服务器——一旦机器被入侵,攻击者拿到的就是整个云账号的钥匙。
更稳的做法是零静态密钥:给云主机挂一个实例角色(阿里云叫 ECS RAM 角色),只授权它读写某一个备份桶。服务器上不存任何 key,备份脚本靠实例元数据(metadata)动态取一份临时凭证。就算机器被拿下,攻击者的爆炸半径也只有「这一个备份桶」,碰不到云账号本身。
tt.hn 的备份就是这套:每天用 SQLite 的在线备份(.backup,能正确处理 WAL,不用停服)做一致性快照,连媒体一起打包上传对象存储(OSS);走内网 endpoint 上传,同区不产生流量费;对象存储上挂一条生命周期规则,备份保留 30 天后自动删。
这样备份既是可靠的,也没有在服务器上多留一把能捅穿整个云账号的钥匙。


