Azure Database for PostgreSQL フレキシブルサーバーでどのようなランサムウェア対策が可能か調査しました。
PaaSにおける制約事項
PaaSであるため以下のような制約事項があります。そのためランサムウェア対策の選択肢は限られます。
- OSへのログインはできない。Agentを入れるような方式は取れない。
- ストレージはMicrosoft管理下にあるため、ストレージに対する操作はできない。データベースファイルへの直接アクセスもできない。
- PaaSの機能として取られているバックアップデータに直接アクセスできない。
PaaSの機能であるバックアップ機能
Azure Database for PostgreSQLフレキシブルサーバーの機能として日次バックアップとトランザクションログバックアップが自動で取得されます。通常のバックアップはこの機能で十分なのですが、ランサムウェア対策の観点だと不足があります。
- 最大保管日数は35日。長期保管が要件だと満たせない。
- バックアップデータに直接アクセスする方法はないので改ざんされることはないが、DBサーバー自体を削除するとバックアップデータも削除されてしまう。5日間はバックアップデータが裏で保持されているので5日以内であれば復元可能であるが100%戻せる保証はない。
Azure Database for PostgreSQL フレキシブル サーバーでのバックアップと復元
Azure Database for PostgreSQL フレキシブル サーバーで削除されたサーバーを復元する
Azure Backupを利用したバックアップ
ランサムウェア対策としてはAzure Backupが利用できます。バックアップコンテナに取得したバックアップデータに対してアクセス権限分離、論理削除、マルチユーザー認証、不変コンテナーの機能を活用することでランサムウェア対策をおこなうことがでます。
少し前までは使い勝手があまりよくなく制約事項の多い論理バックアップ方式(v1)しか使えなかったのですが、新たに物理バックアップを利用した方式(v2)がプレビューで出てきました。
| 観点 | v1 | v2 |
|---|---|---|
| 方式 | 論理バックアップ (pg_dumpを利用) |
物理バックアップ (ディスクのスナップショットを利用) |
| リリース状況 ※2026/10/4時点 |
GA | プレビュー |
| Elastic Cluster | 対応不可 | 対応可 |
| PostgreSQLバージョン | 制約なし | 15以上 |
| 最大サイズ | 1TB PremiumSSDv2は利用不可 |
PremiumSSDv1:32TB PremiumSSDv2:64TB |
| バックアップ頻度 | 週次 RPO=1週間 |
日次/週次 RPO=1日 |
| バックアップ種類 | 毎回フルバックアップ | 初回フルバックアップ 以降は増分バックアップ |
| バックアップ影響 | あり DB層で転送 |
なし 基盤レイヤーで転送 |
| 最大保管期限 | 10年 | 10年 |
| リストア方式 | ファイルとしてリストア 手動でpg_restore実行 |
ターゲットサーバに直接リストア |
v1の場合、以下のような制約事項があるため適用できるかどうかは確認が必要です。
- サーバのディスクサイズが1TB以下であること
- 日次では取得できない
- セカンダリサーバやリードレプリカからバックアップは取得できない
- Premium SSD v2は利用不可
- BYTEAの長さが500MBを超える行を含むテーブルはサポートされない
Support matrix for Azure Database for PostgreSQL - Flexible Server vaulted backup
v2はv1での制約事項が概ね解消されています。早期のGAを期待したいですね。
Support matrix for Azure PostgreSQL flexible server and elastic cluster vaulted backup (v2) (preview)
早速v2を試してみたかったのですが、自環境ではまだ利用できませんでした。改めて使えるようになったら検証してみたいと思います。
その他の方法
pg_dumpを駆使してバックアップを取るしか方法がないのではないかと思われます。
並列処理化することでバックアップ時間の短縮化は図れますが、DBサイズが大きくなってくると現実的に難しくなると考えられます。やはりAzure Backup方式のv2が唯一の最適解と思われるので早期にGAしてほしいですね…
参考