Transparent data encryption (TDE)#

重要

TDEは、それをサポートするオペランドでのみ使用できます。EDB EDB Postgres Advanced Serverバージョン15以降およびEDB Postgres Extendedバージョン15以降。

透過的データ暗号化TDEは、いくつかのデータベースベンダーが使用している技術であり、保存データ、つまりディスク上のデータベースファイルを暗号化します。ただし、TDEは使用中のデータを暗号化しません。

TDEは、バージョン15以降のEDB Postgres Advanced ServerまたはEDB Postgres Extendedに含まれており、 EDB Postgres Distributed for Kubernetesでサポートされています。

重要

続行する前に、時間をかけて TDE feature in the EPAS documentation を理解してください。

TDEをアクティブにすると、WALファイルとテーブルのファイルの両方が暗号化されます。データの暗号化/復号化は、アプリケーションの変更やクライアントドライバーの更新を必要とせずにデータベースによって管理されるため、ユーザーに対して完全に透過的です。

EDB Postgres Distributed for KubernetesでのTDEのサポートは、EDB Postgres for Kubernetes PG4Kからの実装に依存しています。 the PG4K documentation を参照

完全なコンテキストについては。

EDB Postgres Advanced Serverバイナリキーの暗号化に使用されるKubernetesシークレットに保存されたパスフレーズでTDEを使用できます。

この暗号化キーの詳細については、

KubernetesのEDB Postgres DistributedのTDEは、PG4K実装に依存しています。クラスターでTDEをアクティブにするには、マニフェストのepas セクションを使用します。これは、ストレージなどのPG4Kレベルの指示子に使用されるcnp セクションにあります。 tde スタンザを使用してTDEを有効にし、TDE暗号化キーを保持するKubernetesシークレットの名前を設定します。

次のYAML部分には、パスフレーズbase-64エンコードを保持するシークレットと、パスフレーズでTDEをアクティブにするepas セクションの両方が含まれています。

- --
apiVersion: v1
kind: Secret
metadata:
  name: tde-key
data:
  key: bG9zcG9sbGl0b3NkaWNlbnBpb3Bpb3Bpb2N1YW5kb3RpZW5lbmhhbWJyZWN1YW5kb3RpZW5lbmZyaW8=

- --
apiVersion: pgd.k8s.enterprisedb.io/v1beta1
kind: PGDGroup
[…]
spec:
  instances: 3
[…]
  cnp:
    postgresql:
      epas:
        tde:
          enabled: true
          secretKeyRef:
            name: tde-key
            key: key
    storage:
      size: 1Gi

再度、 the PG4K documentation を参照してください

暗号化シークレットの作成方法やTDEを使用する追加の方法など、さらなる詳細については。

TDE feature documentation に示されているように、情報は保存時に暗号化されます。

たとえば、データノードの1つでpsqlターミナルを開きます。

kubectl exec -ti <DATA-NODE> -- psql app

テキスト列を含む新しいテーブルを作成します。

create table foo(bar int, baz varchar);
insert into foo(bar, baz) values (1, hello), (2, goodbye);

新しく定義されたテーブルがディスク上の保存される場所を確認します。

select pg_relation_filepath(foo);
 pg_relation_filepath
- ---------------------
 base/16385/16387

同じデータノードでターミナルを開くことができます。

kubectl exec -ti <DATA-NODE> -- bash

そこで、ファイルが暗号化されたことを確認できます。

cd $PGDATA/base/16385
hexdump -C 16387 | grep hello
hexdump -C 16387 | grep goodbye