web-dev-qa-db-ja.com

PostgreSQL暗号化バックアップ

PostgreSQLデータベースから取得したダンプが常に暗号化されていることを確認することは可能ですか?

データベース内のデータは非常に機密性が高く、データベースをバックアップする必要があるシステム管理者など、許可されていない担当者が実際のデータにアクセスする余裕はありません。

4
Nikhil Gupte

PostgreSQLには何も組み込まれていません。最善の策は、外部プログラムで暗号化することです。

pg_dump ... | encrypt  > mydump.pg.enc
3
Mark Harrison

DBをバックアップするシステム管理者はIMHOが常にテーブルを調べることができるため、テーブルの内容自体をロックダウンする必要があります。これを実現する唯一の方法は、データをDBに保存する前にデータを暗号化することですが、これにより、クエリが複雑になり、インデックスの作成が少し増える可能性があります。

1
Daniel

PostgreSQLデータベースから取得したダンプが常に暗号化されるようにすることは可能ですか?

はい。バックアップを実行し、結果として暗号化されるダンプを提供するメカニズム(おそらくスクリプトまたはプログラム)を作成する必要があります。次に、管理者はスクリプトを実行してプロセスを監視しますが、ダンプの内容を特定することはできません。

また、生データが見えないように保護する必要があります。おそらく、特定の担当者のみが入力できるパスワードを持つ暗号化されたボリュームにデータを配置します。そのボリュームへのアクセスは、非常に特定のユーザーとサービスのセットに制限され、事実上、他の場所での調査のためにデータを複製する手段をすべて閉鎖します。これは、Windowsマシンでは、ドメイン管理者(セキュリティをバイパスできる)ではないことを意味します。 Linux/BSDでは、notは「rootになる」ことができません(これもセキュリティをバイパスします)。多くの管理機能はそのレベルでのアクセスを必要とするため、これは、使用するマシンの管理に関して大きな負担を生み出します。 それができないと言っているわけではありません、しかしそれは彼らが彼らの任務を遂行する方法に莫大なオーバーヘッドを生み出すでしょう。特権が高い(など)他のスクリプトを実行するスクリプトを取得するための創造的な方法を見つける必要があります。

最も簡単な解決策は、サーバーを物理的に分離し、暗号化されたダンプファイルを作成するスクリプトを実行して、特定の信頼できる担当者のみにバックアップシーケンスを実行させることです。データへのアクセスは、通常の(ポート5432)PostgreSQLを介して行われます。接続しますが、他のネットワークアクセスは許可されません。これは、SysAdminsが問題のサーバーへのアクセスを許可されないことも意味します。

データベース内のデータは非常に機密性が高く、データベースをバックアップする必要があるシステム管理者など、許可されていない担当者が実際のデータにアクセスする余裕はありません。

次に、基本的な難問があります。あなたの管理者はあなたが信頼できる立場にあるべき人々です。これは、コンピューターの管理アクセスの大部分がセキュリティチェックをバイパスして、管理者が職務を遂行できるようにするためです。

確かに、データへの直接アクセスからそれらを分離するツールとメソッドを作成できますが、率直に言って、賢い管理者は少しの努力でそれを回避することができます。ここで信頼が作用します。

整合性と信頼はSysAdminの真の価値であることを忘れないでください、そしてそれらを他のユーザーから区別するもの。データの整合性を確保し、システムに対するユーザーの信頼を維持するのは、ユーザーの責任です。どちらもなければ、まあ...あなたは自分で義務を遂行する方が良いです。

1
Avery Payne