AlloyDB Omni との Active Directory の統合が失敗する
Active Directory が機能しない場合は、次の手順で問題を解決します。
keytab ファイルを確認します。取得した keytab を使用して Active Directory サーバーに接続できることを確認します。
kinit -kt PATH_TO_KEYTAB_FILE postgres/DBCLUSTER_HOST@REALM
ホストを確認します。
次の例に示すように、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
が同じであることを確認します。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
HBA のエントリとステータスを確認します。
次のコマンドを実行して、ログを 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.
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 | |
error
列のエラー メッセージを確認します。これは、構成の問題の特定に役立ちます。デバッグレベルの
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 の同期が失敗します。
推奨の解決方法
postgres
ユーザーとしてログインし、次のコマンドを実行します。CREATE EXTENSION google_pg_auth;
postgresql.log
ファイルで、LDAP ログインが失敗した理由を確認します。cat /obs/diagnostic/postgresql.log | grep google_pg_auth