ページの先頭行へ戻る
Enterprise Postgres 16 SP1 オペレーターユーザーズガイド

4.14.2 FEPpgpool2コンテナにおけるscram-sha-256認証を使用したクライアント認証の有効化

新規に構築したFEPpgpool2コンテナでscram-sha-256認証を有効化するための手順を説明します。

4.14.2.1 scram-sha-256認証の有効化に必要なリソースの作成

scram-sha-256認証の有効化に必要なリソースを作成します。

  1. 暗号化キー用シークレットを作成

    scram-sha-256認証に使用するパスワードを記載した暗号化キー用シークレットpgpoolkeySecretを作成します。
    このとき、キーはpgpoolkeyとし、バリューには暗号化に使用するパスワードをbase64で暗号化した値を指定します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: scrampgpoolkey-secret
    type: Opaque
    data:
      pgpoolkey: cGdwb29sa2V5cGFzc3dvcmQ=

    シークレット作成後、FEPPgpool2 カスタムリソースに作成したシークレット名を記載します。これにより、作成されたシークレットがFEPpgpool2コンテナにボリューム内のファイルとしてマウントされ、暗号化に使用するパスワードがFEPpgpool2コンテナに引き渡されます。

    scram-sha-256認証を使用し、かつ、シークレットを作成しない場合、オペレーターがFEPPgpool2カスタムリソースの情報を基に、以下のシークレットを自動で作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: "{{spec.name}}-feppgpool2-pgpoolkey”
    type: Opaque
    data:
      pgpoolkey: K1kxOVZxKzRrdWluT3A2UHNQMzcwcUJuOUZ2UUoxUklNMms2cktIY1NkekFOemZBYkhjZDFadG5VR3ZtTVR6Uw==

    バリューにはオペレーターがランダムで生成したパスワードをbase64で暗号化した値が設定されます。この場合のシークレット名は、“{{spec.name}}-feppgpool2-pgpoolkey”となります。

    参考

    scram-sha-256暗号化では暗号化キーを使用します。この暗号化キーはpool_passwdファイルにAES暗号化パスワードが保存されていた場合、パスワードを復号化するためにFEPpgpool2コンテナで使用します。そのため、暗号化キーと復号キーは同じものである必要があります。

  2. データベースユーザー情報用シークレットを作成

    FEPpgpool2コンテナのクライアント認証に使用するユーザー/パスワードは、FEPサーバコンテナのデータベースで使用するデータベースユーザーと同様のものである必要があります。

    FEPpgpool2コンテナに、FEPサーバコンテナのデータベースユーザーのユーザー名とパスワードの情報を引き渡すためのデータベースユーザー情報用シークレットuserinfoSecretを作成します。
    ユーザー名とパスワードは下記のような形式でシークレットに記載します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: scramuserinfo-secret #任意の名前を指定
    type: Opaque
    data:
      user1: dXNlcjFwYXNzd2Q=
      user2: dXNlcjJwYXNzd2Q=

    オペレーターが自動で作成するデータベースユーザーについては、オペレーターがFEPCluster カスタムリソースおよびFEPサーバコンテナからデータベースユーザー名とパスワードの情報を取得するため、シークレットの作成は不要です。

    scram-sha-256認証を使用し、かつ、シークレットを作成しない場合、オペレーターが以下のシークレットを自動で作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: ”{{spec.name}}-feppgpool2-userinfo”
    type: Opaque
    data:

    この場合のシークレット名は、“{{spec.name}}-feppgpool2-userinfo”となります。

4.14.2.2 FEPPgpool2カスタムリソースの編集

scram-sha-256認証を有効化するには、FEPPgpool2カスタムリソースを以下の手順で編集し、配置してください。

  1. シークレットの情報を設定

    FEPPgppol2カスタムリソースのspec.clientAuthMethodにscramを指定します。
    また、暗号化キー用シークレット(spec.scram.pgpoolkeySecret)に“4.14.2.1 scram-sha-256認証の有効化に必要なリソースの作成”の手順1で作成したシークレット名を記載します。同様に、データベースユーザー情報用シークレット(spec.scram.userinfoSecret)に“4.14.2.1 scram-sha-256認証の有効化に必要なリソースの作成”の手順2で作成したシークレット名を記載します。

    spec:
      clientAuthMethod: scram
      scram:
        pgpoolkeySecret: scrampgpoolkey-secret
        userinfoSecret: scramuserinfo-secret

    これにより、作成されたシークレットがFEPpgpool2コンテナにボリューム内のファイルとしてマウントされ、ユーザー名とパスワードの情報がFEPpgpool2コンテナに通知されます。

  2. spec.customhbaを編集

    FEPPgpool2カスタムリソースのspec.customhbaフィールドを編集し、scram-sha-256認証用のエントリを追加します。

  3. pgpool.confを編集

    FEPPgpool2カスタムリソースのspec.customparamsフィールドを編集し、認証設定に関連するパラメータを編集します。

    enable_pool_hba=true