Trusted Postgres Architect 23.41.0 release notes

Trusted Postgres Architect 23.41.0 release notes#

リリース日2025年11月26日

Trusted Postgres Architect 23.41.0の新機能、機能強化、バグ修正、およびその他の変更には次のものが含まれます。

ハイライト#

  • PostgresとPGDだけでなく、すべてのクラスターコンポーネントの更新を実行します

  • デフォルトのPatroni構成の強化、セキュリティ対策を微調整するための多くの新しいオプション

  • PGD 6 PGD-XおよびPGD-Sのマイナーバージョンアップグレードのサポート

  • Postgres 18のサポート

機能強化#

Description

Addresses

新しい`tpaexec configure`クラスターのセキュアetcdおよびPatroniのデフォルト。 `tpaexec configure`を使用して新しいクラスター構成を作成する場合、生成された`config.yml`ファイルは、デフォルトで`etcd`と`Patroni`の両方のSSL/TLS暗号化と相互TLSmTLS認証を自動的に有効にします。これにより、新しい展開がすぐに使える安全な通信ベースラインで開始されます。 次の変数は、新しい構成のデフォルトで設定されるようになりました。

コンポーネントM1およびPGD/ BDRクラスターのアップグレードをサポート。 すべてのクラスターソフトウェアコンポーネントフェールオーバーマネージャー、PEM、 Barmanなどを、 config.yml`でコンポーネントパッケージバージョンを指定することにより特定のバージョンに更新できるようになりました。または利用可能な最新のものが提供されていない場合。アップグレードのコンポーネントのリストは、コンマ区切りリストとして--components`フラグに渡すことができます。このフラグが渡されない場合、 `postgres`は更新されます。 `--components=all`を指定すると、該当するすべてのソフトウェアコンポーネントが更新されます。

PGD5.9+からPGD6へのアップグレードの自動化が向上しました。 PGD v5.9からv6の移行の場合、 PGDプロキシの代わりに接続マネージャーが要件です。この移行を促進するために、新しいコマンド switch2cm`が導入されました。新しいコマンドでは、 `tpaexec reconfigure &lt;cluster&gt; --enable-connection-manager`を実行してクラスターの`config.yml`を準備する必要があります。 :ref:`PGD-Always-ONからPGD-Xへのアップグレード<PGD-Always-ONからPGD-Xへのアップグレード>

`etcd`クラスターとの通信が、SSL/TLSを使用して保護できるようになりました。 新しい構成パラメーター`etcd_ssl_enabled`が導入され、すべての`etcd`通信のTLS暗号化が有効になりました。これにより、クラスターの分散コントロールプレーンのセキュリティが大幅に強化されます。 etcd_ssl_enabled`が`true`に設定されている場合 • 展開プロセスは、各`etcd`ノードに必要なTLS証明書を自動的に生成します。これらの証明書には、堅牢な検証のためのDNSとIPサブジェクト代替名SANの両方が含まれるようになりました。 • ピアツーピア接続とクライアントサーバーの両方の`etcd`接続は、HTTPSを使用するように構成されています。 • `etcdctl`を使用した内部ヘルスチェックなどのダウンストリームコンポーネントは、 HTTPSで安全に`etcd`に接続するように自動的に構成されます。既存の展開との下位互換性を維持するために、この機能はデフォルトで無効になっています `etcd_ssl_enabled: false

Patroni REST APIの相互TLSmTLS認証。 相互TLSのサポートが追加され、Patroni REST APIのより安全な証明書ベースの認証方法を提供します。新しい構成変数`patroni_authentication_mode`が利用できるようになりました。これを`mtls`に設定して、この機能を有効にできます。有効にすると `patroni_ssl_enabled: true`が必要 、展開自動化は次のことを行います。 • クライアント証明書を要求および検証するようにPatroni REST APIサーバーを構成します。 • `patronictl`およびHAProxyヘルスチェックを含むクライアントを、安全に接続するために必要なクライアント証明書とキーを使用して自動的に構成します。デフォルトの認証モードは`basic`ユーザー名とパスワードのままで、既存の展開との下位互換性を保証します。

`allowlist`へのアクセスによるPatroni REST APIのセキュリティの向上。 Patroni REST APIのセキュリティは、安全でないAPIエンドポイント`POST`、PUT、PATCH、`DELETE`を受け入れるための`allowlist`を構成することにより強化されました。この対策により、無許可のノードがデータベースノードの再起動やクラスター構成の変更などの管理アクションを実行できなくなります。 `allowlist`には、Ansibleインベントリーに基づいてPatroniクラスターメンバーのホスト名が動的に入力され、許可されたノードのみがこれらの機密APIエンドポイントへの要求を実行できます。

TPAは、PGD-Xのマイナーバージョンのアップグレードをサポートするようになりました。 `tpaexec upgrade`コマンドは、PGD-Xアーキテクチャを実行しているクラスターでpostgresおよびPGDのマイナーバージョンのアップグレードを実行できるようになりました。アップグレードプロセスは、クラスターの状態を確認し、ノードを一度に1つずつアップグレードします。このシナリオでは、 `update_hosts`変数をサポートし、ドキュメントに記載されているベストプラクティスの推奨事項に従って使用する場合、クラスターのサブセットをアップグレードします。

TPAは、PGD-Sのマイナーバージョンのアップグレードをサポートするようになりました。 `tpaexec upgrade`コマンドは、PGD-Sアーキテクチャを実行しているクラスターでpostgresおよびPGDのマイナーバージョンのアップグレードを実行できるようになりました。アップグレードプロセスは、クラスターの状態を確認し、ノードを一度に1つずつアップグレードします。このシナリオでは、 `update_hosts`変数をサポートし、ドキュメントに記載されているベストプラクティスの推奨事項に従って使用する場合、クラスターのサブセットをアップグレードします。

etcd基本認証とロールベースのアクセス制御を有効にします。 このリリースでは、クライアント認証を使用してetcd分散キーバリューストアを保護する新しい機能を導入します。基本認証を有効にし、きめ細かい最小の権限でPatroniの専用ユーザーを構成できるようになりました。機能を制御するために、新しい構成変数`etcd_authentication_mode`が追加されました。 basic`に設定すると、展開自動化は次のことを行います。 • 管理者`root`ユーザーを設定します。 • 新しい`patroni_etcd_user`構成オプションで指定されたPatroniの専用etcdユーザーを作成し、クラスターのキープレフィックス/tpa/cluster_name`などに制限した読み取り書き込み権限を付与します。 • これらの資格情報を自動的に使用して、etcdに安全に接続および認証するようにPatroniを構成します。下位互換性を維持するため、この機能はデフォルトで無効になっています etcd_authentication_mode: none 。

`etcd`の相互TLSmTLS認証。 相互TLSのサポートが追加されて、すべての`etcd`通信が保護されました。新しい`mtls`オプションが`etcd_authentication_mode`変数で使用できるようになりました。 etcd_authentication_mode`が`mtls `etcd_ssl_enabled: true`が必要に設定されている場合、展開自動化は次の証明書ベースの認証を強制します。 • すべての`etcd`ノード間のピアツーピア通信。 • Patroniのようなクライアントからのクライアントサーバー通信。 TPAは、必要な証明書とキーを使用して`etcd`サーバーとPatroniクライアントの両方を自動的に構成し、完全に安全で検証された接続を保証します。

PEMでサーバーとエージェントを表示する方法を制御するための新しいインスタンスレベル変数を導入しました。 pem-agent`ロールで使用する4つの新しいインスタンス変数を導入しました。 `pem-server`ロールと既存の変数`pem-server-group。全体的に、これらの変数は、PEMでサーバーとエージェントがどのグループとクラスターに割り当てられているかを決定します。完全な説明については、ドキュメントを参照してください。

OpenSSLで生成された証明書の有効期間のサポートを追加しました。 以前は、TPAで使用される一部のSSL証明書OpenVPN、PEM、およびTPA自分自身に、有効期限までの日数を指定する方法が付属していませんでした。この変更により、 openssl_certificate_validity`デフォルト3650日という変数が追加され、SSL証明書の有効期限が切れるまでの日数を決定するために使用できます。 TPAに新しい有効期限の新しい証明書を強制的にリロードするには、適切なオプションを`tpaexec deploy -e pem_web_server_renew_tls_certificates=true&quot;`または-e tpa_tls_renew_tls_certificates=true&quot;)`に渡す必要があります。

の変更#

Description

Addresses

デフォルトのEFMパスワードの暗号化をscram-sha-256に変更しました。 TPAは、フェールオーバーマネージャーとしてEFMで構成されたすべての新しいクラスターでデフォルトの`efm_user_password_encryption: scram-sha-256`になりました。この変更は、 --enable-efm`または--failover-manager efm`とともに`tpaexec configure`を実行する場合に適用されます。これは、PostgreSQL 18でのMD5パスワード暗号化の非推奨に対処し、すべてのPostgreSQLバージョンのセキュリティを向上させます。既存のクラスターは影響を受けません。ユーザーは、必要に応じて`config.yml`で`efm_user_password_encryption: md5`を明示的に設定することにより、このデフォルトをオーバーライドできます。ただし、MD5サポートは将来のリリースでTPAから削除されます。

`tpaexec configure`コマンドは、`efm_version`を`config.yml`に追加するようになりました。 `tpaexec configure`を実行し、フェールオーバーマネージャーとしてEFMを選択するときに導入される場合、`efm_version`の明示的な追加のサポート。これは、`tpaexec configure my-cluster-dir -a M1 --enable-efm --efm-version 5.2 (u2026)`のように`tpaexec`を呼び出したときに見られます。さらに、`efm_version`選択をカバーするドキュメントが追加されました。

TPAは、PGDプロキシバージョン検出のために`journalctl`の代わりに`pgd-proxy`を実行するようになりました。 `journalctl`が予想されるバージョンを返さないエッジケースがいくつかあります。したがって、TPAは代わりに`pgd-proxy`を直接実行してバージョン情報を取得するようになりました。

46753, 46426

事前展開フックをリポジトリーロールの外部に移動しました。 以前のバージョンでは、このフックはリポジトリーロールの一部でした。 TPAが展開からこのロールを除外する可能性を導入したとき、このフックが意図せずにスキップされる可能性がある状況が発生しました。この状況を回避するために、フックをロールの外部に移動して、常に実行されるようにしました。

52412

EFM 5.2以降の`auto.basebackup`プロパティを追加しました。 EFM 5.2以降、新しい自動リビルド機能に追加される新しいプロパティ`auto.basebackup`があります。ユーザーは既存のpg_rewind機能pg_basebackupを使用するか、両方を使用するようにEFMに指示できます。 pg_rewindが失敗した場合にpg_basebackupが実行されます。

AWSリージョンの内部辞書を更新しました。 この変更により、AWSリージョンの内部辞書が更新され、サポートされているリージョンと対応するAZのカバレッジが拡大されます。

TPAドキュメントの`postgres_port`を文書化しました。 TPAドキュメントにパラメーター`postgres_port`の詳細を追加しました。 `postgres_port`は、Postgresのリスニングポートのカスタマイズを許可する変数です。この変数により、情報に依存するクラスターのすべてのコンポーネントで設定値の一貫した使用が保証されます。

PEM HTTPDサーバーで無効なTRACKおよびTRACEメソッド。 PEM 10.3には、HTTPD構成の修正が含まれており、 TRACK / TRACE要求を書き換える指示子を&lt;VirtualHost&gt;に移動します。 `pem_server_ssl_port`変数で定義されたポート上のデフォルトの仮想ホストのセクション。この変更は、バージョンに関係なく、PEMのすべての新しい展開に同じ修正を適用します。

54529

`efm-post-config`フックを追加しました。 新しい`efm-post-config`フックが導入され、efm構成が行われた後に新しいタスクを実行できるようになりました。その使用方法を説明する新しいドキュメントも'TPA Hooks'セクションで開発されました。

PG18でのpgauditおよびpostgisプラグインのサポートを追加しました。 これらのプラグインのPG18サポートを追加します。これらのバージョンは、サポートされているPostgresバージョンにも依存します。バージョン11および12は、広くサポートされなくなったため、プラグインリストから削除しました。

ネットワークが利用できるようになった後、PGDプロキシを開始します。 このサービスは、開始する前にネットワークサービスをアップして実行している必要があります。これを保証するために、`Wants`および`After`指示子がPGDプロキシサービスユニットに追加されました。

54251, 52731

RHELのPEMサーバーv10+に`libpq5`をインストールします。 PEM 10.1は、RHEL 9サーバーでの`kerberos`認証に関連する`psycopg`エラーを修正する依存関係として`libpq5`を追加しました。 `libpq5`が確実にインストールされるように、PEMサーバーバージョンが10以上の場合、TPAはRHELサーバーに明示的にインストールするようになりました。

必要に応じて`libcurl-full`をインストールします。 `libcurl-minimal`は特定のRHEL風のイメージがインストールされ、`edb-pem-agent`のパッケージ依存関係は満たしますが、必要なAPIの完全なセットつまりSMTPを提供しません。インストールされている場合、削除しますそれを作成し、 `libcurl-full`メタパッケージをインストールして、PEMエージェントに完全な`libcurl`機能が存在することを確認します。 `edb-pem`パッケージは`edb-pem-agent`パッケージに依存しているため、依存関係解決の競合を回避するには、PEMサーバーから`libcurl-minimal`パッケージも削除する必要があります。これは、 `allowerase`パラメーターを使用してパッケージをインストールすることにより実行されます。

バグ修正#

Description

Addresses

Patroni REST API SSL/TLS接続が正しく構成され、安全になりました。 以前は、Patroni REST API `patroni_ssl_enabled: true`のSSLを有効にすると、自己署名証明書を使用していました。これにより、`patronictl`のようなクライアントで`CERTIFICATE_VERIFY_FAILED`エラーが発生し、安全な構成で機能を使用できなくなりました。これは、適切な証明書生成プロセスを実装することにより修正されました。 Patroni REST APIサーバーは、TPAクラスター用にTPAによって作成された認証局CAによって署名されたサーバー証明書で構成されました。さらに、 `patroni.yml`構成の`ctl`セクションが修正され、サーバー検証にCAを使用し、認証mTLS用に独自のクライアント証明書とキーを提示するように`patronictl`が適切に構成されています。その結果、Patroni REST APIのSSLを有効にすることにより、すべてのクライアントに完全に安全で検証可能な通信チャネルを提供するようになりました。

Barmanの同時更新中の競合条件を修正しました ``.pgpass` file. Previously, when multiple backed-up nodes attempted to update the Barman node's .pgpass file concurrently, a race condition could occur, resulting in partial or incomplete entries. TPA now serializes this process, ensuring that the Barman node's `.pgpass`ファイルは、損失を防ぐためにシークエンシャルに更新されます。

52460

すべてのディストリビューションに適用される'common'キーをサポートするように`unwanted_packages`を修正します。 以前は、 `common`キーを使用して`unwanted_packages`を設定する場合はサポートされていませんでした。これは、 `config.yml`に設定できる他のパッケージ辞書の動作とは異なります。この修正では、 `common`キーのサポートが導入され、このキーの下にリストされているパッケージが、クラスター内で使用中のディストリビューションに存在する場合、削除されます。

pgdcliのタスク選択を修正しました。 暗黙的に除外するタスクセレクターが使用された場合でも、`pgdcli`ロールが`bdr`ノードで実行されるバグを修正しました。

Dockerコンテナのプロビジョニング中の致命的なエラーを修正しました。 ユーザー定義のネットワークを使用してDockerの最新バージョンでコンテナを作成する場合、 `provision`は場合によってクラッシュし、 'dict object' has no property 'IPAddress'エラーが発生しました。これは、コンテナのIPアドレスを検出する古い方法が原因でした。ロジックが更新されて、最新のDockerネットワーク構造と互換性があり、コンテナの作成がより堅牢になりました。

SLESへの`etcd`パッケージのインストールを修正しました。 `etcd`を必要とするSLESベースのディストリビューションPatroniを使用するディストリビューションなどへの展開は、標準リポジトリで`etcd`パッケージが見つからないため、以前は失敗していました。これは、 PGDG `extras`リポジトリを有効にすることにより解決されました。これは、必要なパッケージを提供し、インストールを成功させます。

PGDクラスターでのテスト後に`tpaexec test`がデータを削除しない問題を修正しました。 クラスターを展開し、そのクラスターで`tpaexec test`を実行した後、 `bdr.replication_set_table`に追加のエントリーを作成します。これは後で削除されません。修正により、テストは`tpatest`と呼ばれる一時的なスキーマで実行されます。これは、テストが完了すると削除されます。

53224

アップグレード3.7から5を実行するときにプロキシノードでPGD CLIが見つからない問題を修正しました。 通常の展開、または' BDR-Always-ON'セットアップから'PGD-Always-ON'へのアップグレードを実行する場合、プロキシノード以前に'harp-proxy'ロールで展開されたものは、アップグレードを実行するために必要な'pgd-proxy'ロールでインストールしようとしても、PGD CLIには同梱されません。この修正により、PGD CLIはプロキシノードと'bdr'ロールを持つノード、および'pgdcli'ロールのみを備えたノードにインストールされます。