Security

AWS S3 備份策略 - 我應該如何備份 S3 儲存桶?

  • October 3, 2012

我正在建構一個 Web 應用程序,該應用程序具有大量儲存需求的潛力,亞馬遜 S3 可以滿足這些需求。

我主要關心的是伺服器上 API 密鑰的使用,以及未經授權的人如何以某種方式利用伺服器、獲取密鑰並使用它們來破壞 S3 儲存桶中的所有數據。

  1. 我應該採取哪些策略來最大程度地減少 API 密鑰的潛在暴露?
  2. 在預算有限的情況下,備份 TB 級 S3 資產的穩健方法是什麼?

首先想到的事實是,進出 S3 的數據傳輸非常昂貴。如果你經常備份(你應該這樣做),成本可能會因轉會費而失控。也就是說,要回答您的問題,應該從單獨的、經過加固的伺服器執行備份,該伺服器的唯一任務就是執行備份。沒有 apache,只能通過帶有密鑰身份驗證的 SSH 進行遠端訪問,等等。如果你做這些事情並確保只有少數人可以訪問伺服器,那麼你的密鑰應該是非常安全的。如果您真的很偏執,您可以對包含您的密鑰的文件進行 pgp 加密 - 但是,這種方法的問題是它要求您在每次備份作業執行時輸入您的密碼。這可能不是您想要註冊的東西,對嗎?

在聽說您的預算有限後,我不禁認為您最好改變一下您的儲存策略。我不確定您的伺服器情況如何,但您是否可以在伺服器本地託管文件,然後僅使用 S3 進行備份?有一個很棒的備份腳本叫做duplicity,它可以對 S3(在其他幾種後端儲存類型中)執行壓縮、加密、增量備份。

$$ Edit $$ 如果您最終在 S3 上託管並備份到本地磁碟,那麼 S3 API 中似乎有一個“If-Modified-Since”標頭,這將有助於執行增量備份。對於這樣的備份,您很可能需要自製一些東西,儘管它不會太難。只需使用 SimpleDB/BerleleyDB/etc 來儲存有關您已備份哪些文件的元資訊以及指向它們在磁碟上的位置的指針。將元資訊保存在數據庫中還可以快速驗證備份以及創建備份作業報告。

引用自:https://serverfault.com/questions/73430