Working with encrypted WAL files#

TDEが有効になっている場合、WALファイルは暗号化されます。暗号化されたWALファイルで操作を実行する場合は、操作でファイルを復号化することを許可する必要があります。

暗号化されたWALファイルを使用してトラブルシューティングを行う場合、WALコマンドオプションを使用できます。

TDE暗号化されたWALファイルのダンプ#

暗号化されたWALファイルを操作するには、 pg_waldump ユーティリティがunwrapキーにアクセスし、復号化できることを確認する必要があります。この目的のために、ユーティリティは3つの値の意識を必要とします。

次のオプションを使用してこれらの値をpg_waldump コマンドに渡します。 TDE対応クラスターを初期化するときに使用したものと同じ値を使用してください。

–data-encryption#

WALファイルが透過的データ暗号化で暗号化された場合に、このオプションを指定します。

--data-encryption または-y オプションは、コマンドが暗号化を認識できるようにします。それ以外の場合、pg_waldump は、WALファイルが暗号化されているかどうかを検出できません。

TDE対応データベースクラスターを初期化するときに使用したのと同じ暗号化構成を提供します。たとえば、クラスターの作成中にAESキー長を指定した場合、ここでも同様に指定する必要があります。それ以外の場合、値を指定せずにフラグを実行します。詳細については、 initdb TDE options を参照してください。

–key-file-name=#

--key-file-name=<file> オプションを使用して、WALファイルの復号化に必要なデータ暗号化キーを含むファイルを参照します。 pg_encryption/key.bin ファイルの場所を提供します。このファイルは、暗号化を有効にしてクラスターを初期化するときに生成されます。

コマンドは、指定された場所からデータ暗号化キーをロードできます。

–key-unwrap-command=#

--key-unwrap-command=<command> オプションの場合、TDEクラスターの初期化時にデータ暗号化キーをアンラップ(復号)するように指定したdecryptionコマンドを提供します。詳細については、 initdb TDE options を参照してください。

または、 pg_waldump コマンドを実行する前にPGDATAKEYUNWRAPCMD 環境変数を設定できます。 --key-unwrap-command=<command> オプションが指定されていない場合、pg_waldump はPGDATAKEYUNWRAPCMD にフォールバックします。この Creating a database with TDE は、環境変数をエクスポートする方法を示しています。

例#

この例では、 pg_waldump を使用して、 openssl を使用してデータ暗号化キーをラップする暗号化されたクラスターのWALログを表示します。

pg_waldump --data-encryption --key-file-name=pg_encryption/key.bin --key-unwrap-command=openssl enc -d -aes-128-cbc -pass pass:<passphrase> -in %p

破損したTDE暗号化されたWALファイルのリセット#

破損した暗号化されたWALファイルをリセットするには、 pg_resetwal コマンドがunwrapキーにアクセスし、復号化できることを確認する必要があります。次のオプションを使用してunwrapコマンドのキーをpg_resetwal コマンドに渡すか、フォールバック環境変数に依存することができます。

–key-unwrap-command=#

--key-unwrap-command=<command> オプションの場合、TDEクラスターの初期化時にデータ暗号化キーをアンラップ(復号)するように指定したdecryptionコマンドを提供します。詳細については、 initdb TDE options を参照してください。

または、 pg_resetwal コマンドを実行する前にPGDATAKEYUNWRAPCMD 環境変数を設定できます。 --key-unwrap-command=<command> オプションが指定されていない場合、 pg_resetwal はPGDATAKEYUNWRAPCMD にフォールバックします。この Creating a database with TDE は、環境変数をエクスポートする方法を示しています。

例#

この例では、 pg_resetwal を使用して、 openssl を使用してデータ暗号化キーをラップする暗号化クラスターの破損した暗号化されたWALログをリセットします。

pg_resetwal --key-unwrap-command=openssl enc -d -aes-128-cbc -pass pass:<passphrase> -in %p