在我的其中一台 mysql 从属服务器中,我编写了一个每日运行脚本,该脚本 1) 停止从属服务器,2) 进行数据库转储,3) 再次启动从属服务器,4) 对其进行加密,5) 将其复制到我的 s3-bucket。
我正在使用 aws-cli 将转储复制到 s3-bucket。这里的问题是如果有人访问服务器,他也可以从存储桶中删除转储,因为 aws-cli 授予存储桶的更新/删除访问权限。
我如何将转储复制到某个地方(最好是 s3),如果有人可以访问数据库服务器则无法删除转储。
当我思考这个问题时,我能想到的是,我需要另一台服务器上的服务,该服务接受转储作为输入,然后将其保存到 s3。此服务不接受任何其他类型的请求。这样,我就为数据库备份添加了额外的安全层。问题是我不知道有这样的系统。
更普遍的问题是,人们通常如何保护他们的数据。如果有人访问了我的主数据库,即使是通过 SQL 注入,他也可以导致所有复制被截断或删除。在任何此类情况下,都需要有某种常规备份可供回溯。在注入的情况下,备份是安全的,但在访问服务器的情况下则不安全。