
私はいくつかの(仮想)サーバーを持っています。それらはアプリケーション キーを使用して Backblaze B2 にバックアップされます。
これらのサーバーの管理を手伝ってくれる人を雇いたいと思っています。
その人がサーバーのルートアクセスを取得すると(私が望んでいることですが)、B2アプリケーションキーにもアクセスできるようになります。つまり、サーバーを削除できるということです。そしてバックアップ。
このエッジケースを防ぐために使用できる手順/設定は何ですか? オフライン バックアップはありますが、これは月次で、B2 バックアップは毎日です。
答え1
一部の環境では、ジョブを 2 つのチームに分割するだけです。1 つのチームがサーバーを実行/保護し、もう 1 つのチームがバックアップを実行/保護します。
もう 1 つの部分は、私見ではさらに重要です。バックアップが書き込み可能で、特にバックアップ対象のシステムから書き込み可能な場合、それは適切なバックアップではありません。
borg のような多くのツールにおける体系的な問題。(クラウドの世界では) バックアップを AWS Glacier にプッシュし、作成のみ可能なロールで S3 に保存できるのがベストです。削除にはスケジュールがあり、誰もそれを「すばやく」実行できる必要はありません。
また、このことに関する本があることも忘れないでください。
答え2
やり方は次のとおりです:
Backblaze B2 で、ファイルを削除できないアプリケーション キーを作成します。
b2 create-key --bucket MyBucket MyKeyName listBuckets,listFiles,readFiles,writeFiles
そのキーを使用し、古いバックアップ ファイルを削除しないようにバックアップを設定します。たとえば、 では、 、、または を
duplicity
使用しないでください。では、または を使用しないでください。remove-older-than
remove-all-but-n-full
remove-all-inc-of-but-n-full
duply
purge
purgeIncr
古いバックアップを削除するには、バケットにカスタム ライフサイクル設定を設定します。たとえば、 で始まる行を 360 日後に非表示にし、さらに 360 日後に削除するように設定します。また、および
duplicity-full
で始まるファイルについても同様に行います。duplicity-inc
duplicity-new
アップデート:
B2 は実際には「ファイルを削除する」機能を提供していません。同じファイルを置き換えるたびに履歴が保持されるため、ファイルには「バージョン」が存在する可能性があります。通常、必要なのは最新のバージョンです。B2 が提供するのは、ファイルを「非表示にする」機能です。ファイルを非表示にすると、実際にはファイルの履歴にファイルが「削除」されたことが記録され、非表示または削除されたファイルである新しいファイル バージョンが追加されます。
それ以外にも、B2 は実際にファイル バージョンを削除する機能も提供します。deleteFiles 権限を持たないユーザーには、実際にはファイルを非表示にする権限はありますが、ファイル バージョンを削除する権限はありません。
duplicity の機能は、ファイルを非表示にすることで実装する必要があるように思われますremove-...
。(その後、これらの非表示のファイル バージョンを一定時間後に実際に削除するかどうかは、バケットの構成次第です。) ただし、duplicity の B2 のバックエンドはこれを実行せず、実際にファイル バージョンを削除します。
答え3
ほとんどのパブリック クラウドでは、サーバーへの SSH アクセスは、サーバーを削除できることを意味するものではありません。サーバーとクラウド アカウントでの管理には違いがあります。したがって、これらを分離できます。また、特に Amazon AWS では、権限をかなり分割することもできます。たとえば、サーバーを再起動する権限を誰かに与えることはできますが、削除する権限は与えません。また、AWS には VM の削除保護オプションがあります。
最近のベストプラクティスは、実際にサーバーにログインせずに、Chef/Puppet/Salt/Ansible などの構成管理を使用してサーバーに変更を加えることです。
さらに、AWS では、サーバーのスナップショットを必要な頻度で作成することができ、これが最も効率的なバックアップ方法です。