MTLSを有効にするには、次のパラメータを変更します
Key | Value | Details |
---|---|---|
spec.fep.usePodName | True | MTLSの場合、このキーを定義してtrueに設定する必要があります。 MTLSを使用しないTLS接続の場合、省略できます。 ただし、これもtrueに設定することをお勧めします。 |
spec.fep.patroni.tls.certificateName | <secret-name> | Patroni RESTAPIのtls.crtの証明書とtls.keyの秘密鍵を含むKubernetesシークレットの名前。 MTLS Patroni REST API通信の場合、このキーを定義する必要があります。 秘密鍵をパスワードで保護することはできません。 cert-managerを使用する場合、シークレットにはca.crtのCAバンドルも含まれます。 |
spec.fep.patroni.tls.caName | <configmap-name> | CAバンドルを含むKubernetesconfigmapの名前。 cert-managerを使用している場合、ca.crtはすでに上記のシークレットに含まれています。 この場合、このキーは省略できます。 |
spec.fep.postgres.tls.certificateName | <secret-name> | Postgresサーバのtls.crtの証明書とtls.keyの秘密鍵を含むKubernetesシークレットの名前。 MTLS Postgres通信の場合、このキーを定義する必要があります。 秘密鍵はパスワードで保護できます。 cert-managerを使用する場合、シークレットにはca.crtのCAバンドルも含まれます。 |
spec.fep.postgres.tls.caName | <configmap-name> | CAバンドルを含むKubernetesconfigmapの名前。 cert-managerを使用している場合、ca.crtはすでに上記のシークレットに含まれています。 この場合、このキーは省略できます。 |
spec.fep.postgres.tls.privateKeyPassword | <secret-name> | Postgresサーバの秘密鍵のパスワードを含むKubernetesシークレットの名前。. |
spec.fepChildCrVal.sysUsers.pgAdminTls.certificateName | <secret-name> | 「postgres」ユーザーのtls.crtの証明書とtls.keyの秘密鍵を含むKubernetesシークレットの名前。 MTLS Postgres通信の場合、このキーを定義する必要があります。 秘密鍵をパスワードで保護することはできません。 cert-managerを使用する場合、シークレットにはca.crtのCAバンドルも含まれます。 |
spec.fepChildCrVal.sysUsers.pgAdminTls.caName | <configmap-name> | CAバンドルを含むKubernetesconfigmapの名前。 cert-managerを使用している場合、ca.crtはすでに上記のシークレットに含まれています。この場合、このキーは省略できます。 |
spec.fepChildCrVal.sysUsers.pgAdminTls.sslMode | verify-full | MTLSの場合、この値をverify-fullに設定する必要があります。TLSのみが必要な場合は、verify-caまたはpreferに設定できます。 |
spec.fepChildCrVal.sysUsers.pgrepluserTls.certificateName | <secret-name> | 「repluser」ユーザーのtls.crtの証明書とtls.keyの秘密鍵を含むKubernetesシークレットの名前。MTLS Postgres通信の場合、このキーを定義する必要があります。 秘密鍵をパスワードで保護することはできません。 cert-managerを使用する場合、シークレットにはca.crtのCAバンドルも含まれます。 |
spec.fepChildCrVal.sysUsers.pgrepluserTls.caName | <configmap-name> | CAバンドルを含むKubernetesconfigmapの名前。 cert-managerを使用している場合、ca.crtはすでに上記のシークレットに含まれています。 この場合、このキーは省略できます。 |
spec.fepChildCrVal.sysUsers.pgrepluserTls.sslMode | verify-full | MTLSの場合、この値をverify-fullに設定する必要があります。 TLSのみが必要な場合は、verify-caまたはpreferに設定できます。 |
spec.fepChildCrVal.sysUsers.pgRewindUserTls.certificateName | <secret-name> | 「rewinduser」ユーザーのtls.crtの証明書とtls.keyの秘密鍵を含むKubernetesシークレットの名前。MTLS Postgres通信の場合、このキーを定義する必要があります。 秘密鍵をパスワードで保護することはできません。 cert-managerを使用する場合、シークレットにはca.crtのCAバンドルも含まれます。 |
spec.fepChildCrVal.sysUsers.pgRewindUserTls.caName | <configmap-name> | CAバンドルを含むKubernetesconfigmapの名前。 cert-managerを使用している場合、ca.crtはすでに上記のシークレットに含まれています。この場合、このキーは省略できます。 |
spec.fepChildCrVal.sysUsers.pgRewindUserTls.sslMode | verify-full | MTLSの場合、この値をverify-fullに設定する必要があります。TLSのみが必要な場合は、verify-caまたはpreferに設定できます。 |
MTLSを実行するには、pg_hba.confをカスタマイズする必要もあります。 以下は2つの可能な設定です。
spec.fep.customPgHba | hostssl all all 0.0.0.0/0 cert |
上記の設定により、FEPサーバは認証を実行します。同時に、クライアント証明書の信頼性を検証します。
spec.fep.customPgHba | hostssl all all 0.0.0.0/0 md5 clientcert=verify-full |
上記の設定により、FEPサーバはmd5認証を実行し、クライアント証明書の信頼性を検証します。