AlloyDB Omni での Active Directory 統合のトラブルシューティング

ドキュメントのバージョンを選択してください。

このドキュメントでは、AlloyDB Omni に Active Directory を統合する際に発生する可能性のあるエラーについて説明します。エラーの例と推奨される修正方法も記載しています。

AlloyDB Omni との Active Directory の統合が失敗する

Active Directory が機能しない場合は、次の手順に沿って問題を解決します。

  1. keytab ファイルを確認します。取得した keytab を使用して Active Directory サーバーに接続できることを確認します。

    kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
    
  2. ホストを確認します。

    次の例に示すように、keytab ファイルの生成に使用したホストが psql コマンドのホストと同じであることを確認します。

    KTPass /princ postgres/DBCLUSTER_HOST@REALM /Pass PASSWORD /mapuser postgres /crypto ALL /ptype KRB5_NT_Principal /out OUTPUT_PATH
    
    psql -h DBCLUSTER_HOST -d DB_NAME -U USERNAME@REALM
    

    両方のコマンドで DBCLUSTER_HOST が同じであることを確認します。

  3. krb5.conf ファイルを検証します。

    クライアントで krb5.conf ファイルの内容を確認します。krb5.conf ファイルの内容が構成に対して正しいことを確認します。

    cat /etc/krb5.conf
    

    想定される出力は次のとおりです。

    [libdefaults]
      default_realm = REALM
    [realms]
      REALM = {
          kdc = KDC_HOST
          admin_server = ADMIN_SERVER
      }
    [domain_realm]
      HOST_DOMAIN_1 = REALM
      HOST_DOMAIN_2 = REALM
    
  4. HBA のエントリとステータスを確認します。

    1. 次のコマンドを実行して、ログを AlloyDB Omni プロダクト チームに送信します。

      psql -h DBCLUSTER_HOST -U postgres -d postgres
      

      psql から postgres ユーザーのパスワードの入力を求められます。

      Password for user postgres:
      

      psql は次の出力を返します。

      psql (17.5 (Ubuntu 17.5-0ubuntu0.25.04.1), server 16.3)
      SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off, ALPN: none)
      Type "help" for help.
      
    2. psql プロンプトで次のコマンドを実行します。

      postgres=# table pg_hba_file_rules ;
      

      次の例のような出力が返されます。

      rule_number |            file_name             | line_number |  type   | database |     user_name      |  address  |                 netmask                 | auth_method |         options          |                        error
      -------------+--------------------------------------+-------------+---------+----------+--------------------+-----------+-----------------------------------------+-------------+--------------------------+-----------------------------------------------------
            1 | /var/lib/postgresql/data/pg_hba.conf |           1 | host    | {all}    | {alloydbadmin}     | 127.0.0.1 | 255.255.255.255                         | trust       |                          |
              | /var/lib/postgresql/data/pg_hba.conf |           2 | hostssl | {all}    | {alloydbadmin}     | ::1       | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | trust       |                          | hostssl record cannot match because SSL is disabled
              | /var/lib/postgresql/data/pg_hba.conf |           3 | hostssl | {all}    | {alloydbpgbouncer} | 0.0.0.0   | 0.0.0.0                                 | cert        | {clientcert=verify-full} | hostssl record cannot match because SSL is disabled
              | /var/lib/postgresql/data/pg_hba.conf |           4 | hostssl | {all}    | {alloydbpgbouncer} | ::1       | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | cert        | {clientcert=verify-full} | hostssl record cannot match because SSL is disabled
              | /var/lib/postgresql/data/pg_hba.conf |           5 | hostssl | {all}    | {alloydbadmin}     | all       |                                         | reject      |                          | hostssl record cannot match because SSL is disabled
              | /var/lib/postgresql/data/pg_hba.conf |           6 |         |          |                    |           |                                         |             |                          | invalid CIDR mask in address "0.0.0.0/1000"
            2 | /var/lib/postgresql/data/pg_hba.conf |           7 | local   | {all}    | {all}              |           |                                         | trust       |                          |
      
  5. error 列のエラー メッセージを確認します。これは、構成の問題の特定に役立ちます。

  6. デバッグレベルの krb5 ログを出力します。

    export KRB5_TRACE=/dev/stderr
    kinit AD_USER@REALM
    psql -h DBCLUSTER_HOST -d DB_NAME -U USERNAME@REALM
    

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "user2" does not exist

説明

このエラーは、接続しようとしているシステム ユーザーに PostgreSQL ユーザーが作成されていないか、ロールがマッピングされていない場合に発生します。

推奨の解決方法

必要なユーザー名を使用して PostgreSQL にロールを作成するか、このユーザーのエントリを pg_ident.conf ファイルに追加します。

psql (16.3)
Type "help" for help.

postgres=# CREATE ROLE user2 WITH LOGIN;
CREATE ROLE

Server restart fails with error: "could not load /var/lib/postgresql/data/pg_hba.conf"

説明

pg_hba.conf に無効なエントリが含まれているため、サーバーの再起動に失敗しました。

推奨の解決方法

pg_hba.conf ファイルに無効なエントリがないか確認します。

FATAL: LDAP group synchronization failed

説明

ユーザーがログインしようとすると、LDAP の同期が失敗します。

推奨の解決方法

  1. postgres ユーザーとしてログインし、次のコマンドを実行します。

    CREATE EXTENSION google_pg_auth;
    
  2. postgresql.log ファイルで、LDAP ログインが失敗した理由を確認します。

    cat /obs/diagnostic/postgresql.log | grep google_pg_auth
    

次のステップ