Transparent Data Encryption (TDE)#

重要

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

Transparent Data EncryptionTDEは、 保存データ 、つまりディスク上のデータベースファイルを暗号化するために複数のデータベースベンダーが使用しているテクノロジーです。ただし、TDEは使用中のデータを暗号化しません。

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

重要

続行する前に、時間をかけて に慣れてください。

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

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

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

次に、Kubernetes Secretに保存されたパスフレーズでTDEを使用する方法を示します。これは、EPASバイナリキーの暗号化に使用されます。

参考

EPAS暗号キーの詳細については、 を参照してください。

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

繰り返しになりますが、暗号化シークレットの作成方法やTDEの追加の使用方法など、詳細については、 を参照してください。

に示すように、情報は保存時に暗号化されます。

たとえば、データノードの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